整理了一些FPG的知识点和FPGA的进阶路线
今天陆妹给大家整理了一些FPG的知识点和FPGA的进阶路线,小本本准备
好,要开始划重点喽。
FPGA工作原理
FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。 FPGA的基本特点主要有:
1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。 2)FPGA可做其它全定制或半定制ASIC电路的中试样片。 3)FPGA内部有丰富的触发器和I/O引脚。
4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。 5) FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。 可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。
FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。
加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。 当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。 FPGA常用术语
1:LCA(Logic Cell Array):逻辑单元阵列,内部包括可配置逻辑模块CLB(Configurable Logic
Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。 2: IOB(Input Output Block):可编程输入输出单元,为了便于管理和适应多种电器标准,FPGA的IOB被划分为若干个组(bank),每个bank的接口标准由其接口电压VCCO决定,一个bank只能有一种VCCO,但不同bank的VCCO可以不同。只有相同电气标准的端口才能连接在一起,VCCO电压相同是接口标准的基本条件。
3:CLB(Configurable Logic Block):可配置逻辑模块,是FPGA内的基本逻辑单元,每个CLB都包含一个可配置开关矩阵,此矩阵由4或6个输入、一些选型电路(多路复用器等)和触发器组成。 在赛灵思公司公司的FPGA器件中,CLB由多个(一般为4个或2个)相同的Slice和附加逻辑构成。
4:Slice:是赛灵思公司公司定义的基本逻辑单位,一个Slice由两个4输入的函数、进位逻辑、算术逻辑、存储逻辑和函数复用器组成。
5:LUT(Look-Up-Table):查找表。本质上就是一个RAM,目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的 的RAM。 6:DCM(数字时钟管理模块):提供数字时钟管理和相位环路锁定。
7:BRAM(嵌入式块RAM):块RAM可被配置为单端口RAM、双端口RAM、内容地址存储器(CAM)以及FIFO等常用存储结构。单片块RAM的容量为18k比特,即位宽为18比特、深度为1024,可以根据需要改变其位宽和深度,但要满足两个原则:首先,修改后的容量(位宽 深度)不能大于18k比特;其次,位宽最大不能超过36比特。当然,可以将多片块RAM级联起来形成更大的RAM,此时只受限于芯片内块RAM的数量,而不再受上面两条原则约束。 必须精通的5项基本功
对于FPGA设计者来说,要练好5项基本功:仿真、综合、时序分析、调试、验证, 1.、仿真:Modelsim, Quartus II(Simulator Tool)
2.、综合:Quartus II (Compiler Tool, RTL Viewer, Technology Map Viewer, Chip Planner) 3、 时序:Quartus II (TimeQuest Timing Analyzer, Technology Map Viewer, Chip Planner)
4、调试:Quartus II (SignalTap II Logic Analyzer, Virtual JTAG, Assignment Editor) 5、验证:Modelsim, Quartus II(Test Bench Template Writer)
HDL语言与FPGA设计的5项基本功是相辅相成的。虽然它不是FPGA设计的全部,但是HDL语言在FPGA的整个设计流程中都是有体现的。
对于FPGA设计者来说,用好“HDL语言的可综合子集”可完成FPGA设计中50%的工作——设计编码。练好仿真、综合、时序分析这3项基本功,对于学习“HDL语言的可综合子集”有如下帮助:
1. 通过仿真,可以观察HDL语言在FPGA中的逻辑行为。 2. 通过综合,可以观察HDL语言在FPGA中的物理实现形式。 3. 通过时序分析,可以分析HDL语言在FPGA中的物理实现特性。
同样,用好“HDL语言的验证子集”,可以完成FPGA设计另外50%的工作——调试验证。 1. 搭建验证环境,通过仿真的手段可以检验FPGA设计的正确性。 2. 全面的仿真验证可以减少FPGA硬件调试的工作量。
3.把硬件调试与仿真验证方法结合起来,用调试解决仿真未验证的问题,用仿真保证已经解决的问题不在调试中再现,可以建立一个回归验证流程,有助于FPGA设计项目的维护。
FPGA设计者的这5项基本功不是孤立的,必须结合使用,才能完成一个完整的FPGA设计流程。反过来说,通过完成一个完整的设计流程,才能最有效地练习这5项基本功。对这5项基本功有了初步认识,就可以逐个深入学习一些,然后把学到的知识再次用于完整的设计流程。如此反复,就可以逐步提高设计水平。采用这样的循序渐进、螺旋式上升的方法,只要通过培训入了门,就可以自学自练,自我提高。 FPGA设计人员的进阶路线
从技术层面来讲,可编程逻辑范围是目前和将来半导体行业最活泼的范围之一,不再是繁多地用于IC设想的原型考证,更多地用于提供集成的零碎级处置计划。古代的FPGA不再仅仅是可编程逻辑,而是介于ASIC和FPGA之间的混合芯片,包括微处置器、收发器