# Copyright (c) 2010 Massachusetts Institute of Technology # 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; # neither the name of the copyright holders nor the names of its # contributors may be used to endorse or promote products derived from # this software without specific prior written permission. # # 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. # # Authors: Chia-Hsin Owen Chen # Technology related parameters # technology node in nm (90, 65, 45, 32) TECH_NODE = 65 # transistor type (HVT, NVT, LVT) TRANSISTOR_TYPE = NVT # operating voltage supply in volt VDD = 1.0 # operating frequency in Hz FREQUENCY = 1.0e9 # router module parameters # general parameters # number of router input ports NUM_INPUT_PORT = 0 # number of router output ports NUM_OUTPUT_PORT = 0 # flit width in bit FLIT_WIDTH = 0 # virtual channel parameters # number of message classes per port NUM_VIRTUAL_CLASS = 0 # number of virtual channels per message class NUM_VIRTUAL_CHANNEL = 0 # Are input virtual channels managed in a shared buffer? (Private buffer otherwise) IS_IN_SHARED_BUFFER = FALSE # Are output virtual channels managed in a shared buffer? (Private buffer otherwise) IS_OUT_SHARED_BUFFER = FALSE # Are input virtual channels sharing the same crossbar input ports? IS_IN_SHARED_SWITCH = TRUE # Are output virtual channels sharing the same crossbar output ports? IS_OUT_SHARED_SWITCH = TRUE # crossbar parameters # crossbar model CROSSBAR_MODEL = MULTREE_CROSSBAR CROSSBAR_CONNECT_TYPE = TRISTATE_GATE CROSSBAR_TRANS_GATE_TYPE = NP_GATE CROSSBAR_MUX_DEGREE = 4 CROSSBAR_NUM_IN_SEG = 1 CROSSBAR_NUM_OUT_SEG = 1 # crossbar input line length CROSSBAR_LEN_IN_WIRE = 0 # crossbar output line length CROSSBAR_LEN_OUT_WIRE = 0 # input buffer parameters IS_INPUT_BUFFER = TRUE # input buffer model (SRAM, REGISTER) IN_BUF_MODEL = REGISTER IN_BUF_NUM_SET = 0 IN_BUF_NUM_READ_PORT = 1 # output buffer parameters */ IS_OUTPUT_BUFFER = FALSE # output buffer model (SRAM, REGISTER) OUT_BUF_MODEL = SRAM OUT_BUF_NUM_SET = 0 OUT_BUF_NUM_WRITE_PORT = 0 # array parameters shared by various sram buffers SRAM_ROWDEC_MODEL = GENERIC_DEC SRAM_ROWDEC_PRE_MODEL = SINGLE_OTHER SRAM_WORDLINE_MODEL = RW_WORDLINE SRAM_BITLINE_MODEL = RW_BITLINE SRAM_OUTDRV_MODEL = REG_OUTDRV # these 3 should be changed together # use double-ended bitline because the array is too large SRAM_NUM_DATA_END = 2 SRAM_AMP_MODEL = GENERIC_AMP SRAM_BITLINE_PRE_MODEL = EQU_BITLINE # SRAM_NUM_DATA_END = 1 # SRAM_AMP_MODEL = NO_MODEL # SRAM_BITLINE_PRE_MODEL = SINGLE_OTHER # switch allocator arbiter parameters # arbiter mode (MATRIX_ARBITER, RR_ARBITER) SA_IN_ARB_MODEL = RR_ARBITER # flip-flop model SA_IN_ARB_FF_MODEL = NEG_DFF # arbiter mode (MATRIX_ARBITER, RR_ARBITER) SA_OUT_ARB_MODEL = MATRIX_ARBITER # flip-flop model SA_OUT_ARB_FF_MODEL = NEG_DFF # virtual channel allocator arbiter parameters # allocator model (ONE_STAGE_ARB, TWO_STAGE_ARB, VC_SELECT) VA_MODEL = TWO_STAGE_ARB # arbiter mode (MATRIX_ARBITER, RR_ARBITER) VA_IN_ARB_MODEL = RR_ARBITER # flip-flop model VA_IN_ARB_FF_MODEL = NEG_DFF # arbiter mode (MATRIX_ARBITER, RR_ARBITER) VA_OUT_ARB_MODEL = MATRIX_ARBITER # flip-flop model VA_OUT_ARB_FF_MODEL = NEG_DFF # buffer model if VC_SELECT is used (SRAM, REGISTER) VA_BUF_MODEL = REGISTER # link wire parameters #link length in metres LINK_LENGTH = 1e-3 # wire layer model (INTERMEDIATE, GLOBAL) WIRE_LAYER_TYPE = GLOBAL # wire width spacing (SWIDTH_SSPACE, SWIDTH_DSPACE, DWIDTH_SSPACE, DWIDTH_DSPACE) WIRE_WIDTH_SPACING = DWIDTH_DSPACE # buffering model (MIN_DELAY, STAGGERED) WIRE_BUFFERING_MODEL = MIN_DELAY # is shielding WIRE_IS_SHIELDING = FALSE # clock power parameters NUM_PIPELINE_STAGE = 3 IS_HTREE_CLOCK = FALSE # router diagonal in um ROUTER_DIAGONAL = 442