数电复习(3)Verilog语法初步

1. 数组定义

定义存储器常用
数电复习(3)Verilog语法初步_第1张图片
数组(内存)定义

reg [wordsize : 0]  array_name [0 : arraysize];

例如:

reg [7:0] my_memory[0:255];

其中 [7:0] 是内存的宽度(位宽),而 [0:255] 则是 内存的深度(也就是有多少存储单元),其中宽度为8位,深度为256。地址0对应着数组中的0存储单元。

写操作:如果要存储一个值到某个单元中去,可以这样做:

my_memory[address] = data_in;

读操作: 而如果要从某个单元读出值,可以这么做:

data_out = my_memory[address];

读取内存中的某一位或者多位
只需要读一位或者多个位,就要麻烦一点,因为Verilog不允许读/写一个位。这时,就需要使用一个变量转换一下:
例如:

data_out = my_memory[address];
data_out_it_0 = data_out[0];

这里首先从一个单元里面读出数据,然后再取出读出的数据的某一位的值。

2. 逻辑操作符&逐位布尔运算符

最终得出的结果 1或0

在这里插入图片描述
数电复习(3)Verilog语法初步_第2张图片
逐位对两个n bit数的每对1bit数据进行布尔运算,并产生相同位数的结果;
数电复习(3)Verilog语法初步_第3张图片
例如:
数电复习(3)Verilog语法初步_第4张图片

只有当操作数是1bit位宽时,逻辑运算跟逐位布尔运算符是一样的效果。

3. 实例调用中的参数定义:#号

数电复习(3)Verilog语法初步_第5张图片

4. generate语句

数电复习(3)Verilog语法初步_第6张图片

5. 阻塞赋值&非阻塞赋值

简单说几条
数电复习(3)Verilog语法初步_第7张图片

6. 一些测试中常用的打印函数

数电复习(3)Verilog语法初步_第8张图片

你可能感兴趣的:(数电基础,数电)