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 91 to Rev 92
    Reverse comparison

Rev 91 → Rev 92

/sc_env/sc_env_top.cpp
1,5 → 1,6
#include "systemc.h"
#include "env_memory.h"
#include "tv_responder.h"
#include "Vtv80s.h"
 
int sc_main(int argc, char *argv[])
20,6 → 21,8
sc_signal<bool> halt_n;
sc_signal<bool> busak_n;
sc_signal<uint32_t> di;
sc_signal<uint32_t> di_mem;
sc_signal<uint32_t> di_resp;
sc_signal<uint32_t> dout;
sc_signal<uint32_t> addr;
50,7 → 53,48
env_memory0.rd_n (rd_n);
env_memory0.wr_n (wr_n);
env_memory0.addr (addr);
tv_responder tv_resp0("tv_resp0");
tv_resp0.clk (clk);
tv_resp0.reset_n (reset_n);
tv_resp0.wait_n (wait_n);
tv_resp0.int_n (int_n);
tv_resp0.nmi_n (nmi_n);
tv_resp0.busak_n (busak_n);
tv_resp0.busrq_n (busrq_n);
tv_resp0.m1_n (m1_n);
tv_resp0.mreq_n (mreq_n);
tv_resp0.iorq_n (iorq_n);
tv_resp0.rd_n (rd_n);
tv_resp0.wr_n (wr_n);
tv_resp0.addr (addr);
tv_resp0.di_resp (di_resp);
tv_resp0.dout (dout);
tv_resp0.halt_n (halt_n);
 
// create dumpfile
sc_trace_file *trace_file;
trace_file = sc_create_vcd_trace_file("sc_tv80_env");
sc_trace (trace_file, clk, "clk");
sc_trace (trace_file, reset_n, "reset_n");
sc_trace (trace_file, wait_n, "wait_n");
sc_trace (trace_file, int_n, "int_n");
sc_trace (trace_file, nmi_n, "nmi_n");
sc_trace (trace_file, busrq_n, "busrq_n");
sc_trace (trace_file, m1_n, "m1_n");
sc_trace (trace_file, mreq_n, "mreq_n");
sc_trace (trace_file, iorq_n, "iorq_n");
sc_trace (trace_file, rd_n, "rd_n");
sc_trace (trace_file, wr_n, "wr_n");
sc_trace (trace_file, halt_n, "halt_n");
sc_trace (trace_file, busak_n, "busak_n");
sc_trace (trace_file, di, "di");
sc_trace (trace_file, dout, "dout");
sc_trace (trace_file, addr, "addr");
 
 
sc_start(8000);
sc_close_vcd_trace_file (trace_file);
return 0;
}
}
/sc_env/tv_responder.h
0,0 → 1,34
#ifndef TV_RESPONDER_H_
#define TV_RESPONDER_H_
 
#include "systemc.h"
 
SC_MODULE(tv_responder)
{
sc_in<bool> clk;
sc_out<bool> reset_n;
sc_out<bool> wait_n;
sc_out<bool> int_n;
sc_out<bool> nmi_n;
sc_out<bool> busrq_n;
sc_in<bool> m1_n;
sc_in<bool> mreq_n;
sc_in<bool> iorq_n;
sc_in<bool> rd_n;
sc_in<bool> wr_n;
sc_in<bool> halt_n;
sc_in<bool> busak_n;
sc_out<uint32_t> di_resp;
sc_in<uint32_t> dout;
sc_in<uint32_t> addr;
void event();
SC_CTOR(tv_responder) {
SC_THREAD(event);
sensitive << clk.pos();
}
};
#endif /*TV_RESPONDER_H_*/
/sc_env/env_memory.cpp
1,4 → 1,5
#include "env_memory.h"
#include <stdio.h>
 
void env_memory::event()
{
19,3 → 20,45
#endif
}
}
 
void inline readline(FILE *fh, char *buf)
{
int c = 1;
while (c) {
c = read (buf, 1, 1, fh);
if (c && (*buf == '\n'))
c = 0;
else buf++;
}
}
 
/*
line = ifh.readline()
while (line != ''):
if (line[0] == ':'):
rlen = int(line[1:3], 16)
addr = int(line[3:7], 16)
rtyp = int(line[7:9], 16)
ptr = 9
for i in range (0, rlen):
laddr = addr + i
val = int(line[9+i*2:9+i*2+2], 16)
self.map[laddr] = val
self.bcount += 1
if (laddr > self.max): self.max = laddr
if (laddr < self.min): self.min = laddr
 
line = ifh.readline()
*/
void env_memory::load_ihex(char *filename)
{
FILE *fh;
char line[80];
fh = fopen (filename, "r");
readline (fh, line);
fclose (fh);
}
/sc_env/env_memory.h
18,11 → 18,13
unsigned char *memory;
 
void event();
void load_ihex (char *filename);
 
SC_CTOR(env_memory) {
memory = new unsigned char[AM_DEPTH];
SC_METHOD(event);
sensitive_pos << clk;
sensitive << clk.pos();
}
};
 
/sc_env/tv_responder.cpp
0,0 → 1,18
#include "tv_responder.h"
 
void tv_responder::event ()
{
// init
reset_n = 0;
wait_n = 1;
int_n = 1;
nmi_n = 1;
busrq_n = 1;
di_resp = 0;
for (int c=0; c<10; c++)
wait();
reset_n = 1;
wait();
printf ("Initialization complete.\n");
}
/sc_env/Makefile
4,7 → 4,8
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
OBJFILES=sc_env_top.o env_memory.o tv_responder.o \
$(VERIDIR)/Vtv80s.o $(VERIDIR)/Vtv80s__Syms.o verilated.o
 
CXX=g++ -g $(INCLUDES) $(DEFINES)
 

powered by: WebSVN 2.1.0

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