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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 18996|回复: 9

[求助] 求教verilog较快捷求余的做法~~

[复制链接]
发表于 2012-11-16 10:32:59 | 显示全部楼层 |阅读模式

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

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

x
求教verilog较快捷求余的做法,暂时还没想到较简洁的,求达人指点下~~
发表于 2012-11-16 10:47:10 | 显示全部楼层
关键除数是多少,有一些是可以用特定简化的办法做的。比如/5
通用的可以用移位减的方法。
 楼主| 发表于 2012-11-16 10:53:30 | 显示全部楼层
回复 2# majia123qwe


    我想知道对10和11求余的较快捷的方法,谢谢了~~
发表于 2012-11-16 12:43:20 | 显示全部楼层
除法器 就有余数
发表于 2012-11-16 13:44:45 | 显示全部楼层
回复 3# clean_water

10 = 16-6
6 = 8-2
A[7:0]=A[7:4]*16 + A[3:0] = A[7:4]*(10+6) + A[3:0] {因为A[7:4]*10的余数=0}= 6*A[7:4] + A[3:0]

10 = 8+2
A[4:0]=A[4:3]*8 + A[2:0] = A[4:3]*(10-2) + A[2:0] {因为A[4:3]*10的余数=0}= -2*A[4:3] + A[3:0] = A[3:0] -{A[4:3],1'b0}

大致的思路如上
发表于 2012-11-16 14:01:02 | 显示全部楼层
用lpm_divide可以直接得到remain,这样调用效率比自己写的高多了而且不会浪费资源吧
发表于 2016-11-27 22:00:34 | 显示全部楼层
回复 5# majia123qwe


   大神,收下我的膝盖!
发表于 2016-11-28 12:34:42 | 显示全部楼层
进来学习下
发表于 2017-3-1 21:41:56 | 显示全部楼层
回复 5# majia123qwe


   请教一下,比如对6取余的数很大怎么办?比如A[15:0] % 6 = (A[15:3] * 8 + A[2:0]) % 6  =  (A[15:3]*( 6 + 2) + A[2:0] ) % 6 = (A[15:3]*2 + A[2:0]) % 6 = ....  这样算下去, 可能最后还是好几个数相加,这个数还是可能大于6, 怎么办呢?

点评

确实,我也不太理解怎么做  发表于 2021-8-6 09:37
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-4-23 19:06 , Processed in 0.025548 second(s), 7 queries , Gzip On, Redis On.

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