Board logo

标题: [求助]请教高手个问题 [打印本页]

作者: rice973    时间: 2008-1-22 15:45     标题: [求助]请教高手个问题

一个数据比如rdy[7:0],我想知道从右到左第一个1的位置,该怎么写程序
我用如下程序实现可是仿真不对:
case( rdy[7:0] )
8'bxxxx_xxx1: pos <= 0;
8'bxxxx_xx10: pos <= 1;
....
...
8'b1000_0000: pos <= 7;
endcase

X是对这一个的值不关心的意思吗?

作者: caopengly    时间: 2008-1-22 21:35

有很多方法,时间不同:

1)你可以将需要求的数逐个与下面的数A与在与数B比较

A B

00000001 00000001

00000010 00000010

。。。 。。。

2)将数先与00000001逻辑与后比较不等将原始数向右移一位,再与00000001逻辑与后比较,而后在向右移一位,相等。移的位数就是他的最右边的1的位置。






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0