SystemC netlister README
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);
}
};