110447Snilay@cs.wisc.edu
210447Snilay@cs.wisc.edu# Instance
310447Snilay@cs.wisc.eduModelName = ElectricalClos
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>>ElectricalClos:AvgUnicast@1 \
810447Snilay@cs.wisc.edu    NddPower>>ElectricalClos:Leakage@0 \
910447Snilay@cs.wisc.edu    Area>>ElectricalClos:Active@0 \
1010447Snilay@cs.wisc.edu    Area>>ElectricalClos: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) * $(NumberInputSites) * $(Frequency) * $(Energy>>ElectricalClos:AvgUnicast); \
1810447Snilay@cs.wisc.edu    leakage         = $(NddPower>>ElectricalClos:Leakage); \
1910447Snilay@cs.wisc.edu    total           = dynamic + leakage; \
2010447Snilay@cs.wisc.edu    energy_per_bit  = total / ($(InjectionRate) * $(Frequency) * $(NumberInputSites) * $(NumberBitsPerFlit)); \
2110447Snilay@cs.wisc.edu    active_area     = $(Area>>ElectricalClos:Active); \
2210447Snilay@cs.wisc.edu    global_area     = $(Area>>ElectricalClos:GlobalWire); \
2310447Snilay@cs.wisc.edu    print "Electrical Clos 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# Report timing
4410447Snilay@cs.wisc.eduIsReportTiming                                  = true
4510447Snilay@cs.wisc.edu# Report timing
4610447Snilay@cs.wisc.eduReportTiming->StartNetNames                     = [CK]
4710447Snilay@cs.wisc.edu
4810447Snilay@cs.wisc.edu###############################################################################
4910447Snilay@cs.wisc.edu# Model specifications
5010447Snilay@cs.wisc.edu###############################################################################
5110447Snilay@cs.wisc.edu
5210447Snilay@cs.wisc.edu# Clos Parameters
5310447Snilay@cs.wisc.edu# Number of sites that can send
5410447Snilay@cs.wisc.eduNumberInputSites                                = 64
5510447Snilay@cs.wisc.edu# Number of sites that can receive
5610447Snilay@cs.wisc.eduNumberOutputSites                               = 64
5710447Snilay@cs.wisc.edu# Bits per flit
5810447Snilay@cs.wisc.eduNumberBitsPerFlit                               = 64
5910447Snilay@cs.wisc.edu# Number of routers at each stage
6010447Snilay@cs.wisc.eduNumberIngressRouters                            = 8
6110447Snilay@cs.wisc.eduNumberMiddleRouters                             = 8
6210447Snilay@cs.wisc.eduNumberEgressRouters                             = 8
6310447Snilay@cs.wisc.edu
6410447Snilay@cs.wisc.edu# Router-specific parameters (see dsent.cfg.router for descriptions)
6510447Snilay@cs.wisc.eduRouter->NumberVirtualNetworks                   = 3
6610447Snilay@cs.wisc.eduRouter->NumberVirtualChannelsPerVirtualNetwork  = [1,1,1]
6710447Snilay@cs.wisc.eduRouter->NumberBuffersPerVirtualChannel          = [4,1,1]
6810447Snilay@cs.wisc.eduRouter->InputPort->BufferModel                  = DFFRAM
6910447Snilay@cs.wisc.eduRouter->CrossbarModel                           = MultiplexerCrossbar
7010447Snilay@cs.wisc.eduRouter->SwitchAllocator->ArbiterModel           = MatrixArbiter
7110447Snilay@cs.wisc.eduRouter->ClockTreeModel                          = BroadcastHTree
7210447Snilay@cs.wisc.eduRouter->ClockTree->NumberLevels                 = 6
7310447Snilay@cs.wisc.eduRouter->ClockTree->WireLayer                    = Intermediate
7410447Snilay@cs.wisc.eduRouter->ClockTree->WireWidthMultiplier          = 1.0
7510447Snilay@cs.wisc.edu
7610447Snilay@cs.wisc.edu# Electrical Link-specific parameters
7710447Snilay@cs.wisc.eduLink->WireLayer                                 = Global
7810447Snilay@cs.wisc.eduLink->WireWidthMultiplier                       = 1.0
7910447Snilay@cs.wisc.eduLink->WireSpacingMultiplier                     = 1.0
8010447Snilay@cs.wisc.edu
8110447Snilay@cs.wisc.edu# Physical organization properties
8210447Snilay@cs.wisc.edu# Note: This model assumes a square network layout
8310447Snilay@cs.wisc.eduInputSitePitch                                  = 1e-3
8410447Snilay@cs.wisc.eduOutputSitePitch                                 = 1e-3