上图是一个月来尝试的各种计算方式。
各种除法器流水线级数各不相同,工作频率也不相同,但总的运算时间却很难突破。
其中有单周期除法,100ns
High-Radix,50ns
xilinx生成的除法器,150ns
查表试商法等等
目前做到最快的有三种方式:
1.先计算A*B,1clk,再经查表试商8clk,总共9clk,工作到333MHz,延时30ns
2.先计算A*B,1clk,再经查表试商5clk,总共6clk,工作到200MHz,延时还是30ns
3.计算M=A*B,同时查表求D=2^S/C,1clk;计算N=M*D,1clk;商Q=N/2^S,直接移位,计算R=Q*C-M,1clk;比较R与C,修正Q,1clk;总共4clk,跑到166MHz,延时24ns;很难提高速度;插入合适的寄存器后,能跑到200MHz,但是需要6clk,延时还是30ns
|