Verilog编程-15. 算术右移的问题
在verilog中实现算术右移,使用>>>
符号,例如in >>> 5
,即代表向右算术右移5位。
但问题在于,此时verilog将in
视为无符号数,而无符号数逻辑右移(>>
)和算术右移没有区别,都是高位补0。此时可使用$signed(in)
将in
转变为有符号数,此时就会在高位补符号位。
$signed
和$unsigned
都是可综合的。$signed
是将无符号数转变为有符号数返回,不改变数的类型和内容,$unsigned
同理。
文档信息
- 本文作者:Polaris
- 本文链接:https://polaris-chn.github.io/2023/11/29/Verilog-practice-15/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)