110447Snilay@cs.wisc.edu
210447Snilay@cs.wisc.edu# Instance
310447Snilay@cs.wisc.eduModelName = ElectricalMesh
410447Snilay@cs.wisc.edu
510447Snilay@cs.wisc.edu# Query string used to choose what will be output by Orion
610447Snilay@cs.wisc.eduQueryString = \
710447Snilay@cs.wisc.edu    Energy>>ElectricalMesh:AvgUnicast@0 \
810447Snilay@cs.wisc.edu    NddPower>>ElectricalMesh:Leakage@0 \
910447Snilay@cs.wisc.edu    Area>>ElectricalMesh:Active@0 \
1010447Snilay@cs.wisc.edu    Area>>ElectricalMesh:GlobalWire@0 \
1110447Snilay@cs.wisc.edu
1210447Snilay@cs.wisc.edu# Injection rate (# flits per cycle per site), assuming that the network is not
1310447Snilay@cs.wisc.edu# saturated and uniform random traffic
1410447Snilay@cs.wisc.eduInjectionRate                           = 0.1
1510447Snilay@cs.wisc.edu# Evaluation string
1610447Snilay@cs.wisc.eduEvaluateString                          = \
1710447Snilay@cs.wisc.edu    dynamic         = $(InjectionRate) * $(NumberSites) * $(Frequency) * $(Energy>>ElectricalMesh:AvgUnicast); \
1810447Snilay@cs.wisc.edu    leakage         = $(NddPower>>ElectricalMesh:Leakage); \
1910447Snilay@cs.wisc.edu    total           = dynamic + leakage; \
2010447Snilay@cs.wisc.edu    energy_per_bit  = total / ($(InjectionRate) * $(Frequency) * $(NumberSites) * $(NumberBitsPerFlit)); \
2110447Snilay@cs.wisc.edu    active_area     = $(Area>>ElectricalMesh:Active); \
2210447Snilay@cs.wisc.edu    global_area     = $(Area>>ElectricalMesh:GlobalWire); \
2310447Snilay@cs.wisc.edu    print "Electrical Mesh Network:"; \
2410447Snilay@cs.wisc.edu    print "    Dynamic power: " dynamic; \
2510447Snilay@cs.wisc.edu    print "    Leakage power: " leakage; \
2610447Snilay@cs.wisc.edu    print "    Total power: " total; \
2710447Snilay@cs.wisc.edu    print "    Energy per bit: " energy_per_bit; \
2810447Snilay@cs.wisc.edu    print "    Global Wire Area: " global_area; \
2910447Snilay@cs.wisc.edu    print "    Active Area: " active_area; \
3010447Snilay@cs.wisc.edu    
3110447Snilay@cs.wisc.edu# Technology file (see other models in tech/models)
3210447Snilay@cs.wisc.eduElectricalTechModelFilename             = tech/tech_models/Bulk45LVT.model
3310447Snilay@cs.wisc.edu
3410447Snilay@cs.wisc.edu###############################################################################
3510447Snilay@cs.wisc.edu# Timing optimization
3610447Snilay@cs.wisc.edu###############################################################################
3710447Snilay@cs.wisc.edu
3810447Snilay@cs.wisc.edu# Individual network components already optimize for timing, no need to do it
3910447Snilay@cs.wisc.edu# at the top-level
4010447Snilay@cs.wisc.edu# Operating frequency (Hz)
4110447Snilay@cs.wisc.eduFrequency                                       = 1.0e9
4210447Snilay@cs.wisc.edu
4310447Snilay@cs.wisc.edu# NOTE: If you adjust Frequency, make sure you adjust SWSR->LinkDataRate
4410447Snilay@cs.wisc.edu# to make sure it is >= Frequency, since the model doesn't support serialization
4510447Snilay@cs.wisc.edu# ratios < 1.
4610447Snilay@cs.wisc.edu
4710447Snilay@cs.wisc.edu# Report timing
4810447Snilay@cs.wisc.eduIsReportTiming                                  = true
4910447Snilay@cs.wisc.edu# Report timing
5010447Snilay@cs.wisc.eduReportTiming->StartNetNames                     = [CK]
5110447Snilay@cs.wisc.edu
5210447Snilay@cs.wisc.edu###############################################################################
5310447Snilay@cs.wisc.edu# Model specifications
5410447Snilay@cs.wisc.edu###############################################################################
5510447Snilay@cs.wisc.edu
5610447Snilay@cs.wisc.edu# Mesh Parameters
5710447Snilay@cs.wisc.eduClockFrequency                                  = 1e9
5810447Snilay@cs.wisc.eduNumberSites                                     = 64
5910447Snilay@cs.wisc.eduNumberBitsPerFlit                               = 64
6010447Snilay@cs.wisc.eduNumberSitesPerRouter                            = 1
6110447Snilay@cs.wisc.edu
6210447Snilay@cs.wisc.edu# Router-specific parameters (see dsent.cfg.router for descriptions)
6310447Snilay@cs.wisc.eduRouter->NumberVirtualNetworks                   = 3
6410447Snilay@cs.wisc.eduRouter->NumberVirtualChannelsPerVirtualNetwork  = [1,1,1]
6510447Snilay@cs.wisc.eduRouter->NumberBuffersPerVirtualChannel          = [4,1,1]
6610447Snilay@cs.wisc.eduRouter->InputPort->BufferModel                  = DFFRAM
6710447Snilay@cs.wisc.eduRouter->CrossbarModel                           = MultiplexerCrossbar
6810447Snilay@cs.wisc.eduRouter->SwitchAllocator->ArbiterModel           = MatrixArbiter
6910447Snilay@cs.wisc.eduRouter->ClockTreeModel                          = BroadcastHTree
7010447Snilay@cs.wisc.eduRouter->ClockTree->NumberLevels                 = 6
7110447Snilay@cs.wisc.eduRouter->ClockTree->WireLayer                    = Intermediate
7210447Snilay@cs.wisc.eduRouter->ClockTree->WireWidthMultiplier          = 1.0
7310447Snilay@cs.wisc.edu
7410447Snilay@cs.wisc.edu# Electrical Link-specific parameters
7510447Snilay@cs.wisc.eduLink->WireLayer                                 = Global
7610447Snilay@cs.wisc.eduLink->WireWidthMultiplier                       = 1.0
7710447Snilay@cs.wisc.eduLink->WireSpacingMultiplier                     = 1.0
7810447Snilay@cs.wisc.edu
7910447Snilay@cs.wisc.edu# Physical organization properties
8010447Snilay@cs.wisc.edu# Note: This model assumes a square network layout
8110447Snilay@cs.wisc.eduSitePitch                                       = 1e-3
82