微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 包含除法的数字前端DC问题

包含除法的数字前端DC问题

时间:10-02 整理:3721RD 点击:
数字新人,遇到了如下问题:
    在前端设计中直接使用了除法,19bits的码除以5bits的码,输出为14bits
    即:[18:0] A/ [4:0]B这样的功能
   做DC的时候发现这部分的setup slack很差,但>=0,因此没有过多关注,最近做后端的时候发现这个除法的延时太大,因为综合出来的除法是迭代结构的,要从高位开始除,最后才能得到低位的数据。  因此延时很大,这部分的延时超过了我的时钟周期,最终导致后端的时候setup slack非常大,-10.8n左右。(clock  10ns)
   不知道有什么解决方案。
1,是否可以通过调整verilog代码?  PS:此除法功能很重要,无法替代。只能换一种语句描述,不知道有没有好的语句?
2.  是否可以通过工具(encounter)一直优化,降低这部分的延时。 比如增大std cell的尺寸?  这样的方法是否可取?
多谢。

感觉只能修改算法,

用查表法得到C=1/B,然后,A*C代替A/B。
除数5位,很适合用查表法求倒数。用乘法实现除法,乘法比除法快。



   自己写除法,然后插入流水线?

如果没有对除法计算周期有要求的话,就用递归减法做。
如果有要求,最好改下算法,用乘法实现

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top