很多新人或者有一些经验的人,都对FPGA到底能跑多少Mhz工作频率有疑问,这是个好问题,下面阿东来带你一步一步了解。
在我们进行FPGA设计之前,一般会根据设计的要求,选择不同的FPGA器件,选择FPGA器件的时候,一般需要考虑内部资源和成本价格,而FPGA内部资源一般包括以下几方面:
1、专用硬件资源:如专用乘法器的数量,Memory的大小,PLL的数量等;
2、LE的数量:FPGA(Altera系列叫LE,Xilinx系列叫CLB)内部最基本的工作单元;
3、器件工作的最高频率:如乘法器工作的最高频率,LVDS模块的最高频率等。
这里主要对Cyclone IV器件内部资源工作的最高频率进行一下总结,在设计之前了解这些是必要的,原因如下:
1、如果设计的工作频率过高,可能导致设计没有办法实现。
2、如果设计的工作的频率比较低,就可以通过复用相关模块来达到节约资源的目的;
以下内容参考了Cylone IV Device Handbook,Volume 3中P1-23。
1、FPGA时钟树的特性
C6 C7 C8 C9 I7 I8代表的是Altera(已被Intel收购)Cylone IV FPGA的速度等级,Altera(已被Intel收购)器件,数字越小,速度等级越大。一般我们经常会选用速度等级C8,C8等级时钟树最大频率是402Mhz。
Xilinx(已被AMD收购)器件,数字越大,速度等级越大,如下图所示:
2、PLL的特性
-8等级下,PLL的最大输出频率402.5Mhz。但是,阿东团队也有超频20%以内使用过。
3、嵌入式乘法器的特性
如果我们的设计使用了乘法器,那么一般不能超过手册中的最大值。
4、Memory Block的特性
RAM块在我们的设计中是非常频繁使用的,因此RAM块的最大频率往往限制了我们设计最大的工作频率。
5、专用LVDS发送模块的性能
专用LVDS接收模块的性能
其中HSIODR指高速IO块:最大/最小 LVDS 数据速率。
fHSCLK指高速IO块:高速接收器/发送器的输入/输出时钟频率。
6、外部存储器接口特性(详见手册,包括DDR3、SDRAM等)
下面以Xilinx的DDR控制器界面说明:
图中括号2是DDR控制器的时钟,控制器时钟是DDR时钟频率的1/4。
一般DDR3时钟频率为400Mhz主频,但是我们的主体设计通常和DDR控制器部分是不同的时钟,两者之间一般可以通过异步FIFO进行跨时钟交互,因此一般DDR部分的时钟频率对我们主体设计的频率影响不是很大。
小结:
看完上面的几个点后,可以看出FPGA最终的工作频率和FPGA芯片的速度等级,时钟树、PLL输出时钟、RAM块、乘法器和高速接口等的最大工作频率都有关系,另外和我们设计本身也有很大关系。
比如一个流水灯设计,一般不要超过时钟树的最大频率即可,在Cyclone IV C8速率等级器件中,跑400Mhz是没有问题。
比如一个非常复杂的设计,涉及很多乘法计算或者RAM存储,往往乘法器和RAM块的最大频率限制了设计的工作频率。比如,在Cyclone IV C8速率等级器件中,RAM块最大是238Mhz,因此我们设计一般跑200Mhz是没有问题的。
当然,如果我们设计中,如果设计里面前后两级寄存器中间的组合逻辑非常多,也会导致时钟频率跑不上去,此时我们就要想办法优化我们的设计了。
以此类推,其他FPGA器件,我们也可以从对应的datasheet中查到相关器件的最大频率,依次获得我们设计可以运行的最大工作频率。
根据正点原子阿东团队多年的经验总结:
Altera(已被Intel收购)Cyclone IV和Xilinx(已被AMD收购)的Spartan 6工作频率类似,一般可以到200Mhz左右,国产FPGA紫光PGL22系列,一般最大工作频率也在200Mhz左右,Xilinx(已被AMD收购)的7系列(A7/ZYNQ系列)工作主频要高一些,一般可以到300Mhz-400Mhz。
下图附上Xilinx 7系列的DSP和RAM块的频率特性。