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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

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

[求助] verilog中有效位判断

[复制链接]
发表于 2012-3-27 16:40:00 | 显示全部楼层 |阅读模式

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

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

x
想问下有没有什么好的算法判断一个乘法结果中第一个1在哪一位?(无符号数)
我只知道 从最高位开始一位一位往下判断
always @(*)
begin
if(a[10])
   b <= a[10:0];
else if (a[9])
    b <= a[9:0];
else if (a[8])
  .
   .
   .
   .
   .
请问除了这种简单的麻烦的算法还有更好的简单的么,谢谢!
发表于 2012-3-27 18:01:06 | 显示全部楼层
多级mux可以做到。大致想法就是二分法。
发表于 2012-3-27 21:24:22 | 显示全部楼层
为什么要这么做啊?
你的b到底定义成多少位的啊?
发表于 2012-3-27 22:00:27 | 显示全部楼层
晕倒!if else当然不行。嵌套多了以后,运行速度会下降。
发表于 2012-3-28 09:03:39 | 显示全部楼层
回复 1# zxxqs

如果单纯找第一个"1"的话可以看下面这个贴子,把回复都看完

http://bbs.eetop.cn/thread-325004-1-6.html
发表于 2012-3-28 10:08:58 | 显示全部楼层
回复 7# vongy
那个问题比LZ的要复杂,当然那个帖子里其实给出了LZ这个问题的解决方案,多级MUX就可以了。
发表于 2012-3-28 12:38:07 | 显示全部楼层
能不能用移位,这时可以只判断一位,不过和你的道理上一样。
发表于 2012-4-9 22:07:41 | 显示全部楼层
好问题…………
发表于 2012-4-10 09:39:01 | 显示全部楼层
case(a[10:0])
10'b10_0000_0000: .....
10'b01_0000_0000: .....
发表于 2012-4-10 14:57:20 | 显示全部楼层
这个可以看成是算法了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-14 22:16 , Processed in 0.025612 second(s), 9 queries , Gzip On, Redis On.

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