Created a testbench and simulated the read/write of the register file
This commit is contained in:
1
models/memory/cln28hpc/rf2_32x128_wm1/env_vsim
Normal file
1
models/memory/cln28hpc/rf2_32x128_wm1/env_vsim
Normal file
@@ -0,0 +1 @@
|
|||||||
|
source /tools/mentor/modelsim/ms106a/cshrc.modelsim
|
||||||
@@ -0,0 +1,87 @@
|
|||||||
|
`timescale 1ns/1ps
|
||||||
|
|
||||||
|
|
||||||
|
module rf2_32x128_wm1_tb (
|
||||||
|
output [127 : 0] out_a_reg_data,
|
||||||
|
output reg clk,
|
||||||
|
output reg [4 : 0] rs1,
|
||||||
|
output reg [127 : 0] write_bit_mask,
|
||||||
|
output reg [4 : 0] rd,
|
||||||
|
output reg [127 : 0] write_data,
|
||||||
|
output reg cena,
|
||||||
|
output reg cenb
|
||||||
|
);
|
||||||
|
|
||||||
|
initial begin
|
||||||
|
clk <= 1'b0;
|
||||||
|
rs1 <= 5'b0;
|
||||||
|
write_bit_mask <= {128{1'b1}};
|
||||||
|
rd <= 5'b0;
|
||||||
|
write_data <= 128'b0;
|
||||||
|
cena <= 1'b1;
|
||||||
|
cenb <= 1'b1;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#100
|
||||||
|
cenb <= 1'b0;
|
||||||
|
write_bit_mask <= {{96{1'b1}}, {32{1'b0}}};
|
||||||
|
rd <= 5'h0a;
|
||||||
|
write_data <= 128'h0000_0002_0000_0002_0000_0002_0000_0002;
|
||||||
|
#10
|
||||||
|
cenb <= 1'b1;
|
||||||
|
write_bit_mask <= {128{1'b1}};
|
||||||
|
rd <= 5'b0;
|
||||||
|
write_data <= 128'b0;
|
||||||
|
|
||||||
|
#100
|
||||||
|
cena <= 1'b0;
|
||||||
|
rs1 <= 5'h0a;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
always @(clk) #5 clk <= ~clk;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
rf2_32x128_wm1 first_ram (
|
||||||
|
.CENYA(),
|
||||||
|
.AYA(),
|
||||||
|
.CENYB(),
|
||||||
|
.WENYB(),
|
||||||
|
.AYB(),
|
||||||
|
.QA(out_a_reg_data),
|
||||||
|
.SOA(),
|
||||||
|
.SOB(),
|
||||||
|
.CLKA(clk),
|
||||||
|
.CENA(cena),
|
||||||
|
.AA(rs1),
|
||||||
|
.CLKB(clk),
|
||||||
|
.CENB(cenb),
|
||||||
|
.WENB(write_bit_mask),
|
||||||
|
.AB(rd),
|
||||||
|
.DB(write_data),
|
||||||
|
.EMAA(3'b011),
|
||||||
|
.EMASA(1'b0),
|
||||||
|
.EMAB(3'b011),
|
||||||
|
.TENA(1'b1),
|
||||||
|
.TCENA(1'b0),
|
||||||
|
.TAA(5'b0),
|
||||||
|
.TENB(1'b1),
|
||||||
|
.TCENB(1'b0),
|
||||||
|
.TWENB(128'b0),
|
||||||
|
.TAB(5'b0),
|
||||||
|
.TDB(128'b0),
|
||||||
|
.RET1N(1'b1),
|
||||||
|
.SIA(2'b0),
|
||||||
|
.SEA(1'b0),
|
||||||
|
.DFTRAMBYP(1'b0),
|
||||||
|
.SIB(2'b0),
|
||||||
|
.SEB(1'b0),
|
||||||
|
.COLLDISN(1'b1)
|
||||||
|
);
|
||||||
|
|
||||||
|
endmodule
|
||||||
|
|
||||||
Reference in New Issue
Block a user