1
2# Instance
3ModelName = ElectricalClos
4
5# Query string used to choose what will be output by Orion
6QueryString = \
7    Energy>>ElectricalClos:AvgUnicast@1 \
8    NddPower>>ElectricalClos:Leakage@0 \
9    Area>>ElectricalClos:Active@0 \
10    Area>>ElectricalClos:GlobalWire@0 \
11
12# Injection rate (# flits per cycle per site), assuming that the network is not
13# saturated and uniform random traffic
14InjectionRate                           = 0.1
15# Evaluation string
16EvaluateString                          = \
17    dynamic         = $(InjectionRate) * $(NumberInputSites) * $(Frequency) * $(Energy>>ElectricalClos:AvgUnicast); \
18    leakage         = $(NddPower>>ElectricalClos:Leakage); \
19    total           = dynamic + leakage; \
20    energy_per_bit  = total / ($(InjectionRate) * $(Frequency) * $(NumberInputSites) * $(NumberBitsPerFlit)); \
21    active_area     = $(Area>>ElectricalClos:Active); \
22    global_area     = $(Area>>ElectricalClos:GlobalWire); \
23    print "Electrical Clos Network:"; \
24    print "    Dynamic power: " dynamic; \
25    print "    Leakage power: " leakage; \
26    print "    Total power: " total; \
27    print "    Energy per bit: " energy_per_bit; \
28    print "    Global Wire Area: " global_area; \
29    print "    Active Area: " active_area; \
30    
31# Technology file (see other models in tech/models)
32ElectricalTechModelFilename             = tech/tech_models/Bulk45LVT.model
33
34###############################################################################
35# Timing optimization
36###############################################################################
37
38# Individual network components already optimize for timing, no need to do it
39# at the top-level
40# Operating frequency (Hz)
41Frequency                                       = 1.0e9
42
43# Report timing
44IsReportTiming                                  = true
45# Report timing
46ReportTiming->StartNetNames                     = [CK]
47
48###############################################################################
49# Model specifications
50###############################################################################
51
52# Clos Parameters
53# Number of sites that can send
54NumberInputSites                                = 64
55# Number of sites that can receive
56NumberOutputSites                               = 64
57# Bits per flit
58NumberBitsPerFlit                               = 64
59# Number of routers at each stage
60NumberIngressRouters                            = 8
61NumberMiddleRouters                             = 8
62NumberEgressRouters                             = 8
63
64# Router-specific parameters (see dsent.cfg.router for descriptions)
65Router->NumberVirtualNetworks                   = 3
66Router->NumberVirtualChannelsPerVirtualNetwork  = [1,1,1]
67Router->NumberBuffersPerVirtualChannel          = [4,1,1]
68Router->InputPort->BufferModel                  = DFFRAM
69Router->CrossbarModel                           = MultiplexerCrossbar
70Router->SwitchAllocator->ArbiterModel           = MatrixArbiter
71Router->ClockTreeModel                          = BroadcastHTree
72Router->ClockTree->NumberLevels                 = 6
73Router->ClockTree->WireLayer                    = Intermediate
74Router->ClockTree->WireWidthMultiplier          = 1.0
75
76# Electrical Link-specific parameters
77Link->WireLayer                                 = Global
78Link->WireWidthMultiplier                       = 1.0
79Link->WireSpacingMultiplier                     = 1.0
80
81# Physical organization properties
82# Note: This model assumes a square network layout
83InputSitePitch                                  = 1e-3
84OutputSitePitch                                 = 1e-3