在verilog语言中,本来>>>就是算数右移的符号,可是在实际仿真的时候我发现效果还是和逻辑右移的效果一样。后来我觉得应该可以自己写一个算了。
方法一:暴力case
case(shift) //shift是要移位的数目
1:
result <= {result[15],result[15:1]}; //假设result是15位的数据
2:
result <={ {2{result[15]}},result[15:2]};
&n
本文介绍了在Verilog中实现算术右移的方法,包括使用case语句的直接赋值方式和尝试使用循环的方法。详细展示了如何通过扩展最高位来完成不同位数的算术右移操作,并给出了一个在M0 CPU设计中应用的例子。
在verilog语言中,本来>>>就是算数右移的符号,可是在实际仿真的时候我发现效果还是和逻辑右移的效果一样。后来我觉得应该可以自己写一个算了。
方法一:暴力case
case(shift) //shift是要移位的数目
1:
result <= {result[15],result[15:1]}; //假设result是15位的数据
2:
result <={ {2{result[15]}},result[15:2]};
&n
2898
5262