【发布时间】:2018-04-30 09:24:38
【问题描述】:
ROM是通过case语句实现的,用于存储固定值,并在需要时读取。
但是我怎样才能在同一个时钟周期读取两个值呢??
【问题讨论】:
标签: memory memory-management verilog hardware rom
ROM是通过case语句实现的,用于存储固定值,并在需要时读取。
但是我怎样才能在同一个时钟周期读取两个值呢??
【问题讨论】:
标签: memory memory-management verilog hardware rom
至少显示部分代码总是有用的。我假设你有这样的东西:
case (adrs)
8'h00 : dout <= 8h01;
8'h01 : dout <= 8h03;
8'h02 : dout <= 8h07;
唯一的解决方案是创建两个相同的 case 语句,但将相同的 ROM 实例化两次更容易。
另一种方法是制作一个内存并初始化它。
reg [7:0] mem [0:255];
... // initialise memory e.g
... // using initial with for loop and case statement
always @(posedge clk)
begin
dout1< = mem[adrs1];
dout2< = mem[adrs2];
end
我认为这是针对 FPGA 的,因此请查看供应商手册如何制作预加载 RAM。 (只要你不写,它实际上就是一个 ROM)
【讨论】: