O3CPU.py revision 1681
113465Sgabeblack@google.comfrom BaseCPU import BaseCPU
213465Sgabeblack@google.com
313465Sgabeblack@google.comsimobj DerivAlphaFullCPU(BaseCPU):
413465Sgabeblack@google.com    type = 'DerivAlphaFullCPU'
513465Sgabeblack@google.com
613465Sgabeblack@google.com    numThreads = Param.Unsigned("number of HW thread contexts")
713465Sgabeblack@google.com
813465Sgabeblack@google.com    if not build_env['FULL_SYSTEM']:
913465Sgabeblack@google.com        mem = Param.FunctionalMemory(NULL, "memory")
1013465Sgabeblack@google.com
1113465Sgabeblack@google.com    decodeToFetchDelay = Param.Unsigned("Decode to fetch delay")
1213465Sgabeblack@google.com    renameToFetchDelay = Param.Unsigned("Rename to fetch delay")
1313465Sgabeblack@google.com    iewToFetchDelay = Param.Unsigned("Issue/Execute/Writeback to fetch "
1413465Sgabeblack@google.com               "delay")
1513465Sgabeblack@google.com    commitToFetchDelay = Param.Unsigned("Commit to fetch delay")
1613465Sgabeblack@google.com    fetchWidth = Param.Unsigned("Fetch width")
1713465Sgabeblack@google.com
1813465Sgabeblack@google.com    renameToDecodeDelay = Param.Unsigned("Rename to decode delay")
1913465Sgabeblack@google.com    iewToDecodeDelay = Param.Unsigned("Issue/Execute/Writeback to decode "
2013465Sgabeblack@google.com               "delay")
2113465Sgabeblack@google.com    commitToDecodeDelay = Param.Unsigned("Commit to decode delay")
2213465Sgabeblack@google.com    fetchToDecodeDelay = Param.Unsigned("Fetch to decode delay")
2313465Sgabeblack@google.com    decodeWidth = Param.Unsigned("Decode width")
2413465Sgabeblack@google.com
2513465Sgabeblack@google.com    iewToRenameDelay = Param.Unsigned("Issue/Execute/Writeback to rename "
2613465Sgabeblack@google.com               "delay")
2713465Sgabeblack@google.com    commitToRenameDelay = Param.Unsigned("Commit to rename delay")
2813465Sgabeblack@google.com    decodeToRenameDelay = Param.Unsigned("Decode to rename delay")
2913465Sgabeblack@google.com    renameWidth = Param.Unsigned("Rename width")
3013465Sgabeblack@google.com
3113465Sgabeblack@google.com    commitToIEWDelay = Param.Unsigned("Commit to "
3213465Sgabeblack@google.com               "Issue/Execute/Writeback delay")
3313465Sgabeblack@google.com    renameToIEWDelay = Param.Unsigned("Rename to "
3413465Sgabeblack@google.com               "Issue/Execute/Writeback delay")
3513465Sgabeblack@google.com    issueToExecuteDelay = Param.Unsigned("Issue to execute delay (internal "
3613465Sgabeblack@google.com              "to the IEW stage)")
3713465Sgabeblack@google.com    issueWidth = Param.Unsigned("Issue width")
3813465Sgabeblack@google.com    executeWidth = Param.Unsigned("Execute width")
3913465Sgabeblack@google.com    executeIntWidth = Param.Unsigned("Integer execute width")
4013465Sgabeblack@google.com    executeFloatWidth = Param.Unsigned("Floating point execute width")
4113465Sgabeblack@google.com    executeBranchWidth = Param.Unsigned("Branch execute width")
4213465Sgabeblack@google.com    executeMemoryWidth = Param.Unsigned("Memory execute width")
4313465Sgabeblack@google.com
4413465Sgabeblack@google.com    iewToCommitDelay = Param.Unsigned("Issue/Execute/Writeback to commit "
4513465Sgabeblack@google.com               "delay")
4613465Sgabeblack@google.com    renameToROBDelay = Param.Unsigned("Rename to reorder buffer delay")
4713465Sgabeblack@google.com    commitWidth = Param.Unsigned("Commit width")
4813465Sgabeblack@google.com    squashWidth = Param.Unsigned("Squash width")
4913465Sgabeblack@google.com
5013465Sgabeblack@google.com    local_predictor_size = Param.Unsigned("Size of local predictor")
5113465Sgabeblack@google.com    local_ctr_bits = Param.Unsigned("Bits per counter")
5213465Sgabeblack@google.com    local_history_table_size = Param.Unsigned("Size of local history table")
5313465Sgabeblack@google.com    local_history_bits = Param.Unsigned("Bits for the local history")
5413465Sgabeblack@google.com    global_predictor_size = Param.Unsigned("Size of global predictor")
5513465Sgabeblack@google.com    global_ctr_bits = Param.Unsigned("Bits per counter")
5613465Sgabeblack@google.com    global_history_bits = Param.Unsigned("Bits of history")
5713465Sgabeblack@google.com    choice_predictor_size = Param.Unsigned("Size of choice predictor")
5813465Sgabeblack@google.com    choice_ctr_bits = Param.Unsigned("Bits of choice counters")
5913465Sgabeblack@google.com
6013465Sgabeblack@google.com    BTBEntries = Param.Unsigned("Number of BTB entries")
6113465Sgabeblack@google.com    BTBTagSize = Param.Unsigned("Size of the BTB tags, in bits")
6213465Sgabeblack@google.com
6313465Sgabeblack@google.com    RASSize = Param.Unsigned("RAS size")
6413465Sgabeblack@google.com
6513465Sgabeblack@google.com    LQEntries = Param.Unsigned("Number of load queue entries")
6613465Sgabeblack@google.com    SQEntries = Param.Unsigned("Number of store queue entries")
6713465Sgabeblack@google.com    LFSTSize = Param.Unsigned("Last fetched store table size")
6813465Sgabeblack@google.com    SSITSize = Param.Unsigned("Store set ID table size")
6913465Sgabeblack@google.com
7013465Sgabeblack@google.com    numPhysIntRegs = Param.Unsigned("Number of physical integer registers")
7113465Sgabeblack@google.com    numPhysFloatRegs = Param.Unsigned("Number of physical floating point "
7213465Sgabeblack@google.com               "registers")
7313465Sgabeblack@google.com    numIQEntries = Param.Unsigned("Number of instruction queue entries")
7413465Sgabeblack@google.com    numROBEntries = Param.Unsigned("Number of reorder buffer entries")
7513465Sgabeblack@google.com
7613465Sgabeblack@google.com    instShiftAmt = Param.Unsigned("Number of bits to shift instructions by")
7713465Sgabeblack@google.com
7813465Sgabeblack@google.com    function_trace = Param.Bool(False, "Enable function trace")
7913465Sgabeblack@google.com    function_trace_start = Param.Tick(0, "Cycle to start function trace")
8013465Sgabeblack@google.com