OpenCores
URL https://opencores.org/ocsvn/tv80/tv80/trunk

Subversion Repositories tv80

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /tv80/trunk
    from Rev 90 to Rev 91
    Reverse comparison

Rev 90 → Rev 91

/scripts/sc_gen
0,0 → 1,6
#!/bin/bash
 
verilator --sc rtl/core/tv80s.v rtl/core/tv80_alu.v \
rtl/core/tv80_mcode.v rtl/core/tv80_reg.v rtl/core/tv80_core.v
 
 
scripts/sc_gen Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: sc_env/sc_env_top.cpp =================================================================== --- sc_env/sc_env_top.cpp (nonexistent) +++ sc_env/sc_env_top.cpp (revision 91) @@ -0,0 +1,56 @@ +#include "systemc.h" +#include "env_memory.h" +#include "Vtv80s.h" + +int sc_main(int argc, char *argv[]) +{ + sc_clock clk("clk125", 8, SC_NS, 0.5, 0.0, SC_NS); + + sc_signal reset_n; + sc_signal wait_n; + sc_signal int_n; + sc_signal nmi_n; + sc_signal busrq_n; + sc_signal m1_n; + sc_signal mreq_n; + sc_signal iorq_n; + sc_signal rd_n; + sc_signal wr_n; + sc_signal rfsh_n; + sc_signal halt_n; + sc_signal busak_n; + sc_signal di; + sc_signal dout; + sc_signal addr; + + Vtv80s tv80s ("tv80s"); + tv80s.A (addr); + tv80s.reset_n (reset_n); + tv80s.clk (clk); + tv80s.wait_n (wait_n); + tv80s.int_n (int_n); + tv80s.nmi_n (nmi_n); + tv80s.busrq_n (busrq_n); + tv80s.m1_n (m1_n); + tv80s.mreq_n (mreq_n); + tv80s.iorq_n (iorq_n); + tv80s.rd_n (rd_n); + tv80s.wr_n (wr_n); + tv80s.rfsh_n (rfsh_n); + tv80s.halt_n (halt_n); + tv80s.busak_n (busak_n); + tv80s.di (di); + tv80s.dout (dout); + + env_memory env_memory0("env_memory0"); + env_memory0.clk (clk); + env_memory0.wr_data (dout); + env_memory0.rd_data (di); + env_memory0.mreq_n (mreq_n); + env_memory0.rd_n (rd_n); + env_memory0.wr_n (wr_n); + env_memory0.addr (addr); + + sc_start(8000); + return 0; +} \ No newline at end of file Index: sc_env/env_memory.cpp =================================================================== --- sc_env/env_memory.cpp (nonexistent) +++ sc_env/env_memory.cpp (revision 91) @@ -0,0 +1,21 @@ +#include "env_memory.h" + +void env_memory::event() +{ + int lcl_cs; + int ad; + + if (!mreq_n && !wr_n && (addr < AM_DEPTH)) { + ad = (int) addr; + memory[ad] = (unsigned char) wr_data.read(); +#ifdef DEBUG + printf ("Wrote %x to address %x\n", (int) wr_data.read(), ad); +#endif + } else if (!mreq_n && !rd_n && (addr < AM_DEPTH)) { + ad = (int) addr; + rd_data.write ( (unsigned int) memory[ad] ); +#ifdef DEBUG + printf ("Read %x from address %x\n", memory[ad], ad); +#endif + } +} Index: sc_env/env_memory.h =================================================================== --- sc_env/env_memory.h (nonexistent) +++ sc_env/env_memory.h (revision 91) @@ -0,0 +1,29 @@ +#include "systemc.h" + +#ifndef ENV_MEMORY_H +#define ENV_MEMORY_H +#define AM_ASZ 16 +#define AM_DEPTH (1<<16) + +SC_MODULE(env_memory) { + + sc_in clk; + sc_in wr_data; + sc_in mreq_n; + sc_in rd_n; + sc_in wr_n; + sc_in addr; + sc_out rd_data; + + unsigned char *memory; + + void event(); + + SC_CTOR(env_memory) { + memory = new unsigned char[AM_DEPTH]; + SC_METHOD(event); + sensitive_pos << clk; + } +}; + +#endif Index: sc_env/Makefile =================================================================== --- sc_env/Makefile (nonexistent) +++ sc_env/Makefile (revision 91) @@ -0,0 +1,30 @@ +SYSTEMC=/opt/systemc +VERILATOR_ROOT = /opt/verilator/share/verilator +VERIDIR=../obj_dir +INCLUDES=-I$(SYSTEMC)/include -I$(VERIDIR) -I$(VERILATOR_ROOT)/include +LINKOPT=-L$(SYSTEMC)/lib-linux64 -lsystemc -lm +DEFINES=-DDEBUG +OBJFILES=sc_env_top.o env_memory.o $(VERIDIR)/Vtv80s.o $(VERIDIR)/Vtv80s__Syms.o verilated.o + +CXX=g++ -g $(INCLUDES) $(DEFINES) + +all: sc_env_top + +test: sc_env_top + ./sc_env_top + +sc_env_top: $(OBJFILES) + $(CXX) $^ -o $@ $(LINKOPT) + +verilated.o : $(VERILATOR_ROOT)/include/verilated.cpp + $(CXX) -c $^ + +$(VERIDIR)/Vtv80s.o: + (cd $(VERIDIR); make -f Vtv80s.mk Vtv80s.o) + +$(VERIDIR)/Vtv80s__Syms.o: + (cd $(VERIDIR); make -f Vtv80s.mk Vtv80s__Syms.o) + +clean: + rm -f *.o +

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.