gem5/src/mem/slicc/ast
Joel Hestness 581bae9ecb ruby: Expose MessageBuffers as SimObjects
Expose MessageBuffers from SLICC controllers as SimObjects that can be
manipulated in Python. This patch has numerous benefits:
1) First and foremost, it exposes MessageBuffers as SimObjects that can be
manipulated in Python code. This allows parameters to be set and checked in
Python code to avoid obfuscating parameters within protocol files. Further, now
as SimObjects, MessageBuffer parameters are printed to config output files as a
way to track parameters across simulations (e.g. buffer sizes)

2) Cleans up special-case code for responseFromMemory buffers, and aligns their
instantiation and use with mandatoryQueue buffers. These two special buffers
are the only MessageBuffers that are exposed to components outside of SLICC
controllers, and they're both slave ends of these buffers. They should be
exposed outside of SLICC in the same way, and this patch does it.

3) Distinguishes buffer-specific parameters from buffer-to-network parameters.
Specifically, buffer size, randomization, ordering, recycle latency, and ports
are all specific to a MessageBuffer, while the virtual network ID and type are
intrinsics of how the buffer is connected to network ports. The former are
specified in the Python object, while the latter are specified in the
controller *.sm files. Unlike buffer-specific parameters, which may need to
change depending on the simulated system structure, buffer-to-network
parameters can be specified statically for most or all different simulated
systems.
2015-08-14 00:19:44 -05:00
..
__init__.py slicc: improved stalling support in protocols 2015-07-20 09:15:18 -05:00
ActionDeclAST.py Ruby: Simplify SLICC and Entry/TBE handling. 2011-03-31 17:18:00 -07:00
AssignStatementAST.py ruby: drop NetworkMessage class 2015-07-04 10:43:46 -05:00
AST.py ruby: remove call to curCycle in panic() 2013-01-28 06:11:42 -06:00
CheckAllocateStatementAST.py slicc: Pure python implementation of slicc. 2009-09-22 18:12:39 -07:00
CheckNextCycleAST.py slicc: improved stalling support in protocols 2015-07-20 09:15:18 -05:00
DeclAST.py ruby: slicc: slight change to rule for transitions 2014-04-19 09:00:31 -05:00
DeclListAST.py slicc: tweak file enumeration for scons 2009-11-05 11:11:06 -08:00
EnqueueStatementAST.py slicc: Fix bug in enqueue and peek statements. 2015-07-20 09:15:18 -05:00
EnumDeclAST.py slicc: enable overloading in functions not in classes 2015-07-20 09:15:18 -05:00
EnumExprAST.py slicc: Pure python implementation of slicc. 2009-09-22 18:12:39 -07:00
ExprAST.py slicc: have a central mechanism for creating a code_formatter. 2010-03-10 16:22:26 -08:00
ExprStatementAST.py slicc: support for local variable declarations in action blocks 2015-07-20 09:15:18 -05:00
FormalParamAST.py ruby: slicc: change the way configurable members are specified 2014-09-01 16:55:45 -05:00
FuncCallExprAST.py slicc: enable overloading in functions not in classes 2015-07-20 09:15:18 -05:00
FuncDeclAST.py slicc: enable overloading in functions not in classes 2015-07-20 09:15:18 -05:00
IfStatementAST.py Ruby: Fix typo in Slicc if-statement AST error 2013-04-09 16:12:42 -05:00
InPortDeclAST.py slicc: enable overloading in functions not in classes 2015-07-20 09:15:18 -05:00
IsValidPtrExprAST.py Ruby: Simplify SLICC and Entry/TBE handling. 2011-03-31 17:18:00 -07:00
LiteralExprAST.py ruby: get "using namespace" out of headers 2010-04-02 11:20:32 -07:00
LocalVariableAST.py slicc: fix missing inline function in LocalVariableAST 2015-07-20 09:15:18 -05:00
MachineAST.py ruby: profiler: lots of inter-related changes 2013-06-25 00:32:03 -05:00
MemberExprAST.py slicc: fixed error message when the type has no inheritance 2012-04-06 13:47:07 -07:00
MethodCallExprAST.py ruby: Change PerfectCacheMemory::lookup to return pointer 2015-08-14 00:19:39 -05:00
NewExprAST.py slicc: Pure python implementation of slicc. 2009-09-22 18:12:39 -07:00
ObjDeclAST.py ruby: Expose MessageBuffers as SimObjects 2015-08-14 00:19:44 -05:00
OodAST.py Change interface between coherence protocols and CacheMemory 2011-01-17 18:46:16 -06:00
OperatorExprAST.py ruby: slicc: allow mathematical operations on Ticks 2015-08-11 11:39:23 -05:00
OutPortDeclAST.py slicc: have a central mechanism for creating a code_formatter. 2010-03-10 16:22:26 -08:00
PairAST.py slicc: Pure python implementation of slicc. 2009-09-22 18:12:39 -07:00
PairListAST.py slicc: Pure python implementation of slicc. 2009-09-22 18:12:39 -07:00
PeekStatementAST.py slicc: Fix bug in enqueue and peek statements. 2015-07-20 09:15:18 -05:00
ReturnStatementAST.py Change interface between coherence protocols and CacheMemory 2011-01-17 18:46:16 -06:00
StallAndWaitStatementAST.py ruby: slicc: change the way configurable members are specified 2014-09-01 16:55:45 -05:00
StateDeclAST.py slicc: enable overloading in functions not in classes 2015-07-20 09:15:18 -05:00
StatementAST.py slicc: Pure python implementation of slicc. 2009-09-22 18:12:39 -07:00
StatementListAST.py slicc: Pure python implementation of slicc. 2009-09-22 18:12:39 -07:00
StaticCastAST.py Change interface between coherence protocols and CacheMemory 2011-01-17 18:46:16 -06:00
TransitionDeclAST.py ruby: slicc: slight change to rule for transitions 2014-04-19 09:00:31 -05:00
TypeAST.py slicc: Pure python implementation of slicc. 2009-09-22 18:12:39 -07:00
TypeDeclAST.py ruby: improved support for functional accesses 2012-10-15 17:51:57 -05:00
TypeFieldAST.py slicc: Pure python implementation of slicc. 2009-09-22 18:12:39 -07:00
TypeFieldEnumAST.py ruby: allow function definition in slicc structs 2012-10-15 17:27:16 -05:00
TypeFieldStateAST.py ruby: allow function definition in slicc structs 2012-10-15 17:27:16 -05:00
VarExprAST.py slicc: support for arbitrary DPRINTF flags (not just RubySlicc) 2015-07-20 09:15:18 -05:00