浅谈XILINX FPGA CLB单元 之 移位寄存器(移位寄存器、SRLC32E、SRL16E)

浅谈XILINX FPGA CLB单元 之 移位寄存器(移位寄存器、SRLC32E、SRL16E)

一、移位寄存器
  1. SLICEM函数发生器也可以配置为32位移位寄存器,而无需使用slice中可用的触发器。 以这种方式使用,每个LUT可以将串行数据延迟1到32个时钟周期。
  2. 移入D(DI1 LUT引脚)和移出Q31(MC31 LUT引脚)线路将LUT级联,以形成更大的移位寄存器。 因此,SLICEM中的四个LUT被级联以产生高达128个时钟周期的延迟。也可以在多个SLICEM上组合移位寄存器。
  3. 寄存器,LUT B / C / D的MC31输出也不可用。 由此产生的可编程延迟可用于平衡数据流水线的时序
    下图是SRL32位移位寄存器的框图:

在这里插入图片描述
下图是占用一个32位函数发生器的示例移位寄存器配置
在这里插入图片描述

二、 移位寄存器的功能与应用
  1. 移位寄存器的功能
    1)写操作
    2)与时钟输入(CLK)和可选的时钟使能(CE)同步
    3)修复对Q31的读取访问
    4)动态读取访问
    5)通过5位地址总线A [4:0]执行
    LUT地址的LSB未使用,软件自动将其绑定为逻辑高电平。
    6)通过改变地址可以异步读取32位中的任何一位(在O6 LUT输出上,在原语上称为Q)
    7)此功能对于创建较小的移位寄存器(少于32位)很有用
    例如,当构建13位移位寄存器时,将地址设置为第13位。
    8)存储单元或触发器可用于实现同步读取
    触发器的时钟输出决定了总延迟并改善了性能。但是,增加了一个时钟延迟周期。

  2. 移位寄存器的应用:
    1)延迟或延迟补偿
    2)同步FIFO和内容可寻址存储器(CAM)

三、XILINX FPGA 中LUT 中移位寄存器的复用情况
  1. 一个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)中实现的移位寄存器的时序特性:
在这里插入图片描述

  • 5
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

摆渡沧桑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值