浅谈XILINX FPGA CLB单元 之 移位寄存器(移位寄存器、SRLC32E、SRL16E)
发布时间:2025-12-09 18:14:04
浏览次数:4
浅谈XILINX FPGA CLB单元 之 移位寄存器(移位寄存器、SRLC32E、SRL16E)
一、移位寄存器
SLICEM函数发生器也可以配置为32位移位寄存器,而无需使用slice中可用的触发器。 以这种方式使用,每个LUT可以将串行数据延迟1到32个时钟周期。移入D(DI1 LUT引脚)和移出Q31(MC31 LUT引脚)线路将LUT级联,以形成更大的移位寄存器。 因此,SLICEM中的四个LUT被级联以产生高达128个时钟周期的延迟。也可以在多个SLICEM上组合移位寄存器。寄存器,LUT B / C / D的MC31输出也不可用。 由此产生的可编程延迟可用于平衡数据流水线的时序。
下图是SRL32位移位寄存器的框图: 三、XILINX FPGA 中LUT 中移位寄存器的复用情况
一个LUT可以用于产生2个16bit移位寄存器,地址是复用的。
用两个SRL16组成一个32位的移位寄存器
下图是一个SRL 16E 带使能信号的移位寄存器:
移位寄存器查找表,它的输入这是一个移位寄存器查找表,它的输入 A3,A2,A1和 A0选择移位输出的长度。
移位寄存器可以是固定的、静态的长度,移位寄存器的长度可以从 1位到 16位不等,由下面公式决定:
长度 =(8 x A3)+(4 x A2)+(2 x A1)+A0+1
如果 A3,A2,A1,A0都是 0(0000),移位寄存器的长度就是 ),移位寄存器的长度就是 1位长;如果它们 都是 1(1111),移位寄存器的长度就是 ),移位寄存器的长度就是 ),移位寄存器的长度就是 16位长。
下表是SRL16E的真值表:
2.利用SRL32 组成 64/96/128 bit的移位寄存器,利用地址A5和F7AMUX切换SRL32
四、移位寄存器数据流
下图举例说明在7系列FPGA Slice(一个配置为SRL的LUT)中实现的移位寄存器的时序特性: