Xilinx 可变长度移位寄存器IP深度导致的延迟问题

前言

对于xilinx移位寄存器IP的使用而言,其内部为SLR16/SRL32实现。

当位深小于32时,其可变延迟是正确的。当大于32,其可变延迟为相同延迟加1。

可能是内部多个SLR32之间插入了一个寄存器导致多了一拍。

 

流程

验证位深小于32和位深大于32的移位寄存器可变延迟关系。

(1)配置两个不同位深的实例。

Xilinx 可变长度移位寄存器IP深度导致的延迟问题_第1张图片

 

 Xilinx 可变长度移位寄存器IP深度导致的延迟问题_第2张图片

 

 (2)使用相同的可变延迟配置。

Xilinx 可变长度移位寄存器IP深度导致的延迟问题_第3张图片

 

 (3)仿真看看。

Xilinx 可变长度移位寄存器IP深度导致的延迟问题_第4张图片

 

 Xilinx 可变长度移位寄存器IP深度导致的延迟问题_第5张图片

 

 可以看到当位深大于32之后,端口中就不能再是减1,而是减2。否则不是想要的延迟。注意。

更进一步:如果是128位深的呢?结果还是一样的,并不是每个都插了一个寄存器。

Xilinx 可变长度移位寄存器IP深度导致的延迟问题_第6张图片

 

 

Xilinx 可变长度移位寄存器IP深度导致的延迟问题_第7张图片

 

 所以,只要是位深大于32,那可变位宽就是需要延迟数-2。

 

以上。

 

你可能感兴趣的:(Xilinx 可变长度移位寄存器IP深度导致的延迟问题)