在verilog中访问寄存器存储器中的特定元素组

时间:2013-04-22 11:50:46

标签: verilog

假设我已经通过编写以下代码声明了一个包含8个位长度为8位的字的存储空间:

reg [7:0]mem[0:7] 

我希望访问第3个单词的第3到第5个元素并将它们设置为零。这个语法应该是什么样的?

reg[0:7]mem[0:7]

这是一段有效的代码吗?或者它必须像初始化1?

1 个答案:

答案 0 :(得分:1)

如果您有一个相当现代的模拟器/合成器(V2001之后),那么您可以直接访问数组中的部分选择:

   reg[7:0] mem[0:7];
   initial begin
      mem[3][7:6] = 2'b00;
      mem[3][5:0] = 6'b111111;  // mem[3] = 8'h3f
   end;

在较旧的工具中,您必须读/写整个单词,并在临时变量中执行位或部分选择。