|  | 
 
 楼主|
发表于 2013-6-14 14:21:16
|
显示全部楼层 
| 本帖最后由 cqugjw 于 2013-6-14 14:31 编辑 
 回复 6# yadog
 
 谢谢斑竹的回复,基于IP core的single port ram我已经读写成功了。先分享下代码:
 先用core gen生成了一个8*8bit的single port ram,加载COE初始化文件:ABCDEBDA,直接例化。
 Verilog部分代码:
 module bramtest(
 input clk,input rst_n,
 input ram1_en,
 input [7:0] dina,
 input [2:0] addr,
 input wea,
 output [7:0] douta
 
 );
 
 ram1 sp_ram (
 .clka(clk), // input clka
 .rsta(rst_n), // input rsta
 .ena(ram1_en), // input ena
 .wea(wea), // input [0 : 0] wea
 .addra(addr), // input [2 : 0] addra
 .dina(dina), // input [7 : 0] dina
 .douta(douta) // output [7 : 0] douta
 );
 
 endmodule
 
 testbench部分代码:
 module bramtest_test;
 // Inputs
 reg clk;
 reg rst_n;
 reg ram1_en;
 reg [7:0] dina;
 reg [2:0] addr;
 
 // Outputs
 reg wea;
 wire [7:0] douta;
 
 // Instantiate the Unit Under Test (UUT)
 bramtest uut (
 .clk(clk),
 .rst_n(rst_n),
 .ram1_en(ram1_en),
 .dina(dina),
 .addr(addr),
 .wea(wea),
 .douta(douta)
 
 );
 
 
 initial begin
 
 // Initialize Inputs
 clk = 0;
 ram1_en = 1;
 rst_n = 0;
 dina = 0;
 addr = 0;
 wea = 1;
 
 #60 wea = 0;
 
 end
 
 always #10 clk = ~clk;
 always #20 begin dina <= dina + 1; addr <= addr+1; end
 
 endmodule
 
 仿真波形:
 
 single port ram仿真波形   | 
 |