作者:小翁同学,文章来源:博客园
前言
对于xilinx移位寄存器IP的使用而言,其内部为SLR16/SRL32实现。
当位深小于32时,其可变延迟是正确的。当大于32,其可变延迟为相同延迟加1。
可能是内部多个SLR32之间插入了一个寄存器导致多了一拍。
流程
验证位深小于32和位深大于32的移位寄存器可变延迟关系。
(1)配置两个不同位深的实例。
![](http://xilinx.eetrend.com/files/2022-02/%E5%8D%9A%E5%AE%A2/100557972-243844-1.png)
![](http://xilinx.eetrend.com/files/2022-02/%E5%8D%9A%E5%AE%A2/100557972-243845-2.png)
(2)使用相同的可变延迟配置。
![](http://xilinx.eetrend.com/files/2022-02/%E5%8D%9A%E5%AE%A2/100557972-243846-3.png)
(3)仿真看看。
![](http://xilinx.eetrend.com/files/2022-02/%E5%8D%9A%E5%AE%A2/100557972-243847-4.png)
![](http://xilinx.eetrend.com/files/2022-02/%E5%8D%9A%E5%AE%A2/100557972-243848-5.png)
可以看到当位深大于32之后,端口中就不能再是减1,而是减2。否则不是想要的延迟。注意。
更进一步:如果是128位深的呢?结果还是一样的,并不是每个都插了一个寄存器。
![](http://xilinx.eetrend.com/files/2022-02/%E5%8D%9A%E5%AE%A2/100557972-243849-6.png)
![](http://xilinx.eetrend.com/files/2022-02/%E5%8D%9A%E5%AE%A2/100557972-243850-7.png)
所以,只要是位深大于32,那可变位宽就是需要延迟数-2。
以上。
免责声明:本文转载于网络,转载此文目的在于传播相关技术知识,版权归原作者所有,如涉及侵权,请联系小编删除(联系邮箱:service@eetrend.com )。