summaryrefslogtreecommitdiff
path: root/src/mem/protocol
diff options
context:
space:
mode:
Diffstat (limited to 'src/mem/protocol')
-rw-r--r--src/mem/protocol/MOESI_hammer-cache.sm4
-rw-r--r--src/mem/protocol/MOESI_hammer-dir.sm2
-rw-r--r--src/mem/protocol/MOESI_hammer-dma.sm2
-rw-r--r--src/mem/protocol/SConscript28
4 files changed, 30 insertions, 6 deletions
diff --git a/src/mem/protocol/MOESI_hammer-cache.sm b/src/mem/protocol/MOESI_hammer-cache.sm
index 3b2240800..afe146880 100644
--- a/src/mem/protocol/MOESI_hammer-cache.sm
+++ b/src/mem/protocol/MOESI_hammer-cache.sm
@@ -34,8 +34,8 @@
*/
machine(L1Cache, "AMD Hammer-like protocol")
-: int cache_response_latency,
- int issue_latency
+: int cache_response_latency = 12,
+ int issue_latency = 2
{
// NETWORK BUFFERS
diff --git a/src/mem/protocol/MOESI_hammer-dir.sm b/src/mem/protocol/MOESI_hammer-dir.sm
index b9b001e40..767d271f9 100644
--- a/src/mem/protocol/MOESI_hammer-dir.sm
+++ b/src/mem/protocol/MOESI_hammer-dir.sm
@@ -34,7 +34,7 @@
*/
machine(Directory, "AMD Hammer-like protocol")
-: int memory_controller_latency
+: int memory_controller_latency = 12
{
MessageBuffer forwardFromDir, network="To", virtual_network="2", ordered="false";
diff --git a/src/mem/protocol/MOESI_hammer-dma.sm b/src/mem/protocol/MOESI_hammer-dma.sm
index b217923a4..079485a05 100644
--- a/src/mem/protocol/MOESI_hammer-dma.sm
+++ b/src/mem/protocol/MOESI_hammer-dma.sm
@@ -28,7 +28,7 @@
machine(DMA, "DMA Controller")
-: int request_latency
+: int request_latency = 6
{
MessageBuffer responseFromDir, network="From", virtual_network="4", ordered="true", no_vector="true";
diff --git a/src/mem/protocol/SConscript b/src/mem/protocol/SConscript
index cd9920d22..453b37119 100644
--- a/src/mem/protocol/SConscript
+++ b/src/mem/protocol/SConscript
@@ -70,6 +70,25 @@ def slicc_emitter(target, source, env):
print " %s" % name
target.extend(sorted(slicc.files()))
+ pdir = str(protocol_dir)
+ hdir = str(html_dir)
+
+ if not isdir(pdir):
+ os.mkdir(pdir)
+ if not isdir(hdir):
+ os.mkdir(hdir)
+
+ print "SLICC Generator pass 1..."
+ slicc.findMachines()
+
+ print "SLICC Generator pass 2..."
+ slicc.generate()
+
+ print "SLICC writing C++ files..."
+ slicc.writeCodeFiles(pdir)
+
+ print "SLICC writing HTML files..."
+ slicc.writeHTMLFiles(hdir)
return target, source
def slicc_action(target, source, env):
@@ -108,5 +127,10 @@ env.Append(BUILDERS={'SLICC' : slicc_builder})
nodes = env.SLICC([], [ Value(protocol) ] + sources)
env.Depends(nodes, slicc_depends)
-for f in sorted(s for s in nodes if str(s).endswith('.cc')):
- Source(f)
+for f in nodes:
+ s = str(f)
+ if s.endswith('.cc'):
+ Source(f)
+ elif s.endswith('.py'):
+ SimObject(f)
+