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