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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3428|回复: 5

记得曾经有人贴过这样一道题,现在还是不知道怎么做

[复制链接]
发表于 2006-9-27 22:19:00 | 显示全部楼层 |阅读模式

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

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

x
有一个60bit的序列,a[59:0]
要求用尽量少的面积和时序找出第一个不为0的bit位置
例如 60‘h300330300033330,第一个不为0的bit位置为57
请各位大侠帮助解答一下
发表于 2006-9-28 10:25:07 | 显示全部楼层
用移位方法一位一位移出,再判断是否为1或0
发表于 2006-9-28 14:25:32 | 显示全部楼层
这是一个组合逻辑/时序逻辑折中的问题,
2楼大侠所说的是组合逻辑,就是做一个counter,把向量移出来,某一位为1时取出counter的值。
另外就是用纯组合逻辑,输入为60位的向量,输出为对应的bit的值。
用纯组合逻辑可以优化,感觉优化的余地还不小。
实际的设计可能是介于两种方法之间,从而减小面积和时延
发表于 2006-9-28 15:42:54 | 显示全部楼层


原帖由 yinchyang 于 2006-9-28 14:25 发表
这是一个组合逻辑/时序逻辑折中的问题,
2楼大侠所说的是组合逻辑,就是做一个counter,把向量移出来,某一位为1时取出counter的值。
另外就是用纯组合逻辑,输入为60位的向量,输出为对应的bit的值。
用纯组合 ...



说得不错。
首先,我们判断1bit是不是0的方法可以是用1'b1去异或;推广一下,判断4bits哪位是0的办法就是看是下列哪种情况中的一种,即4'b1???,4'b01??,4'b001?,4'b0001,4'b0000;依此类推,还可以推出60bits时的办法。
但是,这里有一个clock周期的限制,也有整个判断电路latency的要求。
至此,你就可以根据客观条件判断,是一次判断1bit还是4bits还是30bits还是60bits(感觉60的因数比较好些)。
至于代码就是写case,电路优化有综合工具。
发表于 2006-9-28 17:08:05 | 显示全部楼层
赫赫,同意4楼的说法,
稍稍有一个不同的意见是: 我觉得尽量在代码级优化电路,综合工具的使用会有一些问题。
发表于 2006-9-29 00:24:32 | 显示全部楼层
这个应该和“一个数加1”快速算法类似,只不过加1是要找第一个为0的位置。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2025-5-13 14:03 , Processed in 0.057745 second(s), 8 queries , Gzip On, MemCached On.

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