RVSCC/test/test_single_cycle_core.sv
Mario1159 a9147414cf
Some checks are pending
continuous-integration/drone/push Build is pending
Add single cycle test and fix 'and' & 'or' instructions
2023-02-27 02:45:14 -03:00

44 lines
980 B
Systemverilog

`timescale 1ns / 1ps
module test_single_cycle_core ();
logic clk, rst;
always #1 clk = ~clk;
instr_memory_if instr_mem_if();
instr_memory #(.FILE_PATH("test-core.mem")) instr_mem (.instr_mem_if(instr_mem_if.mem));
data_memory_if data_mem_if (
.clk(clk),
.rst(rst)
);
data_memory #(.NUM_BLOCKS(128)) data_mem (.data_mem_if(data_mem_if.ram));
single_cycle_datapath dut (
.clk(clk),
.rst(rst),
.instr_mem_if(instr_mem_if.datapath),
.data_mem_if(data_mem_if.datapath)
);
always @(posedge clk) begin
if (data_mem_if.write_enable) begin
if(data_mem_if.addr == 'd100 && data_mem_if.write_data == 'd25) begin
$finish;
end else if (data_mem_if.addr != 'd96) // assert
$finish;
end
end
initial begin
$dumpfile("single_cycle.vcd");
$dumpvars(1, dut);
clk = 0;
rst = 1;
#4;
rst = 0;
#1000;
$display("Hello world");
$finish;
end
endmodule