回答

收藏

FPGA是怎样工作的

FPGA/DSP FPGA/DSP 2612 人阅读 | 0 人回复 | 2013-12-06

FPGA是怎样工作的逻辑单元(Logic-cell)FPGA是由成千上万个“逻辑单元(Logic-cell)”组成的,“逻辑单元”是FPGA的基本组成。一个逻辑单元通常是由一个查找表(LUT)、一个D触发器以及一个2-1多路器(在需要的时候旁路掉触发器)组成的。

查找表就像一个小的RAM,典型情况下有4个输入,所以可以实现多大四个输入的任何逻辑。例如一个三输入与门,其结果再与另外一个输入相或。
内部互联
任何两个逻辑单元之间均可以通过内部互联资源(逻辑单元周围的线和多路器)连接。一个逻辑单元只能完成很小的功能,但是很多个逻辑单元连接在一起就可以实现复杂的逻辑。

内部互联线同样也连接到器件的边界,连接到由I/O单元实现的FPGA引脚上。

隐含的互联线和进位链(Dedicated routing/carry chains)
除了通用互联资源,在相邻的逻辑单元之间还有快速“隐含互联线”。这些“隐含互联线”通常以进位链的形式出现,进位链允许FPGA以有效的方式(低消耗、高速度)创建代数函数,如计数器、加法器等。


老的可编程技术(PAL/PLD)没有进位链,因此在创建代数操作时常常收到限制。operations are required.
内部RAM
除了逻辑资源,所有的FPGA都有静态的RAM块分布于逻辑单元中,并由逻辑块(logic elements)控制。

内部RAM操作(operation)有许多参数影响RAM操作,主要的参数是可以同时访问RAM块的代理(agent)的个数。通常有以下几种:         单端口RAM,只有一个代理可以读写RAM         双端口RAM和四端口RAM,允许2个或4个代理读写RAM,这对于跨时钟域(使用不同的时钟)应用是很有用的。
下面是一个简化的双端口RAM示意图。

确定有多少个代理可以访问RAM,只要数连接到RAM的独立地址总线套数就可以了。每个代理均有一套独立的地址总线和读写总线。RAM的写操作通常是同步逻辑,读操作通常情况下也是同步逻辑,但也可以做成异步的。
分布式RAM和RAM块(Blockram vs. Distributed RAM)
现在在FPGA中有两种内部RAM:RAM块和分布式RAM。使用RAM的大小是决定使用那种RAM的判断依据。
大的RAM以RAM块的形式出现,分布在FPGA的固定区域。每块FPGA都有若干数量的这种RAM块。如果你不使用它们,那么它们就浪费了,因为他们只能用作RAM。 小的RAM以小的RAM块(Altera的器件是这样做的)或分布式RAM(Xilinx的器件通常采用这样的法方式)。分布式RAM允许将逻辑单元用为小型的RAM。
分布式RAM使得在FPGA中布置RAM十分灵活,但考虑到面积时,效率较低(一个逻辑单元实际上只能实现很小的RAM)。Altera趋向于在器件中分布大小不同的RAM块,从而提高了面积使用效率而降低了灵活性。

究竟哪个更好取决与您的FPGA应用。
分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条