Xlinx PG151 除法器IP 笔记

目的

之前有使用过除法器,但感觉对生成ip配置还是很多不理解地方,于是阅读了Xlinx 除法器IP PG151中部分内容,记录备忘。

内容

1. 三种算法LutMult,Radix2,HighRadix 区别

方法对比

方法

建议操作数位宽

吞吐率

clocks per division

描述

主要资源

LUTMult

<=12bit

1

把分母倒数用查找表存储起来,然后用乘加实现。适用小数据。

DSP+BRAM

Radix2

<= 16bits

>= 1

用加减法一个周期一个周期的计算商。类似于列式计算。只有它可以设置吞吐量(clocks per division,也就是几个周期计算一次)

Reg+LUT

High radix

>16bit

≤1/N

适用大数据。 对商的多个bit运算,好像也是先预估分母倒数大小(pre scale),然后用它和分子相乘(用到DSP),迭代N次计算这个过程。同时会有校正算法(因为预估的倒数可能不准)。

DSP+BRAM

LutMult 限制被除数和除数位宽23bit

HighRadix算法的吞吐率和迭代次数N在VIVADO 19.1中截图如下。

2. 余数模式,小数模式,有符号运算原理。

原理如下,小数模式相当于把余数模式的余数扩大后,再运算一次。

(1)商(quotient)和被除数(dividend)位宽相同。

(2)余数(remainder)和除数(divisor)位宽相同。

(3)有符号+余数模式,余数符号和被除数一致。例子截图如下图。

(4)有符号+小数模式,商和小数都保留符号位,例子截图如下。

3. 阻塞模式(Blocking Mode)和非阻塞模式(Non Blocking Mode)

阻塞模式:除数和被除数可分时有效,也就是可以分时钟给。输入的被除数和除数同时受到valid,ready信号控制和握手。参考下图。

非阻塞模式:除数和被除数需要同时有效。输入的被除数和除数同时受到valid,ready信号控制和握手。

4. TUSER和TLAST

个人理解:两者除法器本身作用不是很大,可以用来旁路一些数据。

(1)TUSER 位宽可以自定义,用来传输一些用户想要传输的数据,延时和除法器计算延时相同。

(2)如果打开了Divide_by_zero detect功能(也就是分母=0),则TUSER 的bit 0 固定传输除0标志位。分母为零时候计算结果是不确定的。

(3)TLAST是AXI协议中内容,表示最后一个块(last block)数据,在除法计算本身好像也没什么用。1 bit宽度。

        可以把除数和被除数的TLAST逻辑运算后输出,如”与“,”或“。

4. 输入数据(除数和被输出)位宽

可以设置任意位宽,但由于AXI4总线原因,接口中会扩展为8bit位宽,我理解会影响例化那里的端口位宽,实际除法核心部分和用户设定的位宽一致的。

5. 复位ARSTn

默认内部复位,同步低电平复位,可以打开,至少需要两个时钟(aclks)周期。

实际输出结果以tvalid握手信号为准,避免出现有些寄存器没有完全reset情况。

6. 延时

(1)LutMult 固定为8T

        

(2) Radix2

手动延时:吞吐率=1时候可以设置延时,吞吐率是指每个时钟计算几次(clocks per division)。

自动延时:延时计算如下图,这时候为延时最大值。如果时钟不是很高,可以设定为手动模式,适当调低此值,减少资源消耗。

(3) HighRadix

非阻塞模式的最小延时计算如下。也就是被除数(dividend)位宽+小数(fractional)位宽。

非阻塞模式最大延时如下图。

阻塞模式下,需要在上面基础上附加延时。

模式        附加延时
阻塞 tready输出+1  
阻塞 有tready输出+ 3

参考资料

Divider Generator v5.1 Product Guide (PG151)

pg151-div-gen.pdf • Viewer • AMD Adaptive Computing Documentation Portal (xilinx.com)

  • 26
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值