diff options
Diffstat (limited to 'src/mem/protocol')
-rw-r--r-- | src/mem/protocol/MOESI_hammer-cache.sm | 4 | ||||
-rw-r--r-- | src/mem/protocol/MOESI_hammer-dir.sm | 2 | ||||
-rw-r--r-- | src/mem/protocol/MOESI_hammer-dma.sm | 2 | ||||
-rw-r--r-- | src/mem/protocol/SConscript | 28 |
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) + |