object "DI1" on left-hand side of assignment must have a variable data type 怎么解决?

供稿:hz-xin.com     日期:2024-04-27
verilog程序问题,还是quartus的问题??

呵呵
object "count_clr" on left-hand side of assignment must have a net type
这个意思是assign语句只能对wire型变量赋值
Error (10137): Verilog HDL Procedural Assignment error at fre_ctr.v(6): object "count_en" on left-hand side of assignment must have a variable data type
在always块语句里只能是reg型变量赋值
问题就是这两点~~
你还是就看看书吧

字面意思是 赋值操作的左边必须是一个变量(不能使常量,字面量之类的。因为变量才能够被赋值)。
你可以把一个对象赋值给一个引用(变量),但是你不能把对象赋值给对象。就好像你可以用盒子来装电脑,但是不能用电脑来装电脑。

按照我上图修改。

3.Error (10137): Verilog HDL Procedural Assignment error at test.v(12): object "led" on left-hand side of assignment must have a variable data type
原因:数据类型定义错误 或者 赋值类型错误
解决方法: 在always 过程块中被赋值的变量必须是 reg (寄存器型),用 assign 连续赋值的对象 必须定义成 wire(线型)

对D11未定义其变量类型,比如reg [3:0] D11 .楼主是否少了定义数据类型