misc: Coupling gem5 with SystemC TLM2.0
Review Request #2753 - Created May 5, 2015 and submitted
| Information | |
|---|---|
| Matthias Jung | |
| gem5 | |
| default | |
| Reviewers | |
| Default | |
Changeset 10873:c0ac6410d7bc
---------------------------
misc: Coupling gem5 with SystemC TLM2.0
Transaction Level Modeling (TLM2.0) is widely used in industry for creating
virtual platforms (IEEE 1666 SystemC). This patch contains a standard compliant
implementation of an external gem5 port, that enables the usage of gem5 as a
TLM initiator component in SystemC based virtual platforms. Both TLM coding
paradigms loosely timed (b_transport) and aproximately timed (nb_transport) are
supported.Compared to the original patch a TLM memory manager was added. Furthermore,
the transaction object was removed and for each TLM payload a PacketPointer
that points to the original gem5 packet is added as an TLM extension.
For event handling single events are now created.
Summary: |
|
||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Description: |
|
||||||||||||||||||||||||||||||||||||
Branch: |
|
||||||||||||||||||||||||||||||||||||
Diff: |
Revision 2 (+14 -1) |
Summary: |
|
||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Description: |
|
||||||||||||||||||||||||||||||||||||||||||
Diff: |
Revision 3 (+1780) |
Description: |
|
||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Diff: |
Revision 4 (+1931) |
Description: |
|
|---|
Most of the comments made below are on formatting. As you fix these, I'll try to understand the code and if required, provide you comments about the actual implementation itself.
-
util/tlm/README (Diff revision 4) -
I am not able to figure in which step this executable was created.
-
util/tlm/main.cc (Diff revision 4) -
No commented code.
-
util/tlm/run_gem5.sh (Diff revision 4) -
No commented code.
-
util/tlm/sc_port.cc (Diff revision 4) -
Inconsistent formatting.
-
util/tlm/sc_port.cc (Diff revision 4) -
There should not be any space between ( and params.
-
util/tlm/sc_target.cc (Diff revision 4) -
Remove this line.
-
util/tlm/sc_target.cc (Diff revision 4) -
if (false)?
-
util/tlm/sc_target.cc (Diff revision 4) -
if (false)?
-
util/tlm/sc_target.cc (Diff revision 4) -
There should not be any space before trans.
-
util/tlm/sc_target.cc (Diff revision 4) -
Inconsistent formatting of {}
-
util/tlm/sc_target.cc (Diff revision 4) -
Seems all arguments can fit in the same line.
-
util/tlm/tgen.cfg (Diff revision 4) -
Copyright notice missing.
-
util/tlm/tlm.py (Diff revision 4) -
Seems more than 80 characters.
Description: |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Diff: |
Revision 5 (+1847) |
I think I sort of understand what is going on in the patch. It is
fine by me if we commit this patch, more so since the changes only
affect a couple of files in configs/common.Just for my understanding, suppose I want to model a new component that
communicates through some sort of transaction. And I want that this component
be written in SystemC and the rest of the system simulation infrastructure
be provided by gem5. Would I have to change the sc_target class to implement
the functionality of this new component?
-
util/tlm/sc_port.hh (Diff revision 5) -
notify is always true here. So why this check?
Ship It!
Description: |
|
||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Diff: |
Revision 6 (+1861) |
Ship It!
