52,59c52,59
< sc_slave_port.{cc,hh} -- Implements SCSlavePort
< sc_master_port.{cc,hh} -- Implements SCMasterPort
< sc_mm.{cc,hh} -- Implementation of a TLM memory manager
< sc_ext.{cc,hh} -- TLM extension that carries a gem5 packet
< sc_peq.{cc,hh} -- TLM PEQ for scheduling gem5 events
< sim_control.{cc,hh} -- Implements Gem5SimControl
< slave_transactor.{cc,hh} -- Implements Gem5SlaveTransactor
< master_transactor.{cc,hh} -- Implements Gem5MasterTransactor
---
> src/sc_slave_port.{cc,hh} -- Implements SCSlavePort
> src/sc_master_port.{cc,hh} -- Implements SCMasterPort
> src/sc_mm.{cc,hh} -- Implementation of a TLM memory manager
> src/sc_ext.{cc,hh} -- TLM extension that carries a gem5 packet
> src/sc_peq.{cc,hh} -- TLM PEQ for scheduling gem5 events
> src/sim_control.{cc,hh} -- Implements Gem5SimControl
> src/slave_transactor.{cc,hh} -- Implements Gem5SlaveTransactor
> src/master_transactor.{cc,hh} -- Implements Gem5MasterTransactor
61,62c61,62
< example/common/cli_parser.{cc,hh} -- Simple cli argument parser
< example/common/report_hanlder.{cc,hh} -- Custom SystemC report handler
---
> examples/common/cli_parser.{cc,hh} -- Simple cli argument parser
> examples/common/report_hanlder.{cc,hh} -- Custom SystemC report handler
64,69c64,65
< example/slave_port/main.cc -- demonstration of the slave port
< example/slave_port/sc_target.{cc,hh} -- an example TLM LT/AT memory module
< example/slave_port/tlm.py -- simple gem5 configuration
< example/slave_port/tlm_elastic.py -- gem5 configuration with an elastic
< trace replayer
< example/slave_port/tgen.cfg -- elastic traceplayer configuration
---
> examples/slave_port/main.cc -- demonstration of the slave port
> examples/slave_port/sc_target.{cc,hh} -- an example TLM LT/AT memory module
71,72c67,68
< example/master_port/main.cc -- demonstration of the master port
< example/master_port/traffic_generator.{cc/hh}
---
> examples/master_port/main.cc -- demonstration of the master port
> examples/master_port/traffic_generator.{cc/hh}
74d69
< example/master_port/tlm.py -- simple gem5 configuration
75a71,78
> conf/tlm_slave.py -- simple gem5 configuration connecting to a
> SytemC/TLM slave module
> conf/tlm_elastic_slave.py -- gem5 configuration with an elastic trace
> replayer
> conf/tlm_master.py -- simple gem5 configuration connecting to a
> SytemC/TLM master module
> conf/tgen.cfg -- trace generator configuration
>
101,102c104
< Set a proper LD_LIBRARY_PATH e.g. for bash:
< > export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/path/to/gem5/build/ARM/"
---
> To build all sources of the SystemC binding and the examples simply run scons:
104,115d105
< or for MAC / OSX:
< > export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH:/path/to/gem5/build/ARM/"
<
< The build system finds your SystemC installation using pkg-config. Make sure
< that pkg-config is installed and your systemc.pc is within your
< PKG_CONFIG_PATH. You can add SystemC to the PKG_CONFIG_PATH using the following
< command:
< > export PKG_CONFIG_PATH="/path/to/systemc/lib-<arch>/pkgconfig/:$PKG_CONFIG_PATH"
<
< To build one of the examples:
<
< > cd examples/{master,slave}_port
117d106
< > cd ../../
123,124d111
< > cd examples/{master,slave}_port
<
129c116
< > ../../../../build/ARM/gem5.opt ./tlm.py
---
> > ../../build/ARM/gem5.opt conf/tlm_{master,slave}.py
134,136c121,123
< The build step creates a binary gem5.opt.sc in the example directory. It can
< now be used to load in the generated configuration file from the previous
< normal gem5 run.
---
> The build step creates a binary 'gem5.sc' for each example in the
> build/examples/{master|slave}_port directories. It can now be used to load in
> the generated configuration file from the previous normal gem5 run.
140c127
< > ./gem5.opt.sc m5out/config.ini -e 1000000
---
> > build/examples/{master,slave}_port/gem5.sc m5out/config.ini -e 1000000
146c133
< > ./gem5.opt.sc m5out/config.ini -e 1000000 -v
---
> > build/{master,slave}_port/gem5.sc m5out/config.ini -e 1000000 -v
148d134
< To see more information about the port coupling use:
150,152d135
< > ./gem5.opt.sc m5out/config.ini -e 1000000 -d ExternalPort
<
<
159,160d141
< >cd examples/slave_port
<
164,165c145,146
< > ../../../../build/ARM/gem5.opt ../../../../configs/example/fs.py \
< --tlm-memory=transactor --cpu-type=timing --num-cpu=1 \
---
> > ../../build/ARM/gem5.opt ../../configs/example/fs.py \
> --tlm-memory=transactor --cpu-type=TimingSimpleCPU --num-cpu=1 \
175,176c156,157
< The binary 'gem5.opt.sc' can now be used to load in the generated config
< file from the previous normal gem5 run.
---
> The binary 'build/examples/slave_port/gem5.sc' can now be used to load in the
> generated config file from the previous normal gem5 run.
180c161
< > ./gem5.opt.sc m5out/config.ini -o 2147483648
---
> > build/examples/slave_port/gem5.sc m5out/config.ini -o 2147483648
185c166
< For convenience a run_gem5.sh file holds all those commands
---
> For convenience a run_gem5_fs.sh file holds all those commands
202c183
< Similar IV. the simulation can be set up with this command:
---
> Similar to IV. the simulation can be set up with this command:
204c185
< > ../../../../build/ARM/gem5.opt ./tlm_elastic.py
---
> > ../../build/ARM/gem5.opt ./conf/tlm_elastic_slave.py
208c189
< > ./gem5.opt.sc m5out/config.ini
---
> > build/examples/slave_port/gem5.sc m5out/config.ini
217c198,200
< * When SystemC was build with --enable-pthreads, SystemC applications linked
---
> * When SystemC is build with pthread support enabled, the binding of gem5 to
> SystemC breaks. When gem5 is linked to a SystemC application, gem5's usage
> of thread local storage results in a segfault.