aboutsummaryrefslogtreecommitdiff
path: root/hdl/testbench.v
diff options
context:
space:
mode:
Diffstat (limited to 'hdl/testbench.v')
-rw-r--r--hdl/testbench.v73
1 files changed, 73 insertions, 0 deletions
diff --git a/hdl/testbench.v b/hdl/testbench.v
new file mode 100644
index 0000000..6100226
--- /dev/null
+++ b/hdl/testbench.v
@@ -0,0 +1,73 @@
+`timescale 1ns / 1ps
+
+
+module testbench;
+
+ // Inputs
+ reg clk;
+ reg rst;
+ reg [31:0] ext_data_in;
+
+ // Outputs
+ wire ext_write_en;
+ wire ext_read_en;
+ wire [31:0] ext_addr;
+ wire [31:0] ext_write_data;
+
+ // Instantiate the Unit Under Test (UUT)
+ mips_system uut (
+ .clk(clk),
+ .rst(rst),
+ .ext_write_en(ext_write_en),
+ .ext_read_en(ext_read_en),
+ .ext_addr(ext_addr),
+ .ext_write_data(ext_write_data),
+ .ext_data_in(ext_data_in)
+ );
+
+ initial begin
+ rst = 1;
+ ext_data_in = 0;
+
+ // Wait 100 ns for global reset to finish
+ #100;
+ rst = 0;
+
+ end // initial begin
+
+
+ initial begin
+ clk = 0;
+ forever
+ #10 clk = !clk;
+ end
+
+
+ integer i;
+ initial begin
+
+ for (i = 0; i < 1000; i=i+1)
+ @(posedge clk);
+
+
+ $stop();
+ end
+
+ initial
+ begin
+ $display("Trace register $t0");
+ @(negedge rst);
+
+ forever
+ begin
+ @(posedge clk);
+ $display("$t0 (REG8) = %x",uut.pipeline_inst.idecode_inst.regfile_inst.rf[8]);
+ end
+
+
+
+ end
+
+
+endmodule
+