diff options
| author | andrewboktor <[email protected]> | 2015-04-15 16:51:33 -0700 |
|---|---|---|
| committer | andrewboktor <[email protected]> | 2015-04-15 16:51:33 -0700 |
| commit | 091cbc85b89043c99041582156215a87afbebaf4 (patch) | |
| tree | 891b09bae4e255e0aa0d99ff9a9062de8abbccb7 /src/intersim2/.svn/pristine/12/1260dd25f0b77d1694bc40d60681090fdb77e795.svn-base | |
| parent | 4dc9d53085b568aea0cefe75d599f87bb5e0841f (diff) | |
| parent | 0b55a95f4389a45fec6ff94e35ded72b42433a29 (diff) | |
Merge pull request #10 from qqldd/dev
Booksim2 abandoned svn and moved to github (https://github.com/booksim/b...
Diffstat (limited to 'src/intersim2/.svn/pristine/12/1260dd25f0b77d1694bc40d60681090fdb77e795.svn-base')
| -rw-r--r-- | src/intersim2/.svn/pristine/12/1260dd25f0b77d1694bc40d60681090fdb77e795.svn-base | 186 |
1 files changed, 0 insertions, 186 deletions
diff --git a/src/intersim2/.svn/pristine/12/1260dd25f0b77d1694bc40d60681090fdb77e795.svn-base b/src/intersim2/.svn/pristine/12/1260dd25f0b77d1694bc40d60681090fdb77e795.svn-base deleted file mode 100644 index 6488ea4..0000000 --- a/src/intersim2/.svn/pristine/12/1260dd25f0b77d1694bc40d60681090fdb77e795.svn-base +++ /dev/null @@ -1,186 +0,0 @@ -// $Id$ - -/* - Copyright (c) 2007-2012, Trustees of The Leland Stanford Junior University - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this - list of conditions and the following disclaimer in the documentation and/or - other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -#ifndef _POWER_MODULE_HPP_ -#define _POWER_MODULE_HPP_ - -#include <map> - -#include "module.hpp" -#include "network.hpp" -#include "config_utils.hpp" -#include "flitchannel.hpp" -#include "switch_monitor.hpp" -#include "buffer_monitor.hpp" - -struct wire{ - double L; - double K; - double M; - double N; -}; - -class Power_Module : public Module { - -protected: - //network undersimulation - Network * net; - int classes; - //all channels are this width - double channel_width; - //resimulate all with channel_width decremented by channel_sweep until 0 - double channel_sweep; - //write result to a tabbed format to file - string output_file_name; - - //buffer depth - double depthVC; - //vcs - double numVC; - - //store the property of wires based on length - map<double, wire> wire_map; - - //////////////////////////////////Constants///////////////////////////// - //wire length in (mm) - double wire_length; - //////////Metal Parameters//////////// - // Wire left/right coupling capacitance [ F/mm ] - double Cw_cpl ; - // Wire up/down groudn capacitance [ F/mm ] - double Cw_gnd ; - double Cw ; - double Rw ; - // metal pitch [mm] - double MetalPitch ; - - - //////////Device Parameters//////////// - - double LAMBDA ; // [um/LAMBDA] - double Cd ; // [F/um] (for Delay) - double Cg ; // [F/um] (for Delay) - double Cgdl ; // [F/um] (for Delay) - - double Cd_pwr; // [F/um] (for Power) - double Cg_pwr ; // [F/um] (for Power) - - double IoffN ; // [A/um] - double IoffP ; // [A/um] - // Leakage from bitlines, two-port cell [A] - double IoffSRAM; - // [Ohm] ( D1=1um Inverter) - double R ; - // [F] ( D1=1um Inverter - for Power ) - double Ci_delay; - // [F] ( D1=1um Inverter - for Power ) - double Co_delay ; - - double Ci ; - double Co ; - double Vdd ; - double FO4 ; - double tCLK ; - double fCLK ; - - double H_INVD2; - double W_INVD2; - double H_DFQD1; - double W_DFQD1; - double H_ND2D1; - double W_ND2D1; - double H_SRAM; - double W_SRAM; - double ChannelPitch ; - double CrossbarPitch; - ////////////////////////////////End of Constants///////////////////////////// - - /////////////results/////////////////// - double totalTime; - double channelWirePower; - double channelClkPower; - double channelDFFPower; - double channelLeakPower; - double inputReadPower; - double inputWritePower; - double inputLeakagePower; - double switchPower; - double switchPowerCtrl; - double switchPowerLeak; - double outputPower; - double outputPowerClk; - double outputCtrlPower; - double channelArea; - double switchArea; - double inputArea; - double outputArea; - double maxInputPort; - double maxOutputPort; - - - //////////////////////// - - //channels - void calcChannel(const FlitChannel * f); - wire const & wireOptimize(double l); - double powerRepeatedWire(double L, double K, double M, double N); - double powerRepeatedWireLeak (double K, double M, double N); - double powerWireClk (double M, double W); - double powerWireDFF(double M, double W, double alpha); - - //memory - void calcBuffer(const BufferMonitor *bm); - double powerWordLine(double memoryWidth, double memoryDepth); - double powerMemoryBitRead(double memoryDepth); - double powerMemoryBitWrite(double memoryDepth); - double powerMemoryBitLeak(double memoryDepth ); - - //switch - void calcSwitch(const SwitchMonitor *sm); - double powerCrossbar(double width, double inputs, double outputs, double from, double to); - double powerCrossbarCtrl(double width, double inputs, double outputs); - double powerCrossbarLeak (double width, double inputs, double outputs); - - //output - double powerOutputCtrl(double width); - - //area - - double areaChannel (double K, double N, double M); - double areaCrossbar(double Inputs, double Outputs) ; - double areaInputModule(double Words) ; - double areaOutputModule(double Outputs); - -public: - Power_Module(Network * net, const Configuration &config); - ~Power_Module(); - - void run(); - - -}; -#endif |
