写在最前面:做什么事都要冷静,心态平和
Everything will be easy.
[email protected](*)
: [email protected](*)
里面的敏感变量为*,意思是说敏感变量由综合器根据always里面的输入变量自动添加,不用自己考虑reg[5:0] mark = 6'b100110
; 赋初值需要直接在后面写,不能像c语言一样先定义再赋。另外verilog赋值还可以在模块语句里面赋值,比如always语句里面。integer
也是一种寄存器数据类型,integer
类型的变量为有符号数,而reg
类型的变量则为无符号数,除非特别声明为有符号数,还有就是integer
的位宽为宿主机的字的位数,但最小为32位,用integer
的变量都可以用reg
定义,只是对于用于计数更方便而已。reg
,integer
,real
,time
都是寄存器数据类型,定义在Verilog中用来保存数值的变量,和实际的硬件电路中的寄存器有区别。[email protected]
模块内只能对reg
类型的变量进行赋值reg
类型的数组,这个数组中的任何一个单元都可以通过一个下标去访问。这样的数组的定义方式如下: reg [wordsize : 0] array_name [0 : arraysize];
reg [7:0] my_memory [0:255];
my_memory [address] = data_in;
data_out = my_memory [address];
data_out = my_memory[address];
data_out_it_0 = data_out[0];
rst_n
: reset_negative 低电平重置initial
内部就写信号的初始值,出现z的情况一般是没有初始值$display
: 打印case()
….endcase