数字逻辑电路一般都是时序部件(触发器)+组合逻辑(与门,或门,异或门等)来完成一系列的功能。既然完成一个特定的功能可以通过组合逻辑来实现,为什么要引入时序逻辑呢?
这是因为时序逻辑是基于时钟沿(上升沿或者下降沿)触发,只有在时钟边沿数据才会被锁存,具有良好的去毛刺,抑制干扰作用,保证了数字电路功能的正确性和稳定性。(这方面原理将会在下一篇博文中说明)。既然构成数字逻辑最重要的部件是组合逻辑和时序逻辑,那么作为实现数字逻辑功能的FPGA的最重要组成部分就是组合逻辑和时序逻辑了。
FPGA一般都是基于查找表(Look Up Table)结构,查找表基本上等同于SRAM。假设在FPGA中要实现一个2输入的与门,那么该与门的输入输出对应关系为:
|
输入 |
输出 |
|
0, 0 |
0 |
|
0, 1 |
0 |
|
1, 0 |
0 |
|
1, 1 |
1 |
既然有了此对应逻辑关系,那么在SRAM对应的地址中只需存储相应的输出数值,而输入数值作为地址来查表即可得到正确的输出值即可。当输入地址为0,0时,输出0地址里存储的值0,当输入地址为0,1时,输出1地址里存储的值0,当输入地址为1,0时,输出2地址里存储的值0,当输入地址为1,1时,输出3地址里存储的值1,因此为什么说FPGA是可编程的,主要是表现在逻辑功能可以根据需要被重新编写在SRAM里,实现不同的逻辑功能。这就是FPGA里实现组合逻辑功能里LUT的基本原理。下一篇博文将详细讲述CLB逻辑的基本原理和构成。
本文探讨了数字逻辑电路的设计原理,重点介绍了FPGA如何利用查找表(LUT)实现可编程逻辑功能,并解释了引入时序逻辑的重要性。
1万+

被折叠的 条评论
为什么被折叠?



