1
2# Instance
3ModelName = ElectricalMesh
4
5# Query string used to choose what will be output by Orion
6QueryString = \
7    Energy>>ElectricalMesh:AvgUnicast@0 \
8    NddPower>>ElectricalMesh:Leakage@0 \
9    Area>>ElectricalMesh:Active@0 \
10    Area>>ElectricalMesh: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) * $(NumberSites) * $(Frequency) * $(Energy>>ElectricalMesh:AvgUnicast); \
18    leakage         = $(NddPower>>ElectricalMesh:Leakage); \
19    total           = dynamic + leakage; \
20    energy_per_bit  = total / ($(InjectionRate) * $(Frequency) * $(NumberSites) * $(NumberBitsPerFlit)); \
21    active_area     = $(Area>>ElectricalMesh:Active); \
22    global_area     = $(Area>>ElectricalMesh:GlobalWire); \
23    print "Electrical Mesh 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# NOTE: If you adjust Frequency, make sure you adjust SWSR->LinkDataRate
44# to make sure it is >= Frequency, since the model doesn't support serialization
45# ratios < 1.
46
47# Report timing
48IsReportTiming                                  = true
49# Report timing
50ReportTiming->StartNetNames                     = [CK]
51
52###############################################################################
53# Model specifications
54###############################################################################
55
56# Mesh Parameters
57ClockFrequency                                  = 1e9
58NumberSites                                     = 64
59NumberBitsPerFlit                               = 64
60NumberSitesPerRouter                            = 1
61
62# Router-specific parameters (see dsent.cfg.router for descriptions)
63Router->NumberVirtualNetworks                   = 3
64Router->NumberVirtualChannelsPerVirtualNetwork  = [1,1,1]
65Router->NumberBuffersPerVirtualChannel          = [4,1,1]
66Router->InputPort->BufferModel                  = DFFRAM
67Router->CrossbarModel                           = MultiplexerCrossbar
68Router->SwitchAllocator->ArbiterModel           = MatrixArbiter
69Router->ClockTreeModel                          = BroadcastHTree
70Router->ClockTree->NumberLevels                 = 6
71Router->ClockTree->WireLayer                    = Intermediate
72Router->ClockTree->WireWidthMultiplier          = 1.0
73
74# Electrical Link-specific parameters
75Link->WireLayer                                 = Global
76Link->WireWidthMultiplier                       = 1.0
77Link->WireSpacingMultiplier                     = 1.0
78
79# Physical organization properties
80# Note: This model assumes a square network layout
81SitePitch                                       = 1e-3
82