【基础知识】~ LUT、CLB、面积/速度问题

1. 查表法 (LUT)

查找表(look-up-table)简称为 LUT,LUT 本质上就是一个 RAM。目前 FPGA 中多使用 4 输入的 LUT,所以每一个 LUT 可以看成一个有 4 位地址线的 16x1 的RAM。 当用户通过原理图或 HDL 语言描述了一个逻辑电路以后,FPGA 开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入 RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。

2. 可编程逻辑块 (CLB)

CLB是指可编程逻辑功能块(Configurable Logic Blocks),顾名思义就是可编程的数字逻辑电路。CLB 是 FPGA 内的基本逻辑单元。CLB 的实际数量和特性会依器件的不同而不同,但是每个CLB 都包含一个可配置开关矩阵,此矩阵由 4 或 6 个输入、一些 选型电路(多路复用器等)和触发器组成。 开关矩阵是高度灵活的,可以对其进行配置以便处理组合逻辑、移位寄存器或 RAM。在 Xilinx 公司的 FPGA 器件中,CLB 由多个(一般为 4 个或 2 个) 相同的 Slice和附加逻辑构成。每个 CLB 模块不仅可以用于实现组合逻辑、时序逻辑,还可以配置为分布式 RAM 和分布式 ROM。

2.1 补充

Slice 是 Xilinx 公司定义的基本逻辑单位,一个 Slice 由两个 4输入的函数、进位 逻辑、算术逻辑、存储逻辑和函数复用器组成。算术逻辑包括一个异或门(XORG)和一个专用与门(MULTAND),一个异或门可以使一个 Slice 实现 2bit 全加操作,专用与门用于提高乘法器的效率;进位逻辑由专用进位信号和函数复用器(MUXC)组成,用于实现快速的算术加减法操作;4 输入函数发生 器用于实现 4 输入 LUT、分布式 RAM或 16 比特移位寄存器(Virtex-5 系列芯片的 Slice 中的两个输入函数为 6 输入,可以实现 6输入 LUT 或 64 比特移位寄存器);进位逻辑包括两条快速进位链,用于提高 CLB 模块的处理速度。

3. 面积/速度问题

3.1 面积(资源)优化

无论是在 ASIC 还是 FPGA 中,硬件设计资源即面积(Area)是一个重要的技术指标。

3.1.1 面积优化意义:

  1. 可使用规模更小的可编程器件,降低系统成本,提高性价比。
  2. 当耗用资源过多时会严重影响时序性能。
  3. 为后续技术升级留下更多的可编程资源。
  4. 资源耗用太多会使器件功耗显著上升。

3.1.2 面积优化方法

  1. 资源共享
    主要针对数据通路中耗费逻辑资源较多的模块,通过选择、复用的方式共享使用该模块,达到减少资源使用、优化面积的目的。并不是在任何情况下都能以此法实现资源优化,输入与门之类的模块使用资源共享是无意义的,有时甚至会增加资源的使用(多路选择器的面积显然要大于与门)。高级的 HDL 综合器,如 QuartusII 和 Synplify Pro 等,通过设置能自动识别设计中需要资源共享的逻辑结构,自动地进行资源共享。
  2. 逻辑优化
    使用优化后的逻辑进行设计,可以明显减少资源的占用。状态机的设计要尽可能简洁,不要搞出不必要的,多个状态对同一个数据做处理。if 语句中用单 bit 的标志位代替多 bit 的数据来进行条件判断。设计尽可能简洁,不要弄出冗余赋值。
  3. 串行化
    将原来耗用资源巨大、单时钟周期内完成的并行执行的逻辑块分割开,提取出相同的逻辑模块(一般为组合逻辑块),在时间上利用该逻辑模块,用多个时钟周期完成相同的功能,其代价是工作速度被大为降低。

3.2 速度优化

一般来说,速度优化比资源优化更重要,需要优先考虑。速度优化包括:FPGA 的结构特性、HDL 综合器性能、系统电路特性、PCB 制版情况等,也包括 Verilog 的编程风格。下面主要讨论电路结构方面的速度优化方法。

3.2.1 速度优化方法

  1. 流水线设计
    流水线(Pipelining)是一种在复杂组合逻辑之间添加寄存器的方法,是最常用的速度优化技术之一。它能显著地提高设计电路的运行速度上限。
  2. 寄存器配平
    寄存器配平 (Register Balancing)是使较长路径缩短,较短路径加长,使其达到平衡从而提高工作频率的一种技术。若设计中,若两个组合逻辑块的延时差别过大,若 T1>T2,则总体的工作频率 fmax 取决于T1, 即最大的延时模块。对不合理设计进行改进,即将原本设计中的组合逻辑 1 的部分逻辑转移到组合逻辑 2 中,使 t1≈t2,且 T1+T2=t1+t2, T1>t1 则总体的工作频率 fmax 提高。
  3. 关键路径法
    关键路径:指设计中从输入到输出经过的延时最长的逻辑路径。优化关键路径是提高设计工作速度的有效方法。EDA 工具中的综合器及设计分析器都提供关键路径的信息以便设计者改进设计。Quartus 中的静态时序分析工具可以帮助找到延时最长的关键路径。
  4. 乒乓操作法
    乒乓操作法是 FPGA 开发中的一种数据缓冲优化设计技术,可视作另一种形式的流水线技术。乒乓操作本质是使用 2 倍的硬件资源,通过将数据产生时间和数据使用时间重叠,解决一个数据生产效率低于数据使用效率的问题。是一种拿面积换性能的方法。通过“输入数据流选择单元”和“输出数据流选择单元”按节拍、相互配合的切换,将经过缓冲的数据流“无缝”地送到“数据流运算处理模块。
  5. 树形结构法
    若要实现 A+B+C+D。首先实现 AB=A+B,CD=C+D,将 AB/CD 锁存一个时钟周期再相加。树形结构法和上面面积优化提到的串行化是相反的。

4. 为什么一般都时钟上升沿操作呢?

这个是根据器件的物理特性所决定的,我们一般都是硅芯片,硅芯片用到了电容的充放电,充电的过程是比较快的,而放电的过程比较慢,这样,为了满足建立时间、保持时间的要求,所以上升沿比较容易满足,因此,一般情况下都采用上升沿。

声明

本人所有系列的文章,仅供学习,不可商用,如有侵权,请告知,立删!!!

本人主要是记录学习过程,以供自己回头复习,再就是提供给后人参考,不喜勿喷!!!

如果觉得对你有用的话,记得收藏+评论!!!

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一部分:查找表LUT FPGA是在PAL、GAL、EPLD、CPLD等可编程器件的基础上进一步发展的产物。它是作为ASIC领域中的一种半定制电路而出现的,即解决了定制电路的不足,又克服了原有可编程器件门电路有限的缺点。   由于FPGA需要被反复烧写,它实现组合逻辑的基本结构不可能像ASIC那样通过固定的与非门来完成,而只能采用一种易于反复配置的结构。查找表可以很好地满足这一要求,目前主流FPGA都采用了基于SRAM工艺的查找表结构,也有一些军品和宇航级FPGA采用Flash或者熔丝与反熔丝工艺的查找表结构。通过烧写文件改变查找表内容的方法来实现对FPGA的重复配置。   根据数字电路的基本知识可以知道,对于一个n输入的逻辑运算,不管是与或非运算还是异或运算等等,最多只可能存在2n种结果。所以如果事先将相应的结果存放于一个存贮单元,就相当于实现了与非门电路的功能。FPGA的原理也是如此,它通过烧写文件去配置查找表的内容,从而在相同的电路情况下实现了不同的逻辑功能。   查找表(Look-Up-Table)简称为LUTLUT本质上就是一个RAM。目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能结果,并把真值表(即结果)事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。   下面给出一个4与门电路的例子来说明LUT实现逻辑功能的原理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值