240 likes | 526 Views
FPGA 和 SOPC 应用 ——PLD 介绍和 CycloneIII 介绍. 华中科技大学启明学院电工电子科技创新中心 王贞炎. 内容. 可编程逻辑器件介绍 Cyclone III 系列 FPGA 介绍 ModelSim 介绍 使用 ModelSim 仿真 Testbench 编写 实验:编写格雷码计数器并仿真. 可编程逻辑器件简介. 数字逻辑器件 固定逻辑器件 通用小规模: 74LS/74HC…… 功能简单,要用它实现大规模的逻辑需要大量的芯片,线路复杂、体积大。
E N D
FPGA和SOPC应用——PLD介绍和CycloneIII介绍 华中科技大学启明学院电工电子科技创新中心 王贞炎
内容 • 可编程逻辑器件介绍 • Cyclone III系列FPGA介绍 • ModelSim介绍 • 使用ModelSim仿真 • Testbench编写 • 实验:编写格雷码计数器并仿真
可编程逻辑器件简介 • 数字逻辑器件 • 固定逻辑器件 • 通用小规模:74LS/74HC……功能简单,要用它实现大规模的逻辑需要大量的芯片,线路复杂、体积大。 • 大规模:ASIC,各种专用数字芯片,包括各种MCU、CPU都属于大规模固定逻辑器件。非重发性工程成本很高——固定逻辑器件最终从芯片制造厂制作出来以前需要投入的所有成本,一般为十几万到数千万美元。 • 要做一个规模稍大的逻辑电路怎么办? • 可编程逻辑器件 • 复杂可编程逻辑器件,CPLD,Complex Programmable Logic Device • 现场可编程逻辑门阵列,FPGA,Field Programmable Gate Array
可编程逻辑器件简介 • 可编程逻辑器件的优点 • 设计灵活 • 无漫长的前置时间来制造原型 • 方便现场升级 • 有越来越多的知识产权(IP)核心库的支持 • 小批量成本低廉 • 适宜于科研试验、快速原型开发、小批量产品开发
可编程逻辑器件简介 • CPLD • 大部分CPLD基于乘积项结构 • CPLD一般由Flash工艺制造
可编程逻辑器件简介 • FPGA • FPGA的基本结构单元一般由查找表和寄存器构成,称为逻辑单元Loglic Element (LE) • 查找表一般就是一块小容量的静态RAM——使用查找表可以构成任意功能的组合逻辑电路——真值表! • 寄存器一般是D触发器——D触发器是构成时序逻辑的基本元素 • LE中往往还有数据选择器——用于简明地实现条件选择逻辑 • FPGA由大量的LE互联而成 • 现代的FPGA内往往还融合大量DSP功能模块、存储器模块甚至处理器模块(硬核、软核) • 处理器:PowerPC、PicoBlaze、MicroBlaze、Nios、Cortex-M1、MSC-51等等 • DSP单元:由快速乘加器构成 组合和时序都有了,一切数字电路都可以实现了。 组合和时序都有了,一切数字电路都可以实现了。
可编程逻辑器件 • FPGA内嵌硬核与可配置软核 • 内嵌硬核处理器是在FPGA芯片中,单独划出一块区域安置一个功能固定的处理器核,其总线可与FPGA内部LE互联。它在FPGA芯片出厂时,便已经固化在了FPGA内。 • 如Xilinx公司的PowerPC • 软核处理器是在FPGA应用设计阶段,通过软件工具设计实现一个处理器的逻辑,并与其它FPGA逻辑同时下载至FPGA内,由LE组合而成的。它是在用户做应用设计期间配置而成的,可有用户自由增删其功能,配置其性能。 • Xilinx公司的PicoBlaze、MicroBlaze • Altera公司的Nios、Nios2
Cyclone III系列FPGA • Altera公司的FPGA系列 • 高端:Stratix I, II, III, IV, V • 顶尖的性能——顶尖的价格——大功耗 • 中端:Arria GX I, II • 带有高速串行收发器的中低端系列——功能性能与成本功耗的折中 • 低端:Cyclone I, II, III, IV • 低端、低成本——不算太低的性能 • 新的Cyclone IV系列中的GX子系列也开始带有3.125Gbps的串行收发器了
Cyclone III系列FPGA • 整体 • 65nm工艺
Cyclone III系列FPGA • 整体
Cyclone III系列FPGA • LE • 特性: • 4输入查找表,实现任意四输入组合逻辑 • 一个可编程寄存器(D触发器) • 一个进位链连接 • 一个寄存器链连接 • 能够驱动本块、行、列等互连 • 支持寄存器打包 • 支持寄存器反馈 • 两种工作模式: • 普通工作模式:适用于一般的逻辑、组合逻辑 • 算术工作模式:适用于实现加法器、累加器、计数器和比较器
Cyclone III系列FPGA • LE
Cyclone III系列FPGA • LAB • 特性 • 16个LE • LAB控制信号:清除、时钟、时钟使能、复位等 • LE进位链 • 寄存器进位链:把LAB内一个LE寄存器的输出与相邻LE寄存器的输入连在一起 • LAB本地互连:用以连接LAB内各个LE • 控制信号 • 两个时钟 • 两个时钟使能 • 两个异步清零 • 一个同步清零 • 一个同步置位
Cyclone III系列FPGA • LAB
Cyclone III系列FPGA • MultiTrack互联 • LE • M9K RAM块 • 乘法器 • IO单元
Cyclone III系列FPGA • 全局时钟网络和锁相环
Cyclone III系列FPGA • 时钟网络
Cyclone III系列FPGA • 锁相环结构
Cyclone III系列FPGA • 嵌入式存储器:M9K RAM块 • 9126bit • 独立时钟和时钟使能的真双端口 • 可分离为两个4.5K单端口RAM块 • 每端口独立的读写时能 • 可变端口位宽 • 写字节使能
Cyclone III系列FPGA • 嵌入式存储器:M9K RAM块 • 可配置的形式
Cyclone III系列FPGA • 嵌入式DSP模块 • 可以用来实现FFT、DCT、FIR等数字信号处理,可以高效地用于音频/视频信号处理 • 可以配置成9×9或18×18的两种模式
Cyclone III系列FPGA • IO口 • 4/8个IO Bank • 每个Bank可独立配置IO标准 • 九种封装,82~531个IO口 • 可编程电流 • 可控摆率 • 开漏输出 • 可编程上拉电阻 • 钳位二极管 • LVDS匹配电阻、预加重
Cyclone III系列FPGA • IO口
Cyclone III系列FPGA • IO口支持的外部高速存储器