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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3170|回复: 3

再次请教循环移位的问题(verilog)

[复制链接]
发表于 2005-1-30 11:20:31 | 显示全部楼层 |阅读模式

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

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

x
再次请教循环移位的问题(verilog)
各位高人:
===================================================
我的算法中用循环移位,原来的算法是这样写的,如a[15:0]做7次循环移位,重复做7次这样的操作:
    a[15:0] <= { a[0], a[15:1] };
其实每一的中间结果都没有用,只是要用7次循环移位以后的结果。这个算法的这种写法估计是给通用cpu处理用的吧!
我现在就想: 既然中间结果都没有用,只用最后的结果,我干脆就一次性的象下面这样操作算了:
   a[15:0] <= { a[7:0], a[15:8] "};
这样还节省了不少时钟,何了而不为呢?估计在资源上要多耗费一些复制的寄存器什么吧。
不知我这样做对不对?好还是不好?
===================================================
请不吝赐教,我不胜感激!
发表于 2005-1-30 11:25:38 | 显示全部楼层

再次请教循环移位的问题(verilog)

a[15:0] <= { a[7:0], a[15:8] };
这样写挺好的呀
发表于 2005-1-30 13:17:31 | 显示全部楼层

再次请教循环移位的问题(verilog)

时序上符合要求地话
a[15:0] <= { a[7:0], a[15:8] };
这样蛮好啊
发表于 2005-1-30 18:38:01 | 显示全部楼层

再次请教循环移位的问题(verilog)

你的想法有点不太明确。
如果你的算法是给一个简单的处理器用的,它的移位是靠一位一位来移的。那么你只需实现单步移位就可以了。
如果处理器要求单时钟多位移位,你必须实现桶式移位器,但那逻辑会很大,一般都是用专门电路单元来做的。
所以针对你说的情况,估计你硬件实现单步移位就可以了,剩下的让程序去完成。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-5-21 22:01 , Processed in 0.020161 second(s), 7 queries , Gzip On, Redis On.

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