From 529c1cc2496e24c6282c3fa9e0a45272b7f500b6 Mon Sep 17 00:00:00 2001 From: Julian Blake Kongslie Date: Sun, 2 May 2021 16:58:46 -0700 Subject: Add a bunch of microcoded instructions. This is a minimum viable PDP-8 that can print "Hello, world!" and halt. --- sim/main.cpp | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'sim/main.cpp') diff --git a/sim/main.cpp b/sim/main.cpp index f082464..cc1c596 100644 --- a/sim/main.cpp +++ b/sim/main.cpp @@ -5,6 +5,13 @@ #include "Vtop.h" +std::uint64_t phases = 0; + +double sc_time_stamp() +{ + return (double)phases / 2; +} + int main(int argc, const char *argv[]) { Verilated::commandArgs(argc, argv); @@ -21,31 +28,29 @@ int main(int argc, const char *argv[]) std::cout << "*** RESET SEQUENCE ***\n"; - std::uint64_t time = 0; - top.native_clk = 0; top.reset_n = 0; top.eval(); - vcd.dump(++time); + vcd.dump(++phases); top.native_clk = 1; top.eval(); - vcd.dump(++time); + vcd.dump(++phases); top.native_clk = 0; top.reset_n = 1; top.eval(); - vcd.dump(++time); + vcd.dump(++phases); std::cout << "*** MAIN LOOP ***\n"; - for (unsigned int i = 0; i < 100000 && !Verilated::gotFinish(); ++i) { + for (unsigned int i = 0; i < 10000 && !Verilated::gotFinish(); ++i) { top.native_clk = 1; top.eval(); - vcd.dump(++time); + vcd.dump(++phases); top.native_clk = 0; top.eval(); - vcd.dump(++time); + vcd.dump(++phases); } std::cout << "\n"; -- cgit v1.2.3