可编程逻辑与数据驱动处理器技术解析
1. 引言
在计算系统领域,可编程逻辑和数据驱动处理器是两个核心的主题。可编程逻辑为实现各种复杂逻辑功能提供了灵活的解决方案,而数据驱动处理器则以其独特的架构和运行方式,在并行处理等方面展现出显著优势。以下将详细介绍这两个主题的相关内容。
2. 可编程逻辑 - 现场可编程门阵列(FPGA)
2.1 FPGA 基本原理
FPGA 架构的核心思想是使用查找表(LUT)。以典型的三输入 LUT 为例,它包含八个寄存器用于存储位,一个 8 - 1 多路复用器(MUX)用于选择八个寄存器输出之一,以及一个位于 8 - 1 MUX 输出端的触发器来实现时序逻辑。
在编程阶段,当 Prog 输入设置为逻辑 1 时,输入数据 In[7:0] 的位值通过 ProgIn 端口串行分布到所有八个寄存器。为实现这一点,所有八个 LUT 寄存器以移位寄存器配置连接,In[7:0] 从 Bit[0] 到 Bit[7] 串行移入。位于 Bit[7] 位置的底部寄存器有另一个输出 ProgOut,连接到另一个 LUT 的 ProgIn 输入,这样 FPGA 芯片上的每个 LUT 都可以使用单根线进行串行编程,以节省布线空间。
在正常操作中,LUT 寄存器中存储的位构成真值表的输出值,而真值表的输入则是 8 - 1 MUX 的选择器,从 LUTIn[0] 到 LUTIn[2]。因此,只需对 LUT 寄存器进行编程,无需其他传统逻辑门,就可以产生任意真值表。例如,当 LUTIn[2] = LUTIn[1] = LUTIn[0] = 0 时,8 - 1 MUX 将 Bit[0] 中存储的值路由到其输出;同样,LUT