第4节 寄存器数组与存储器寻址
寄存器数组
- 在Verilog中可以说明一个寄存器数组。
integer NUMS [7: 0]; // 包含8个整数的数组
time t_vals [3: 0]; // 4个时间类型的数组
- reg类型的数组通常用于描述存储器
其语法为:
reg [MSB : LSB] <memory_name> [first_addr : last_addr];
[MSB : LSB]定义存储器字的位数
[first_addr : last_addr]定义存储器的深度
例如:
reg [15: 0] MEM [0:1023]; // 1K x 16bit 的存储器
reg [7: 0] PREP [‘hFFFE: ’hFFFF]; // 2 x 8bit 的存储器
- 描述存储器时可以使用参数或任何合法表达式
parameter wordsize = 16,memsize = 1024;
reg [wordsize-1: 0] MEM3 [memsize-1: 0]; // 1K x 16bit 的存储器
存储器寻址
- 存储器元素可以通过“数组下标”来寻址,也就是给出元素在存储器的位置来寻址。
mem_name [地址表达式]
- Verilog不支持多维数组。即只能对存储器字进行寻址,而不能对存储器中一个字的各个位进行寻址。
<<上一节 下一节 >>