数字逻辑电路一般都是时序部件(触发器)+组合逻辑(与门,或门,异或门等)来完成一系列的功能。既然完成一个特定的功能可以通过组合逻辑来实现,为什么要引入时序逻辑呢?
这是因为时序逻辑是基于时钟沿(上升沿或者下降沿)触发,只有在时钟边沿数据才会被锁存,具有良好的去毛刺,抑制干扰作用,保证了数字电路功能的正确性和稳定性。(这方面原理将会在下一篇博文中说明)。既然构成数字逻辑最重要的部件是组合逻辑和时序逻辑,那么作为实现数字逻辑功能的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逻辑的基本原理和构成。
用户1790620 2016-3-14 06:44
用户388227 2015-3-2 15:28
用户43929 2014-9-23 10:56
用户1617943 2014-7-1 16:30
用户1605978 2013-5-31 16:31
用户603461 2012-12-18 20:55