【问题标题】:Two pointers in ROM hardware implementation [closed]ROM硬件实现中的两个指针[关闭]
【发布时间】:2018-04-30 09:24:38
【问题描述】:

ROM是通过case语句实现的,用于存储固定值,并在需要时读取。

但是我怎样才能在同一个时钟周期读取两个值呢??

【问题讨论】:

    标签: memory memory-management verilog hardware rom


    【解决方案1】:

    至少显示部分代码总是有用的。我假设你有这样的东西:

    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)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-28
      • 2016-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-13
      相关资源
      最近更新 更多