TITLE: Gnetlist SystemC Backend OBJECTIVE: Transform a geda schematic into a transaction based structural systemc module. LIMITATIONS: 1.- Only transaction based wires are considered (wire_name<user_type>). 2.- Unnamed wires are eliminated. 3.- In/out ports have to be inserted manually in the sysc code. 4.- Duplicated include headers are not eliminated by the backend. 5.- The maximum number of object constructor parameters is 31 (attr1->attr31). LINKS: GPL Electronic Design Automation (geda-gnetlist): http://www.geda-project.org SystemC: http://www.systemc.org ACK: Based on gnet-verilog.scm by Mike Jarabek. EXAMPLE: Schematic: src1 alg1 snk1 ______________ _______________ _______________ | source | a<user_type> | algorithm | b<float> | sink | | OUT|__ _________ __|IN OUT|__ _____ __|IN | | | | | | | | infile.data| | | | outfile.data| |____________| |_____________| |_____________| Attributes: Schematic: module_name=test_sch2sysc Wires: netname=a<user_type> netname=b<float> Symbols: refdes=src1 attr1=infile.data refdes=alg1 refdes=snk1 attr1=outfile.data refdes=pina refdes=pinb SystemC: #include "systemc.h" #include "sink.h" #include "source.h" #include "algorithm.h" SC_MODULE (test_sch2sysc) { /* Port directions begin here */ /* Wires from the design */ sc_signal<float> b; sc_signal<packet_type> a; /* Package instantiations */ sink snk1; source src1; algorithm alg1; SC_CTOR(test_sch2sysc): snk1("snk1","outfile.data"), src1("src1","infile.data"), alg1("alg1") { snk1.IN(b); src1.OUT(a); alg1.IN(a); alg1.OUT(b); } };