本文叙说归纳了FPGA运用规划中的要害,包含,时钟树、FSM、latch、逻辑仿真四个部分。
FPGA的用途比咱们平常幻想的用途更广泛,原因在于其间集成的模块品种更多,而不只是是本来的简略逻辑单元(LE)。前期的FPGA相对比较简略,一切的功用单元只是由管脚、内部buffer、LE、RAM构建而成,LE由LUT(查找表)和D触发器构成,RAM也往往容量十分小。现在的FPGA不只包含曾经的LE,RAM也更大更快更灵敏,管束IOB也愈加的杂乱,支撑的IO类型也更多,并且内部还集成了一些特别功用单元,包含:
DSP:实践上便是乘加器,FPGA内部能够集成多个乘加器,而一般的DSP芯片往往每个core只要一个。换言之,FPGA能够更简略完成多个DSP core功用。在某些需求很多乘加核算的场合,往往多个乘加器并行作业的速度能够远远超越一个高速乘加器。
SERDES:高速串行接口。将来PCI-E、XAUI、HT、S-ATA等高速串行接口会越来越多。有了SERDES模块,FPGA能够很简略将这些高速串行接口集成进来,无需再购买专门的接口芯片。
CPU core:分为2种,软core和硬core。软core是用逻辑代码写的CPU模块,能够在任何资源满足的FPGA中完成,运用十分灵敏。并且在大容量的FPGA中还能够集成多个软core,完成多核并行处理。硬core是在特定的FPGA内部做好的CPU core,长处是速度快、性能好,缺陷是不可灵敏。
不过,FPGA仍是有缺陷。关于某些高主频的运用,FPGA就力不从心了。现在尽管理论上FPGA能够支撑的500MHz,但在实践规划中,往往200MHz以上作业频率就很难完成了。
FPGA规划要害之一:时钟树
关于FPGA来说,要尽或许防止异步规划,尽或许选用同步规划。同步规划的第一个要害,也是要害中的要害,便是时钟树。一个糟糕的时钟树,对FPGA规划来说,是一场无法弥补的灾祸,是一个没有打好地基的大楼,溃散是必定的。
具体一些的规划细则:
1)尽或许选用单一时钟;
2)如果有多个时钟域,必定要细心区分,千万当心;
3)跨时钟域的信号必定要做同步处理。关于操控信号,能够选用双采样;关于数据信号,能够选用异步fifo。需求留意的是,异步fifo不是全能的,一个异步fifo也只能处理必定范围内的频差问题。
4)尽或许将FPGA内部的PLL、DLL使用起来,这会给你的规划带来很多的优点。
5)关于特别的IO接口,需求细心核算Tsu、Tco、Th,并使用PLL、DLL、DDIO、管脚可设置的delay等多种东西来完成。简略对管脚进行Tsu、Tco、Th的束缚往往是不可的。
或许说的不是很切当。这儿的时钟树实践上泛指时钟计划,主要是时钟域和PLL等的规划,一般状况下不牵扯到走线时延的具体核算(一般都走大局时钟网络和局部时钟网络,时延固定),和ASIC中的时钟树不一样。关于ASIC,就必须对时钟网络的规划、布线、时延核算进行细心的剖析核算才行。