From 46b9f30c085d480bb1005c7d10272b9f0c443cfe Mon Sep 17 00:00:00 2001 From: Theo Brown <7982453+theo-brown@users.noreply.github.com> Date: Fri, 11 Jun 2021 16:14:10 +0100 Subject: [PATCH] Add verilator simulation --- simulation/include | 1 + simulation/verilator/Makefile | 9 +++ simulation/verilator/Vtoplevel_sim | Bin 0 -> 312056 bytes simulation/verilator/required_modules.txt | 17 ++++ simulation/verilator/simulator.cpp | 35 ++++++++ simulation/verilator/toplevel_sim.v | 93 ++++++++++++++++++++++ simulation/verilator/verilog | 1 + 7 files changed, 156 insertions(+) create mode 120000 simulation/include create mode 100755 simulation/verilator/Makefile create mode 100755 simulation/verilator/Vtoplevel_sim create mode 100644 simulation/verilator/required_modules.txt create mode 100644 simulation/verilator/simulator.cpp create mode 100644 simulation/verilator/toplevel_sim.v create mode 120000 simulation/verilator/verilog diff --git a/simulation/include b/simulation/include new file mode 120000 index 0000000..3a1af68 --- /dev/null +++ b/simulation/include @@ -0,0 +1 @@ +../include/ \ No newline at end of file diff --git a/simulation/verilator/Makefile b/simulation/verilator/Makefile new file mode 100755 index 0000000..4a821cf --- /dev/null +++ b/simulation/verilator/Makefile @@ -0,0 +1,9 @@ +verilator: toplevel_sim.v required_modules.txt simulator.cpp + verilator -Wno-fatal --cc toplevel_sim.v -f required_modules.txt --exe simulator.cpp + cp obj_dir/* . + make -f Vtoplevel_sim.mk + rm -f *.o *.d Vtoplevel_sim_* Vtoplevel_sim.* + rm -r obj_dir + # + # To run the verilated simulation, type ./Vtoplevel_sim + # diff --git a/simulation/verilator/Vtoplevel_sim b/simulation/verilator/Vtoplevel_sim new file mode 100755 index 0000000000000000000000000000000000000000..76c4ca468cfea8ae1646efc33acf88d57b07343a GIT binary patch literal 312056 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

yB~T<@`OFs|$6 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 WuT*M}3eOMR%`)c*_hH;TFd literal 0 HcmV?d00001 diff --git a/simulation/verilator/required_modules.txt b/simulation/verilator/required_modules.txt new file mode 100644 index 0000000..3611ccd --- /dev/null +++ b/simulation/verilator/required_modules.txt @@ -0,0 +1,17 @@ +verilog/CSR.v +verilog/adder.v +verilog/alu.v +verilog/alu_control.v +verilog/branch_decide.v +verilog/branch_predictor.v +verilog/control_unit.v +verilog/cpu.v +verilog/dataMem_mask_gen.v +verilog/data_mem.v +verilog/forwarding_unit.v +verilog/imm_gen.v +verilog/instruction_mem.v +verilog/mux2to1.v +verilog/pipeline_registers.v +verilog/program_counter.v +verilog/register_file.v diff --git a/simulation/verilator/simulator.cpp b/simulation/verilator/simulator.cpp new file mode 100644 index 0000000..3d073bb --- /dev/null +++ b/simulation/verilator/simulator.cpp @@ -0,0 +1,35 @@ +#include +#include +#include "Vtoplevel_sim.h" + +vluint64_t vtime = 0; +bool clk = false; +int led = 255; + +int main(int argc, char** argv, char** env) +{ + // Initialise Verilator + Verilated::commandArgs(argc, argv); + // Create a new instance of the Verilated module + Vtoplevel_sim* top = new Vtoplevel_sim; + + while (!Verilated::gotFinish()) + { + // Toggle the clock + clk = not clk; + top->clk = int(clk); + + top->eval(); + + // If the LED has changed, print its new value + if (led != int(top->led)) + { + led = int(top->led); + printf("%i\n", led); + } + vtime++; + } + + delete top; + exit(0); +} diff --git a/simulation/verilator/toplevel_sim.v b/simulation/verilator/toplevel_sim.v new file mode 100644 index 0000000..688cc47 --- /dev/null +++ b/simulation/verilator/toplevel_sim.v @@ -0,0 +1,93 @@ +/* + Authored 2018-2019, Ryan Voo. + Modified 2021, Theo Brown + + All rights reserved. + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials + provided with the distribution. + + * Neither the name of the author nor the names of its + contributors may be used to endorse or promote products + derived from this software without specific prior written + permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. +*/ + + +/* + * top.v + * + * Top level entity, linking cpu with data and instruction memory. + * This version is modified to use an external clock, provided for example by Verilator + */ + +module top (input clk, output [7:0] led); + wire clk_proc; + wire data_clk_stall; + + /* + * Memory interface + */ + wire[31:0] inst_in; + wire[31:0] inst_out; + wire[31:0] data_out; + wire[31:0] data_addr; + wire[31:0] data_WrData; + wire data_memwrite; + wire data_memread; + wire[3:0] data_sign_mask; + + + cpu processor( + .clk(clk_proc), + .inst_mem_in(inst_in), + .inst_mem_out(inst_out), + .data_mem_out(data_out), + .data_mem_addr(data_addr), + .data_mem_WrData(data_WrData), + .data_mem_memwrite(data_memwrite), + .data_mem_memread(data_memread), + .data_mem_sign_mask(data_sign_mask) + ); + + instruction_memory inst_mem( + .addr(inst_in), + .out(inst_out) + ); + + data_mem data_mem_inst( + .clk(clk), + .addr(data_addr), + .write_data(data_WrData), + .memwrite(data_memwrite), + .memread(data_memread), + .read_data(data_out), + .sign_mask(data_sign_mask), + .led(led), + .clk_stall(data_clk_stall) + ); + + assign clk_proc = (data_clk_stall) ? 1'b1 : clk; +endmodule diff --git a/simulation/verilator/verilog b/simulation/verilator/verilog new file mode 120000 index 0000000..6371d03 --- /dev/null +++ b/simulation/verilator/verilog @@ -0,0 +1 @@ +../../verilog/ \ No newline at end of file