呃,我的意思是,以上代码的这一句有问题:input_val <= input_val >> 1;原因是不允许非寄存器给input_val进行过程赋值。请问如何解决?
时间: 2024-01-24 16:17:16 浏览: 40
是的,你说得对,这段代码会有问题。因为 `input_val` 不是寄存器,所以不能通过过程赋值来改变它的值。
解决方法是使用一个临时变量来存储右移后的值,然后再将这个临时变量的值赋给 `input_val`,像这样:
```verilog
reg [31:0] temp_val;
temp_val = input_val >> 1;
input_val <= temp_val;
```
这样就可以避免对非寄存器进行过程赋值的问题了。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![dll](https://img-home.csdnimg.cn/images/20210720083646.png)
![md](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![m](https://img-home.csdnimg.cn/images/20210720083646.png)
![sh](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)