
# Instance
ModelName = ElectricalMesh

# Query string used to choose what will be output by Orion
QueryString = \
    Energy>>ElectricalMesh:AvgUnicast@0 \
    NddPower>>ElectricalMesh:Leakage@0 \
    Area>>ElectricalMesh:Active@0 \
    Area>>ElectricalMesh:GlobalWire@0 \

# Injection rate (# flits per cycle per site), assuming that the network is not
# saturated and uniform random traffic
InjectionRate                           = 0.1
# Evaluation string
EvaluateString                          = \
    dynamic         = $(InjectionRate) * $(NumberSites) * $(Frequency) * $(Energy>>ElectricalMesh:AvgUnicast); \
    leakage         = $(NddPower>>ElectricalMesh:Leakage); \
    total           = dynamic + leakage; \
    energy_per_bit  = total / ($(InjectionRate) * $(Frequency) * $(NumberSites) * $(NumberBitsPerFlit)); \
    active_area     = $(Area>>ElectricalMesh:Active); \
    global_area     = $(Area>>ElectricalMesh:GlobalWire); \
    print "Electrical Mesh Network:"; \
    print "    Dynamic power: " dynamic; \
    print "    Leakage power: " leakage; \
    print "    Total power: " total; \
    print "    Energy per bit: " energy_per_bit; \
    print "    Global Wire Area: " global_area; \
    print "    Active Area: " active_area; \
    
# Technology file (see other models in tech/models)
ElectricalTechModelFilename             = tech/tech_models/Bulk45LVT.model

###############################################################################
# Timing optimization
###############################################################################

# Individual network components already optimize for timing, no need to do it
# at the top-level
# Operating frequency (Hz)
Frequency                                       = 1.0e9

# NOTE: If you adjust Frequency, make sure you adjust SWSR->LinkDataRate
# to make sure it is >= Frequency, since the model doesn't support serialization
# ratios < 1.

# Report timing
IsReportTiming                                  = true
# Report timing
ReportTiming->StartNetNames                     = [CK]

###############################################################################
# Model specifications
###############################################################################

# Mesh Parameters
ClockFrequency                                  = 1e9
NumberSites                                     = 64
NumberBitsPerFlit                               = 64
NumberSitesPerRouter                            = 1

# Router-specific parameters (see dsent.cfg.router for descriptions)
Router->NumberVirtualNetworks                   = 3
Router->NumberVirtualChannelsPerVirtualNetwork  = [1,1,1]
Router->NumberBuffersPerVirtualChannel          = [4,1,1]
Router->InputPort->BufferModel                  = DFFRAM
Router->CrossbarModel                           = MultiplexerCrossbar
Router->SwitchAllocator->ArbiterModel           = MatrixArbiter
Router->ClockTreeModel                          = BroadcastHTree
Router->ClockTree->NumberLevels                 = 6
Router->ClockTree->WireLayer                    = Intermediate
Router->ClockTree->WireWidthMultiplier          = 1.0

# Electrical Link-specific parameters
Link->WireLayer                                 = Global
Link->WireWidthMultiplier                       = 1.0
Link->WireSpacingMultiplier                     = 1.0

# Physical organization properties
# Note: This model assumes a square network layout
SitePitch                                       = 1e-3
