在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1253|回复: 2

[求助] 二进制小数除法怎么设计成并行电路?

[复制链接]
发表于 2023-12-22 17:48:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
一、设计要求

输入被除数(dividend)和除数(divisor)都是16bit的无符号整数,且被除数恒定小于除数,也就是说产生的结果一定是小于1的小数。目前我用8bit的定点数表示这个计算结果,由于结果一定小于1,所以设置成8bit都是小数。
二、设计思路
根据十进制除法计算产生小数的思路,我做了如下二进制的流程图。其中,A是被除数,B是除数,计算A/B=res, 当A>B的时候,res对应bit置1,当A<B的时候,res对应bit置0;
二进制小数除法.png
三、RTL
二进制小数除法rtl.png
四、仿真结果
仿真结果如下图所示,输入2/5时,产生的result=0x66,按照规格定义,这个数被认为是0.3984375(精度的问题暂且不讨论)。
二进制小数除法仿真.png
五、求助问题
从输入到产生最后的结果,目前是经过了11拍,理论上的拍数应该8拍就够了,多出来的拍数这里暂且不讨论。
这种设计相当于时域上的顺序计算,每次计算result的一个bit,当result的位宽增大的时候,需要的拍数就会增加。
我想问这种二进制小数除法器怎么做并行结构,以减少时钟周期? 在rtl里,我想把第一段用组合逻辑铺开,但A变量的变化依赖于上一个A,用组合逻辑铺开的话,会产生环路,是肯定不行的。
所以我想求助一下,怎么做这个并行的结构,基于上述的设计要求有新的结构也可以告诉一下我,目前我找到的除法都是得到商和余数的。
发表于 2023-12-22 18:04:57 | 显示全部楼层
本帖最后由 liuguangxi 于 2023-12-22 18:15 编辑

除法器由于其计算本质基本上没有有效的并行计算结构的,但是可以考虑使用高基除法器结构,一次出多bit结果,从而减少总的计算周期数。
还有可以对于输入被除数和除数进行归一化处理,使得缩放后被除数和除数最高位均为'1',这样比如用基4除法器4个周期就出结果,加上预处理1个周期共5个周期。
发表于 2023-12-22 19:27:46 | 显示全部楼层
可以的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-5-14 22:31 , Processed in 0.016420 second(s), 8 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表