2010-01-30 05:29:17 +01:00
|
|
|
from m5.params import *
|
2010-01-30 05:29:19 +01:00
|
|
|
from m5.proxy import *
|
2010-01-30 05:29:17 +01:00
|
|
|
from MemObject import MemObject
|
|
|
|
|
|
|
|
class RubyPort(MemObject):
|
|
|
|
type = 'RubyPort'
|
|
|
|
abstract = True
|
|
|
|
port = VectorPort("M5 port")
|
|
|
|
version = Param.Int(0, "")
|
2010-01-30 05:29:19 +01:00
|
|
|
pio_port = Port("Ruby_pio_port")
|
2010-01-30 05:29:17 +01:00
|
|
|
|
|
|
|
class RubySequencer(RubyPort):
|
|
|
|
type = 'RubySequencer'
|
|
|
|
cxx_class = 'Sequencer'
|
|
|
|
icache = Param.RubyCache("")
|
|
|
|
dcache = Param.RubyCache("")
|
|
|
|
max_outstanding_requests = Param.Int(16,
|
|
|
|
"max requests (incl. prefetches) outstanding")
|
|
|
|
deadlock_threshold = Param.Int(500000,
|
|
|
|
"max outstanding cycles for a request before deadlock/livelock declared")
|
|
|
|
funcmem_port = Port("port to functional memory")
|
|
|
|
|
|
|
|
class DMASequencer(RubyPort):
|
|
|
|
type = 'DMASequencer'
|