实际逻辑电路 LUT的实现方式
a,b,c,d 输入
0000 0001 .... 1111
逻辑输出
0 0 0 1
地址 0000 0001 ... 1111
RAM中存储的内容
0 0 0 1
如果所设计的是时序电路,需要触发器,则FPGA开发软件会自动将触发器配置在查
找表的后面,实现组合逻辑时就将触发器旁路掉。
当然,对于复杂的设计,一个LUT是无法完成的,FPGA可以通过进位逻辑将多个LUT相连起来,实现n输入的查找表,实现设计要求。 通俗地说,FPGA就是由查找表、触发器和布线资源组成。下图是一个Cyclone系列FPGA芯片的内部结构,其中一对查找表和触发若干个LE组器构成逻辑单元LE,
成逻辑阵列块LAB,最后再配上各种布线资源,就是一个FPGA芯片了。
详细的介绍请见:补充教程6 FPGA PLD 结构与原理。
2.3 FPGA与ASIC设计的区别
ASIC是Application Specific Integrated Circuit 的缩写,即专用集成电路。ASIC和FPGA属于SOC(System on a chip片上系统)的两个发展方向,两者唯一的区别在于,ASIC的逻辑电路是固化在其芯片中的,我们可以将ASIC理解为不可编程的FPGA。
由于FPGA设计是基于固有的硬件结构(如逻辑单元、块RAM、PLL/DLL、时钟资源等)的;而ASIC设计结构灵活,目标多样,所以ASIC设计的代码风格和FPGA设计的代码风格有明显差异,特别是在功耗、速度、时序等要求上。例如ASIC设计中根据要求会有意识地采用某些组合逻辑、门控时钟等,以降低功耗或提高速度。