reg [7:0] mem[0:255];
Verilog中含有用户自己定义存储区的语句,如上述语句,定义的意思为
reg [7:0] mem[0];
reg [7:0] mem[1];
reg [7:0] mem[2];
reg [7:0] mem[3];
:
:
:
reg [7:0] mem[255];
定义了256个8位的寄存器型数据。
但是RAM和reg型式有不同的。FPGA里面的RAM分成Block RAM和Distributed RAM,Block RAM是嵌入的RAM块,例如M9K,M4K;Distributed RAM是分布式RAM,即用FPGA里的寄存器和查找表构成。也就是说RAM可以由reg构成,但是RAM不能直接当寄存器组用。比如你设一个reg[7:0] mem[0:255],在一个时钟里你可以直接访问所有的数据,但是RAM里面你一次只能访问一个地址的数据。还有RAM一般数据宽度不能设置太大,很消耗资源。