ackyee 发表于 2022-6-24 09:20:40

xilinx的除法器IP我上了148M会有问题,这个极限速率哪儿能查到吗

本帖最后由 ackyee 于 2022-6-24 09:23 编辑

如题,除法的IP上 用了6个时钟延时来输出结果,这里有个疑问乘法器上有个 指标是几级流水线,但是除法只写几个延时,这个是同一个概念吗

另外   除数增大了,数据输出会出错,(算法没问题,在低速下 能运算通过,不存在溢出问题)   除数变小 就不会有问题

另外算法每一步都放到always块里了,而且都是一个always实现一个简单的操作,不存在组合逻辑运算不过来的情况, 问题应该就在除法器上了

wye11083 发表于 2022-6-24 09:51:16

你好好做前仿,然后看时序!异步时钟注意把所有reg输出加0.5ns延迟再前仿!时序对了一般不会出问题!再有问题检查你内核供电!

ackyee 发表于 2022-6-24 10:03:50

本帖最后由 ackyee 于 2022-6-24 10:05 编辑

wye11083 发表于 2022-6-24 09:51
你好好做前仿,然后看时序!异步时钟注意把所有reg输出加0.5ns延迟再前仿!时序对了一般不会出问题!再有问 ...
(引用自2楼)

好 ,我试试看,其他逻辑都很简单都是赋值 加减这种,应该就是除法这块 有问题了   

先找找看 , 不行的话 再把数据流用两个除法器去推

ArthurBruin 发表于 2022-6-24 11:26:07

这种情况,明显是时序余量不够

tjiefk 发表于 2022-6-24 12:41:14

wye11083 发表于 2022-6-24 09:51
你好好做前仿,然后看时序!异步时钟注意把所有reg输出加0.5ns延迟再前仿!时序对了一般不会出问题!再有问 ...
(引用自2楼)

求教:reg输出怎么样加延迟?

wye11083 发表于 2022-6-24 12:42:18

tjiefk 发表于 2022-6-24 12:41
求教:reg输出怎么样加延迟?
(引用自5楼)

仿真时用always @(*) if(xxx)#0.5 yy<=zz;

smbxfdbz 发表于 2022-6-24 13:46:55

本帖最后由 smbxfdbz 于 2022-6-24 13:48 编辑

wye11083 发表于 2022-6-24 12:42
仿真时用always @(*) if(xxx)#0.5 yy
(引用自6楼)

异步时,仿真加0.5延时的目的是什么呢?
应该时,同步时,才加延时吧。你这个代码示例是非阻塞赋值,同步设计时,才会用非阻赛呀?

ackyee 发表于 2022-6-24 14:43:00

ArthurBruin 发表于 2022-6-24 11:26
这种情况,明显是时序余量不够
(引用自4楼)

对的 现在在查是逻辑时序余量不够 还是说除法器分配的运算时间不足,还是说除法器给的时钟太高了

wye11083 发表于 2022-6-24 15:20:50

smbxfdbz 发表于 2022-6-24 13:46
异步时,仿真加0.5延时的目的是什么呢?
应该时,同步时,才加延时吧。你这个代码示例是非阻塞赋值,同步 ...
(引用自7楼)

前仿时默认tsu=0ns。所以跨时钟仿真时会出问题。

at90s 发表于 2022-6-25 01:33:30

看看时序报告?

ackyee 发表于 2022-6-25 09:06:50

at90s 发表于 2022-6-25 01:33
看看时序报告?
(引用自10楼)

找到问题了除法器的 最佳性能 手册上描述是需要    把延时控制在被除数的 位宽 + 余数的位宽 +2 的   ,我的被除数是 21bit也就是我理论上需要至少23 个clk的延时才能发挥最佳性能
页: [1]
查看完整版本: xilinx的除法器IP我上了148M会有问题,这个极限速率哪儿能查到吗