哪位大神有verilog实现的双口RAM例程,就教!

2019-07-15 23:40发布

哪位大神有verilog实现的双口RAM例程,就教!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
hawke
2019-07-16 01:47
来源:
https://documentation.altera.com/#/00030683-AA$NT00064438

  1. module true_dual_port_ram_single_clock
  2. (
  3.         input [(DATA_WIDTH-1):0] data_a, data_b,
  4.         input [(ADDR_WIDTH-1):0] addr_a, addr_b,
  5.         input we_a, we_b, clk,
  6.         output reg [(DATA_WIDTH-1):0] q_a, q_b
  7. );

  8.         parameter DATA_WIDTH = 8;
  9.         parameter ADDR_WIDTH = 6;

  10.         // Declare the RAM variable
  11.         reg [DATA_WIDTH-1:0] ram[2**ADDR_WIDTH-1:0];

  12.         always @ (posedge clk)
  13.         begin // Port A
  14.                 if (we_a)
  15.                 begin
  16.                         ram[addr_a] <= data_a;
  17.                         q_a <= data_a;
  18.                 end
  19.                 else
  20.                         q_a <= ram[addr_a];
  21.         end
  22.         always @ (posedge clk)
  23.         begin // Port b
  24.                 if (we_b)
  25.                 begin
  26.                         ram[addr_b] <= data_b;
  27.                         q_b <= data_b;
  28.                 end
  29.                 else
  30.                         q_b <= ram[addr_b];
  31.         end

  32. endmodule
复制代码

一周热门 更多>