Line 1... |
Line 1... |
#include "systemc.h"
|
#include "systemc.h"
|
|
#include "systemperl.h"
|
#include "env_memory.h"
|
#include "env_memory.h"
|
#include "tv_responder.h"
|
#include "tv_responder.h"
|
#include "Vtv80s.h"
|
#include "Vtv80s.h"
|
|
#include "SpTraceVcd.h"
|
|
|
int sc_main(int argc, char *argv[])
|
int sc_main(int argc, char *argv[])
|
{
|
{
|
sc_clock clk("clk125", 8, SC_NS, 0.5, 0.0, SC_NS);
|
sc_clock clk("clk125", 8, SC_NS, 0.5, 0.0, SC_NS);
|
|
|
Line 51... |
Line 53... |
env_memory0.rd_data (di);
|
env_memory0.rd_data (di);
|
env_memory0.mreq_n (mreq_n);
|
env_memory0.mreq_n (mreq_n);
|
env_memory0.rd_n (rd_n);
|
env_memory0.rd_n (rd_n);
|
env_memory0.wr_n (wr_n);
|
env_memory0.wr_n (wr_n);
|
env_memory0.addr (addr);
|
env_memory0.addr (addr);
|
|
env_memory0.reset_n (reset_n);
|
|
|
tv_responder tv_resp0("tv_resp0");
|
tv_responder tv_resp0("tv_resp0");
|
tv_resp0.clk (clk);
|
tv_resp0.clk (clk);
|
tv_resp0.reset_n (reset_n);
|
tv_resp0.reset_n (reset_n);
|
tv_resp0.wait_n (wait_n);
|
tv_resp0.wait_n (wait_n);
|
Line 71... |
Line 74... |
tv_resp0.di_resp (di_resp);
|
tv_resp0.di_resp (di_resp);
|
tv_resp0.dout (dout);
|
tv_resp0.dout (dout);
|
tv_resp0.halt_n (halt_n);
|
tv_resp0.halt_n (halt_n);
|
|
|
// create dumpfile
|
// create dumpfile
|
sc_trace_file *trace_file;
|
/*
|
trace_file = sc_create_vcd_trace_file("sc_tv80_env");
|
sc_trace_file *trace_file;
|
sc_trace (trace_file, clk, "clk");
|
trace_file = sc_create_vcd_trace_file("sc_tv80_env");
|
sc_trace (trace_file, reset_n, "reset_n");
|
sc_trace (trace_file, clk, "clk");
|
sc_trace (trace_file, wait_n, "wait_n");
|
sc_trace (trace_file, reset_n, "reset_n");
|
sc_trace (trace_file, int_n, "int_n");
|
sc_trace (trace_file, wait_n, "wait_n");
|
sc_trace (trace_file, nmi_n, "nmi_n");
|
sc_trace (trace_file, int_n, "int_n");
|
sc_trace (trace_file, busrq_n, "busrq_n");
|
sc_trace (trace_file, nmi_n, "nmi_n");
|
sc_trace (trace_file, m1_n, "m1_n");
|
sc_trace (trace_file, busrq_n, "busrq_n");
|
sc_trace (trace_file, mreq_n, "mreq_n");
|
sc_trace (trace_file, m1_n, "m1_n");
|
sc_trace (trace_file, iorq_n, "iorq_n");
|
sc_trace (trace_file, mreq_n, "mreq_n");
|
sc_trace (trace_file, rd_n, "rd_n");
|
sc_trace (trace_file, iorq_n, "iorq_n");
|
sc_trace (trace_file, wr_n, "wr_n");
|
sc_trace (trace_file, rd_n, "rd_n");
|
sc_trace (trace_file, halt_n, "halt_n");
|
sc_trace (trace_file, wr_n, "wr_n");
|
sc_trace (trace_file, busak_n, "busak_n");
|
sc_trace (trace_file, halt_n, "halt_n");
|
sc_trace (trace_file, di, "di");
|
sc_trace (trace_file, busak_n, "busak_n");
|
sc_trace (trace_file, dout, "dout");
|
sc_trace (trace_file, di, "di");
|
sc_trace (trace_file, addr, "addr");
|
sc_trace (trace_file, dout, "dout");
|
|
sc_trace (trace_file, addr, "addr");
|
|
|
|
// Start Verilator traces
|
|
Verilated::traceEverOn(true);
|
|
SpTraceFile *tfp = new SpTraceFile;
|
|
tv80s.trace (tfp, 99);
|
|
tfp->open ("tv80.vcd");
|
|
*/
|
|
|
|
// check for command line argument
|
|
if (argc > 1) {
|
|
env_memory0.load_ihex (argv[1]);
|
|
}
|
|
|
|
// set reset to 0 before sim start
|
|
reset_n.write (0);
|
|
|
|
sc_start();
|
|
/*
|
|
sc_close_vcd_trace_file (trace_file);
|
|
tfp->close();
|
|
*/
|
|
|
sc_start(8000);
|
|
sc_close_vcd_trace_file (trace_file);
|
|
|
|
return 0;
|
return 0;
|
}
|
}
|
|
|
No newline at end of file
|
No newline at end of file
|