summaryrefslogtreecommitdiff
path: root/cpu8
diff options
context:
space:
mode:
Diffstat (limited to 'cpu8')
-rw-r--r--cpu8/cpu_add/Makefile2
-rw-r--r--cpu8/cpu_add/cpu_and.hpp8
-rw-r--r--cpu8/cpu_add/cpu_and_2.cpp70
3 files changed, 5 insertions, 75 deletions
diff --git a/cpu8/cpu_add/Makefile b/cpu8/cpu_add/Makefile
index ef0884a..8e2c1c9 100644
--- a/cpu8/cpu_add/Makefile
+++ b/cpu8/cpu_add/Makefile
@@ -2,7 +2,7 @@ SYSTEMC_PATH=/home/fam/downloads/source/systemc/systemc-2.3.2
SYSTEMC_INC=$(SYSTEMC_PATH)/src
SYSTEMC_LIB=$(SYSTEMC_PATH)/src/.libs
-PROJECT=cpu_and_2
+PROJECT=cpu_and
make:
g++ $(PROJECT).cpp -I$(SYSTEMC_INC) -L$(SYSTEMC_LIB) -Wl,-rpath=$(SYSTEMC_LIB)\
diff --git a/cpu8/cpu_add/cpu_and.hpp b/cpu8/cpu_add/cpu_and.hpp
index a547f5d..0c78dc0 100644
--- a/cpu8/cpu_add/cpu_and.hpp
+++ b/cpu8/cpu_add/cpu_and.hpp
@@ -5,13 +5,13 @@
SC_MODULE (cpu_and)
{
- sc_in <bool> in_a;
- sc_in <bool> in_b;
- sc_out <bool> out_c;
+ sc_port<sc_signal_in_if<bool>,0> in_a;
+ sc_port<sc_signal_in_if<bool>,0> in_b;
+ sc_port<sc_signal_out_if<bool>,0> out_c;
void do_and()
{
- out_c.write( in_a.read() && in_b.read() );
+ out_c[0]->write( in_a[0]->read() && in_b[0]->read() );
}
SC_CTOR(cpu_and)
diff --git a/cpu8/cpu_add/cpu_and_2.cpp b/cpu8/cpu_add/cpu_and_2.cpp
deleted file mode 100644
index 5a7332a..0000000
--- a/cpu8/cpu_add/cpu_and_2.cpp
+++ /dev/null
@@ -1,70 +0,0 @@
-#include <iostream>
-#include <iomanip>
-
-#include "systemc.h"
-#include "systemc"
-#include <sysc/tracing/sc_trace.h>
-#include <sysc/tracing/sc_vcd_trace.h>
-
-#include "cpu_and.hpp"
-
-SC_MODULE(test_cpu_and)
-{
- sc_out<bool> a,b;
- sc_in<bool> clk;
-labak
- void test_cpu_and_stim()
- {
- wait();
- a.write(1);
- b.write(1);
- wait();
-
- a.write(0);
- b.write(0);
- wait();
-
- a.write(1);
- b.write(0);
- wait();
-
- a.write(0);
- b.write(1);
- wait();
-
- sc_stop();
- }
-
- SC_CTOR(test_cpu_and)
- {
- SC_THREAD(test_cpu_and_stim);
- sensitive << clk.pos();
-
- }
-};
-
-int sc_main(int argc, char **argv) {
- sc_signal<bool> sig_a, sig_b, sig_c;
- sc_clock TestClk("TestClk", 10, SC_NS, 0.5, 1, SC_NS);
-
- test_cpu_and Stim1("Stimulus");
- Stim1.a(sig_a);
- Stim1.b(sig_b);
- Stim1.clk(TestClk);
-
- cpu_and DUT("and");
- DUT.in_a(sig_a);
- DUT.in_b(sig_b);
- DUT.out_c(sig_c);
-
- sc_trace_file *Tf;
- Tf = sc_create_vcd_trace_file("trace.dat");
- sc_trace(Tf, sig_a, "SIG_A");
- sc_trace(Tf, sig_b, "SIG_B");
- sc_trace(Tf, sig_c, "SIG_C");
-
- sc_start();
- sc_close_vcd_trace_file(Tf);
-
- return(0);
-} \ No newline at end of file