FPGA的一些知识
Posted ckxx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FPGA的一些知识相关的知识,希望对你有一定的参考价值。
查找表(LUT)
对于一个有n输入的逻辑运算,则最终有2n个不同的组合方式。为了便于理解,下面给出一个例子:
上面是一个2输入的例子,该例子对应的组合逻辑电路如下:
该组合逻辑的真值表:
如果使用传统的数字电路的方法,则要实现该组合逻辑电路,需要经过下面几个过程:
通过真值表得到输入和输出之间的逻辑关系;
通过化简卡诺图得到描述输入输出变量关系的逻辑表达式;
通过逻辑电路实现逻辑表达式。
众所周知,在设计时序电路时,时序电路的工作性能极为重要。然而,采用传统逻辑门电路实现逻辑关系的方法存在一些严重的缺点:
输入变量从通过逻辑电路到输出变量,存在一定的延迟,该延迟的大小和逻辑电路的复杂程度密切相关。逻辑电路越复杂,延迟越大,因此,延迟是不确定的;
延时的倒数是频率,频率和时序电路的工作速率密切相关。因为延迟不确定,所以频率也不确定,这将严重影响整个电路的工作性能;
逻辑电路的复杂程度和输入逻辑变量的个数、逻辑门的个数有关。因此输入逻辑变量越多,逻辑电路就越复杂。
LUT
为了解决传统逻辑电路的的问题,在FPGA中,使用LUT来实现组合逻辑电路的功能。
LUT 本质上是一个SRAM,里面存储的数据类似于真值表,它将上例中的逻辑与门和或门分别使用两张类似于真值表的东西代替,LUT中保存着输入变量和经过逻辑门后输出变量的所有结果。在实现上,它将输入数据作为SRAM的地址,然后通过该地址找到对应的值,将该值作为结果输出。比如上例中的与门,在该与门对应的LUT中,地址为0、0的存储单元中保存着0,地址为0、1的存储单元中保存着0,地址为1、0的存储单元中保存着0,地址为1、1的存储单元中保存着1;当输入变量为0、1时,就会直接将LUT中地址为0、1的存储单元中的0输出。
上例中查找表构成的电路:
其中x_OBUF_inst_i_1和y_OBUF_inst_i_1分别为与门和或门对应的LUT,I0和I1表示输入变量,O表示输出的值,IBUF表示输入缓冲区,OBUF表示输出缓冲区。
使用LUT代替传统的逻辑门实现组合逻辑的优点:
通过LUT代替组合逻辑,而LUT中的值只和输入有关,因此组合逻辑的功能由输入决定,不在和复杂度有关;
LUT实现的组合逻辑的延迟是固定的。
————————————————
版权声明:本文为CSDN博主「dongtao Lv」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_34769608/article/details/109660310
以上是关于FPGA的一些知识的主要内容,如果未能解决你的问题,请参考以下文章