Verilog在定义reg变量时可以初始化赋值么,比如reg a<=1'b0;

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Verilog在定义reg变量时可以初始化赋值么,比如reg a<=1'b0;相关的知识,希望对你有一定的参考价值。

可以是可以,但不能用<=。因为该reg还没有指定时钟。
还有所有的reg最好在复位的时候用<=赋一下初值。理由:假设你正在开发某设备,在上电状态下你按某按钮复位了下,期望这时的状态跟上电时的状态是一样的。追问

你先说不可以用<=,后面又让我用<=赋一下初始值,是不是应该用=

追答

定义用=. always可选,一般用<=.

参考技术A 可以,verilog2001支持定义的时候直接初始化

verilog 定义memory类型变量 reg[16:1] a[7:0], 赋值时候可不可以这样:a[5][16:9]=8'b11111111;

参考技术A 可以,IEEE-Verilog-2001中有这么一段,你可以参考一下
reg [7:0] twod_array[0:255][0:255];
wire threed_array[0:255][0:255][0:7];
Examples:
twod_array[14][1][3:0] // access lower 4 bits of word
twod_array[1][3][6] // access bit 6 of word
twod_array[1][3][sel] // use variable bit select
threed_array[14][1][3:0] // Illegal

以上是关于Verilog在定义reg变量时可以初始化赋值么,比如reg a<=1'b0;的主要内容,如果未能解决你的问题,请参考以下文章

verilog仿真时,部分reg变量消失

verilog模块中需要调用memory型变量该怎么弄???急...

verilog中如何将wire类型的变量A 与reg类型的变量B进行比较?

为啥在verilog中要定义wire?

怎么对Verilog定义的memory初始赋值

verilog 定义memory类型变量 reg[16:1] a[7:0], 赋值时候可不可以这样:a[5][16:9]=8'b11111111;