diff options
Diffstat (limited to 'ext/dsent/configs')
-rw-r--r-- | ext/dsent/configs/electrical-clos.cfg | 84 | ||||
-rw-r--r-- | ext/dsent/configs/electrical-link.cfg | 57 | ||||
-rw-r--r-- | ext/dsent/configs/electrical-mesh.cfg | 81 | ||||
-rw-r--r-- | ext/dsent/configs/example.cfg | 40 | ||||
-rw-r--r-- | ext/dsent/configs/photonic-clos.cfg | 112 | ||||
-rw-r--r-- | ext/dsent/configs/photonic-link.cfg | 75 | ||||
-rw-r--r-- | ext/dsent/configs/router.cfg | 131 |
7 files changed, 580 insertions, 0 deletions
diff --git a/ext/dsent/configs/electrical-clos.cfg b/ext/dsent/configs/electrical-clos.cfg new file mode 100644 index 000000000..29888f754 --- /dev/null +++ b/ext/dsent/configs/electrical-clos.cfg @@ -0,0 +1,84 @@ + +# Instance +ModelName = ElectricalClos + +# Query string used to choose what will be output by Orion +QueryString = \ + Energy>>ElectricalClos:AvgUnicast@1 \ + NddPower>>ElectricalClos:Leakage@0 \ + Area>>ElectricalClos:Active@0 \ + Area>>ElectricalClos:GlobalWire@0 \ + +# Injection rate (# flits per cycle per site), assuming that the network is not +# saturated and uniform random traffic +InjectionRate = 0.1 +# Evaluation string +EvaluateString = \ + dynamic = $(InjectionRate) * $(NumberInputSites) * $(Frequency) * $(Energy>>ElectricalClos:AvgUnicast); \ + leakage = $(NddPower>>ElectricalClos:Leakage); \ + total = dynamic + leakage; \ + energy_per_bit = total / ($(InjectionRate) * $(Frequency) * $(NumberInputSites) * $(NumberBitsPerFlit)); \ + active_area = $(Area>>ElectricalClos:Active); \ + global_area = $(Area>>ElectricalClos:GlobalWire); \ + print "Electrical Clos Network:"; \ + print " Dynamic power: " dynamic; \ + print " Leakage power: " leakage; \ + print " Total power: " total; \ + print " Energy per bit: " energy_per_bit; \ + print " Global Wire Area: " global_area; \ + print " Active Area: " active_area; \ + +# Technology file (see other models in tech/models) +ElectricalTechModelFilename = tech/tech_models/Bulk45LVT.model + +############################################################################### +# Timing optimization +############################################################################### + +# Individual network components already optimize for timing, no need to do it +# at the top-level +# Operating frequency (Hz) +Frequency = 1.0e9 + +# Report timing +IsReportTiming = true +# Report timing +ReportTiming->StartNetNames = [CK] + +############################################################################### +# Model specifications +############################################################################### + +# Clos Parameters +# Number of sites that can send +NumberInputSites = 64 +# Number of sites that can receive +NumberOutputSites = 64 +# Bits per flit +NumberBitsPerFlit = 64 +# Number of routers at each stage +NumberIngressRouters = 8 +NumberMiddleRouters = 8 +NumberEgressRouters = 8 + +# Router-specific parameters (see dsent.cfg.router for descriptions) +Router->NumberVirtualNetworks = 3 +Router->NumberVirtualChannelsPerVirtualNetwork = [1,1,1] +Router->NumberBuffersPerVirtualChannel = [4,1,1] +Router->InputPort->BufferModel = DFFRAM +Router->CrossbarModel = MultiplexerCrossbar +Router->SwitchAllocator->ArbiterModel = MatrixArbiter +Router->ClockTreeModel = BroadcastHTree +Router->ClockTree->NumberLevels = 6 +Router->ClockTree->WireLayer = Intermediate +Router->ClockTree->WireWidthMultiplier = 1.0 + +# Electrical Link-specific parameters +Link->WireLayer = Global +Link->WireWidthMultiplier = 1.0 +Link->WireSpacingMultiplier = 1.0 + +# Physical organization properties +# Note: This model assumes a square network layout +InputSitePitch = 1e-3 +OutputSitePitch = 1e-3
\ No newline at end of file diff --git a/ext/dsent/configs/electrical-link.cfg b/ext/dsent/configs/electrical-link.cfg new file mode 100644 index 000000000..8369b8633 --- /dev/null +++ b/ext/dsent/configs/electrical-link.cfg @@ -0,0 +1,57 @@ + +# Name of model to be built and evaluated +ModelName = RepeatedLink + +# Query string to choose what to evaluate (use '\' to enable multiline config) +QueryString = \ + Energy>>RepeatedLink:Send@0 \ + NddPower>>RepeatedLink:Leakage@0 \ + Area>>RepeatedLink:Active@0 \ + +# Injection rate +InjectionRate = 0.3 +# Evaluation string +EvaluateString = \ + link_dynamic = $(Energy>>RepeatedLink:Send) * $(Frequency); \ + link_static = $(NddPower>>RepeatedLink:Leakage); \ + print "Link:"; \ + print " Dynamic power: " link_dynamic * $(InjectionRate); \ + print " Leakage power: " link_static; \ + +# Technology file (see models in tech/models) +ElectricalTechModelFilename = tech/tech_models/Bulk45LVT.model + +############################################################################### +# Timing optimization +############################################################################### + +# True if want to perform timing optimization; otherwise, false. +# NOTE: for links it should never be turned on for timing optimization, the +# link model is already doing timing optimization to insert buffers based on +# the 'Delay' specified +IsPerformTimingOptimization = false +# Nets that the timing optimizer starts from +TimingOptimization->StartNetNames = [] +# Operating frequency (Hz) +# 'Frequency' has no effect to the RepeatedLink model. Use 'Delay' to +# constraint the links timing. +Frequency = 1e9 + +############################################################################### +# Model specifications +############################################################################### + +# Data width of the repeated link/bus +NumberBits = 64 +# Wire layer +WireLayer = Global +# Wire width multiplier +WireWidthMultiplier = 1.0 +# Wire spacing multiplier +WireSpacingMultiplier = 1.0 + +# Wire length (m) +WireLength = 1e-3 +# Delay of the wire (may not be 1.0 / Frequency) +Delay = 1e-9 + diff --git a/ext/dsent/configs/electrical-mesh.cfg b/ext/dsent/configs/electrical-mesh.cfg new file mode 100644 index 000000000..929e4f19c --- /dev/null +++ b/ext/dsent/configs/electrical-mesh.cfg @@ -0,0 +1,81 @@ + +# Instance +ModelName = ElectricalMesh + +# Query string used to choose what will be output by Orion +QueryString = \ + Energy>>ElectricalMesh:AvgUnicast@0 \ + NddPower>>ElectricalMesh:Leakage@0 \ + Area>>ElectricalMesh:Active@0 \ + Area>>ElectricalMesh:GlobalWire@0 \ + +# Injection rate (# flits per cycle per site), assuming that the network is not +# saturated and uniform random traffic +InjectionRate = 0.1 +# Evaluation string +EvaluateString = \ + dynamic = $(InjectionRate) * $(NumberSites) * $(Frequency) * $(Energy>>ElectricalMesh:AvgUnicast); \ + leakage = $(NddPower>>ElectricalMesh:Leakage); \ + total = dynamic + leakage; \ + energy_per_bit = total / ($(InjectionRate) * $(Frequency) * $(NumberSites) * $(NumberBitsPerFlit)); \ + active_area = $(Area>>ElectricalMesh:Active); \ + global_area = $(Area>>ElectricalMesh:GlobalWire); \ + print "Electrical Mesh Network:"; \ + print " Dynamic power: " dynamic; \ + print " Leakage power: " leakage; \ + print " Total power: " total; \ + print " Energy per bit: " energy_per_bit; \ + print " Global Wire Area: " global_area; \ + print " Active Area: " active_area; \ + +# Technology file (see other models in tech/models) +ElectricalTechModelFilename = tech/tech_models/Bulk45LVT.model + +############################################################################### +# Timing optimization +############################################################################### + +# Individual network components already optimize for timing, no need to do it +# at the top-level +# Operating frequency (Hz) +Frequency = 1.0e9 + +# NOTE: If you adjust Frequency, make sure you adjust SWSR->LinkDataRate +# to make sure it is >= Frequency, since the model doesn't support serialization +# ratios < 1. + +# Report timing +IsReportTiming = true +# Report timing +ReportTiming->StartNetNames = [CK] + +############################################################################### +# Model specifications +############################################################################### + +# Mesh Parameters +ClockFrequency = 1e9 +NumberSites = 64 +NumberBitsPerFlit = 64 +NumberSitesPerRouter = 1 + +# Router-specific parameters (see dsent.cfg.router for descriptions) +Router->NumberVirtualNetworks = 3 +Router->NumberVirtualChannelsPerVirtualNetwork = [1,1,1] +Router->NumberBuffersPerVirtualChannel = [4,1,1] +Router->InputPort->BufferModel = DFFRAM +Router->CrossbarModel = MultiplexerCrossbar +Router->SwitchAllocator->ArbiterModel = MatrixArbiter +Router->ClockTreeModel = BroadcastHTree +Router->ClockTree->NumberLevels = 6 +Router->ClockTree->WireLayer = Intermediate +Router->ClockTree->WireWidthMultiplier = 1.0 + +# Electrical Link-specific parameters +Link->WireLayer = Global +Link->WireWidthMultiplier = 1.0 +Link->WireSpacingMultiplier = 1.0 + +# Physical organization properties +# Note: This model assumes a square network layout +SitePitch = 1e-3 diff --git a/ext/dsent/configs/example.cfg b/ext/dsent/configs/example.cfg new file mode 100644 index 000000000..9e147b2d4 --- /dev/null +++ b/ext/dsent/configs/example.cfg @@ -0,0 +1,40 @@ + +# Example using a crossbar +# % ./dsent -cfg configs/example.example -verbose + + +# Name of model to be built and evaluated +ModelName = MultiplexerCrossbar + +# Query string to choose what to evaluate (use '\' to enable multiline config) +QueryString = \ + Energy>>MultiplexerCrossbar:Multicast1@0 \ + Energy>>MultiplexerCrossbar:Multicast1@2 \ + NddPower>>MultiplexerCrossbar:Leakage@1 \ + Area>>MultiplexerCrossbar:Active@1 + +# Technology file (see models in tech/tech_models) +ElectricalTechModelFilename = tech/tech_models/Bulk45LVT.model + +############################################################################### +# Timing optimization +############################################################################### + +# True if want to perform timing optimization; otherwise, false. +IsPerformTimingOptimization = true +# Nets that the timing optimizer starts from +TimingOptimization->StartNetNames = [*] # '*' means from all inputs +# Operating frequency (Hz) +Frequency = 2e9 + +############################################################################### +# Model specifications +############################################################################### + +# Number of inputs +NumberInputs = 4 +# Number of outputs +NumberOutputs = 4 +# Number of bits per input/output +NumberBits = 64 + diff --git a/ext/dsent/configs/photonic-clos.cfg b/ext/dsent/configs/photonic-clos.cfg new file mode 100644 index 000000000..252b49ab0 --- /dev/null +++ b/ext/dsent/configs/photonic-clos.cfg @@ -0,0 +1,112 @@ + +# Name of model to be built and evaluated +ModelName = PhotonicClos + +# Query string to choose what to evaluate (use '\' to enable multiline config) +QueryString = \ + Energy>>PhotonicClos:AvgUnicast@1 \ + NddPower>>PhotonicClos:RingTuning@0 \ + NddPower>>PhotonicClos:Laser@0 \ + NddPower>>PhotonicClos:Leakage@0 \ + Area>>PhotonicClos:Active@0 \ + Area>>PhotonicClos:GlobalWire@0 \ + Area>>PhotonicClos:Photonic@0 \ + +# Injection rate (# flits per cycle per site), assuming that the network is not +# saturated and uniform random traffic +InjectionRate = 0.1 +# Evaluation string +EvaluateString = \ + dynamic = $(InjectionRate) * $(NumberInputSites) * $(Frequency) * $(Energy>>PhotonicClos:AvgUnicast); \ + leakage = $(NddPower>>PhotonicClos:Leakage); \ + ring_heating = $(NddPower>>PhotonicClos:RingTuning); \ + laser = $(NddPower>>PhotonicClos:Laser); \ + total = dynamic + leakage + ring_heating + laser; \ + energy_per_bit = total / ($(InjectionRate) * $(Frequency) * $(NumberInputSites) * $(NumberBitsPerFlit)); \ + active_area = $(Area>>PhotonicClos:Active); \ + global_area = $(Area>>PhotonicClos:GlobalWire); \ + photonic_area = $(Area>>PhotonicClos:Photonic); \ + print "Photonic Clos Network:"; \ + print " Dynamic power: " dynamic; \ + print " Leakage power: " leakage; \ + print " Laser power: " laser; \ + print " Ring Heater Power: " ring_heating; \ + print " Total power: " total; \ + print " Energy per bit: " energy_per_bit; \ + print " Active Area: " active_area; \ + print " Global Wire Area: " global_area; \ + print " Photonic Area: " photonic_area; \ + +# Technology file (see other models in tech/models) +ElectricalTechModelFilename = tech/tech_models/Bulk45LVT.model +PhotonicTechModelFilename = tech/tech_models/Photonics.model + +############################################################################### +# Timing optimization +############################################################################### + +# Individual network components already optimize for timing, no need to do it +# at the top-level +# Operating frequency (Hz) +Frequency = 4e9 + +# NOTE: If you adjust Frequency, make sure you adjust SWSR->LinkDataRate +# to make sure it is >= Frequency, since the model doesn't support serialization +# ratios < 1. + +# Report timing +IsReportTiming = true +# Report timing +ReportTiming->StartNetNames = [CK] + +############################################################################### +# Model specifications +############################################################################### + +# Clos Parameters +# Number of sites that can send +NumberInputSites = 64 +# Number of sites that can receive +NumberOutputSites = 64 +# Bits per flit +NumberBitsPerFlit = 64 +# Number of routers at each stage +NumberIngressRouters = 8 +NumberMiddleRouters = 8 +NumberEgressRouters = 8 + +# Router-specific parameters (see dsent.cfg.router for descriptions) +Router->NumberVirtualNetworks = 3 +Router->NumberVirtualChannelsPerVirtualNetwork = [1,1,1] +Router->NumberBuffersPerVirtualChannel = [4,1,1] +Router->InputPort->BufferModel = DFFRAM +Router->CrossbarModel = MultiplexerCrossbar +Router->SwitchAllocator->ArbiterModel = MatrixArbiter +Router->ClockTreeModel = BroadcastHTree +Router->ClockTree->NumberLevels = 6 +Router->ClockTree->WireLayer = Intermediate +Router->ClockTree->WireWidthMultiplier = 1.0 + +# Electrical Link-specific parameters +Link->WireLayer = Global +Link->WireWidthMultiplier = 1.0 +Link->WireSpacingMultiplier = 1.0 + +# Photonic link-specfic parameters +# Link data rate (Hz), must be >= Frequency of the network +SWSR->LinkDataRate = 4e9 +# Optimize the laser/modulator power balance for the given utilization +SWSR->OptUtil = 0.5 +# Type of the laser. Current valid choices are: (Standard, Throttled) +# Note, if you change this to throttled, the laser gets lumped into dynamic +# power, so change the Ndd power query for laser appropriately +SWSR->LaserType = Standard +# Ring tuning method. Current valid choices are: +# (FullThermal, AthermalWithTrim, ThermalWithBitReshuffle, ElectricalAssistWithBitReshuffle) +SWSR->RingTuningMethod = ThermalWithBitReshuffle + +# Physical organization properties +# Note: This model assumes a square network layout +InputSitePitch = 1e-3 +OutputSitePitch = 1e-3 + diff --git a/ext/dsent/configs/photonic-link.cfg b/ext/dsent/configs/photonic-link.cfg new file mode 100644 index 000000000..755e38bbc --- /dev/null +++ b/ext/dsent/configs/photonic-link.cfg @@ -0,0 +1,75 @@ + +# Name of model to be built and evaluated +ModelName = SWSRLink + +# Query string to choose what to evaluate (use '\' to enable multiline config) +QueryString = \ + Energy>>SWSRLink:Send@1 \ + NddPower>>SWSRLink:Leakage@0 \ + NddPower>>SWSRLink:RingTuning@0 \ + NddPower>>SWSRLink:Laser@0 \ + Area>>SWSRLink:Active@0 \ + Area>>SWSRLink:Photonic@0 \ + +# Injection rate (# words per core cycle) +InjectionRate = 1.0 +# Evaluation string +EvaluateString = \ + dynamic = $(InjectionRate) * $(CoreDataRate) * $(Energy>>SWSRLink:Send); \ + leakage = $(NddPower>>SWSRLink:Leakage); \ + ring_heating = $(NddPower>>SWSRLink:RingTuning); \ + laser = $(NddPower>>SWSRLink:Laser); \ + total = dynamic + leakage + ring_heating + laser; \ + energy_per_bit = total / ($(InjectionRate) * $(CoreDataRate) * $(NumberBits)); \ + active_area = $(Area>>SWSRLink:Active); \ + photonic_area = $(Area>>SWSRLink:Photonic); \ + print "Photonic Clos Network:"; \ + print " Dynamic power: " dynamic; \ + print " Leakage power: " leakage; \ + print " Laser power: " laser; \ + print " Ring Heater Power: " ring_heating; \ + print " Total power: " total; \ + print " Energy per bit: " energy_per_bit; \ + print " Active Area: " active_area; \ + print " Photonic Area: " photonic_area; \ + +# Technology file (see other models in tech/models) +ElectricalTechModelFilename = tech/tech_models/Bulk45LVT.model +PhotonicTechModelFilename = tech/tech_models/Photonics.model + +############################################################################### +# Model specifications +############################################################################### + +# Clos Parameters +# Number of bits the link is responsible for delivering +NumberBits = 64 +# Core data rate +CoreDataRate = 1e9 +# Link data rate, if link data-rate > core data rate, SerDes will be applied +LinkDataRate = 1e9 + +# Optimization parameters +# Whether link specs will be optimized for power +OptimizeLoss = true +# Optimize the laser/modulator power balance for the given link utilization, +# ignored if optimize loss is set to false +OptUtil = 0.5 +# Insertion loss and extinction ratio (in dB), ignored if optimize loss is set +# to true +InsertionLoss = 2.0 +ExtinctionRatio = 6.0 + +# Technology-based parameters +# Type of the laser. Current valid choices are: (Standard, Throttled) +# Note, if you change this to throttled, the laser gets lumped into dynamic +# power, so change the Ndd power query for laser appropriately +LaserType = Standard +# Ring tuning method. Current valid choices are: +# (FullThermal, AthermalWithTrim, ThermalWithBitReshuffle, ElectricalAssistWithBitReshuffle) +RingTuningMethod = ThermalWithBitReshuffle + +# Physical organization properties +# Length of the link (in meters) +Length = 10e-3 + diff --git a/ext/dsent/configs/router.cfg b/ext/dsent/configs/router.cfg new file mode 100644 index 000000000..2e68b7e2c --- /dev/null +++ b/ext/dsent/configs/router.cfg @@ -0,0 +1,131 @@ + +# Name of model to be built and evaluated +ModelName = Router + +# Query string to choose what to evaluate (use '\' to enable multiline config) +QueryString = \ + Energy>>Router:WriteBuffer@0 \ + Energy>>Router:ReadBuffer@0 \ + Energy>>Router:TraverseCrossbar->Multicast1@0 \ + Energy>>Router:ArbitrateSwitch->ArbitrateStage1@0 \ + Energy>>Router:ArbitrateSwitch->ArbitrateStage2@0 \ + Energy>>Router:DistributeClock@0 \ + NddPower>>Router:Leakage@1 \ + Area>>Router:Active@1 \ + + +# Injection rate (# flits per cycle per port), assuming that the router is not +# saturated +InjectionRate = 0.3 +# Evaluation string +EvaluateString = \ + ejection_rate = $(NumberInputPorts) * $(InjectionRate) / $(NumberOutputPorts); \ + buf_rd_dynamic = $(Energy>>Router:ReadBuffer) * $(Frequency); \ + buf_wr_dynamic = $(Energy>>Router:WriteBuffer) * $(Frequency); \ + buf_static = $(NddPower>>Router->InputPort:Leakage) * $(NumberInputPorts) + ($(NddPower>>Router->PipelineReg0:Leakage) + $(NddPower>>Router->PipelineReg1:Leakage)) * $(NumberInputPorts) * $(NumberBitsPerFlit); \ + xbar_o_dynamic = $(Energy>>Router:TraverseCrossbar->Multicast1) * $(Frequency); \ + xbar_static = $(NddPower>>Router->Crossbar:Leakage) + $(NddPower>>Router->PipelineReg2_0:Leakage) * $(NumberOutputPorts) * $(NumberBitsPerFlit); \ + sa_o_dynamic = ($(Energy>>Router:ArbitrateSwitch->ArbitrateStage1) + $(Energy>>Router:ArbitrateSwitch->ArbitrateStage2)) * $(Frequency); \ + sa_static = $(NddPower>>Router->SwitchAllocator:Leakage); \ + clock_o_dynamic = $(Energy>>Router:DistributeClock) * $(Frequency); \ + clock_static = $(NddPower>>Router->ClockTree:Leakage); \ + buffer_dynamic = buf_wr_dynamic * $(InjectionRate) * $(NumberInputPorts) + buf_rd_dynamic * ejection_rate * $(NumberOutputPorts); \ + buffer_leakage = buf_static; \ + xbar_dynamic = xbar_o_dynamic * ejection_rate * $(NumberOutputPorts); \ + xbar_leakage = xbar_static; \ + sa_dynamic = sa_o_dynamic * ejection_rate * $(NumberOutputPorts); \ + sa_leakage = sa_static; \ + clock_dynamic = clock_o_dynamic; \ + clock_leakage = clock_static; \ + total_dynamic = buffer_dynamic + xbar_dynamic + sa_dynamic + clock_dynamic; \ + total_leakage = buffer_leakage + xbar_leakage + sa_leakage + clock_leakage; \ + buf_area = ($(Area>>Router->InputPort:Active) + ($(Area>>Router->PipelineReg0:Active) + $(Area>>Router->PipelineReg1:Active)) * $(NumberBitsPerFlit)) * $(NumberInputPorts); \ + xbar_area = $(Area>>Router->Crossbar:Active) + $(Area>>Router->Crossbar_Sel_DFF:Active) + $(Area>>Router->PipelineReg2_0:Active) * $(NumberBitsPerFlit) * $(NumberOutputPorts); \ + sa_area = $(Area>>Router->SwitchAllocator:Active); \ + other_area = $(Area>>Router->ClockTree:Active); \ + print "Buffer:"; \ + print " Dynamic power: " buffer_dynamic; \ + print " Leakage power: " buffer_leakage; \ + print "Crossbar:"; \ + print " Dynamic power: " xbar_dynamic; \ + print " Leakage power: " xbar_leakage; \ + print "Switch allocator:"; \ + print " Dynamic power: " sa_dynamic; \ + print " Leakage power: " sa_leakage; \ + print "Clock:"; \ + print " Dynamic power: " clock_dynamic; \ + print " Leakage power: " clock_leakage; \ + print "Total:"; \ + print " Dynamic power: " total_dynamic; \ + print " Leakage power: " $(NddPower>>Router:Leakage); \ + print "Area:"; \ + print " Buffer: " buf_area; \ + print " Crossbar: " xbar_area; \ + print " Switch allocator: " sa_area; \ + print " Other: " other_area; \ + +# Technology file (see other models in tech/models) +ElectricalTechModelFilename = tech/tech_models/Bulk45LVT.model + +############################################################################### +# Timing optimization +############################################################################### + +# True if want to perform timing optimization; otherwise, false. +IsPerformTimingOptimization = true +# Nets that the timing optimizer starts from +TimingOptimization->StartNetNames = [*] +# Operating frequency (Hz) +Frequency = 1.0e9 + +############################################################################### +# Model specifications +############################################################################### + +# Number of input ports +NumberInputPorts = 5 +# Number of output ports +NumberOutputPorts = 5 +# Flit width (bit) +NumberBitsPerFlit = 64 + +# In this example, we define 2 virtual networks (message classes), VN1 and VN2. +# VN1 VN2 +# Number of VCs 2 3 +# Number of buffers / VC 4 5 +# +# So in total, there are (2 * 4) + (3 * 5) = 23 flit buffers +# +# Number of virtual networks (number of message classes) +NumberVirtualNetworks = 2 +# Number of virtual channels per virtual network +NumberVirtualChannelsPerVirtualNetwork = [2, 3] +# Number of buffers per virtual channel +NumberBuffersPerVirtualChannel = [4, 5] + +# InputPort +# --------- +# buffer model +InputPort->BufferModel = DFFRAM + +# Crossbar +# -------- +# crossbar model +CrossbarModel = MultiplexerCrossbar + +# Switch allocator +# ---------------- +# arbiter model +SwitchAllocator->ArbiterModel = MatrixArbiter + +# Clock tree +# ---------- +# clock tree model +ClockTreeModel = BroadcastHTree +# number of levels +ClockTree->NumberLevels = 5 +# wire layer +ClockTree->WireLayer = Global +# wire width multiplier +ClockTree->WireWidthMultiplier = 1.0 + |