勇敢的芯伴你玩转Altera FPGA连载27: 内里本质探索——器件结构 中
0赞勇敢的芯伴你玩转Altera FPGA连载27: 内里本质探索——器件结构 中
特权同学,版权所有
配套例程和更多资料下载链接:
http://pan.baidu.com/s/1i5LMUUD
接下来我们再了解一下器件中最小的功能单元LEs的内部结构。如图3.22所示,这是在Cyclone IV器件内部一个完整的LEs的内部结构。详细的各个模块以及功能介绍大家可以去研究Cyclone IV的器件手册,简单的来看,有几样核心的东西是必须知道的。
图3.22 LEs内部结构
在图3.22右上方的Programmable Register想必大家一定很眼熟,没有错,它正是我们在前文大书特书的寄存器,这可是实实在在存在着的,它的功能也大体和前面介绍的D触发器别无二致。再看左侧,有个4输入的查找表(Look-Up table,LUT),别小看它,功能可强大了,前面的各种逻辑门需要实现的输入输出关系大多时候是通过这个LUT来实现的。此外,还有一些诸如进位链(Carry chain)是用来协助实现运算功能的;异步清除逻辑(Asynchronous Clear Logic)和时钟或时钟使能选择(Clock & Clock Enable Select)功能则用于寄存器的一般控制;各种布线(Routing)连接则是用于实现该LEs与外部互连功能。总之,这个结构几乎可以满足大多数的逻辑电路需求,当然了,并非这么个结构框架里的所有东西在每个电路实现中都能派上用场。正所谓“可编程”(Programmable),设计者所需要实现的电路会根据具体的情况来开启或关闭各个模块的使用或连接。
通常Cyclone IV器件的LEs结构在实际应用中为了达到功能的最优化,会被作为正常模式(Normal Mode)或动态算术模式(Dynamic Arithmetic Mode)使用。两种模式对LEs资源的使用有所不同,最大的区别在于正常模式下配置为1个4输入查找表,而算术模式下则配置为2个2输入查找表,这样更便于实现一个2bit的全加器和进位链。总之大家记住一个点,各种运算用算术模式实现是最佳的选择,其他情况下一般是正常模式来实现,而到底用哪种模式来实现也不用设计者操心,Quartus II软件会自动判断和优化,咱只要知道有这么一回事就好。我们看图3.23,这是正常模式下的LEs结构,相比于完整的LEs结构,少了好多功能块。
图3.23 正常模式下的Les