aboutsummaryrefslogtreecommitdiff
path: root/src/intersim2/.svn/pristine/5f
diff options
context:
space:
mode:
authorMyrice <[email protected]>2015-04-07 14:43:05 -0700
committerMyrice <[email protected]>2015-04-07 14:43:05 -0700
commit6b9eb92bd0b03d69a2f2e9c075a8af99d860d4d1 (patch)
treec741ac460cb86219446070765be97536143def55 /src/intersim2/.svn/pristine/5f
parent4dc9d53085b568aea0cefe75d599f87bb5e0841f (diff)
Booksim2 abandoned svn and moved to github (https://github.com/booksim/booksim2). This .svn folder is useless now and should be deleted.
For further integration, a git submodule/git subtree may be used. Since I modified their source code, we cannot use git submodule/git subtree easily. Signed-off-by: Myrice <[email protected]>
Diffstat (limited to 'src/intersim2/.svn/pristine/5f')
-rw-r--r--src/intersim2/.svn/pristine/5f/5f655d8c1cb25991e3f079611f3bad0ba05c6b6d.svn-base187
1 files changed, 0 insertions, 187 deletions
diff --git a/src/intersim2/.svn/pristine/5f/5f655d8c1cb25991e3f079611f3bad0ba05c6b6d.svn-base b/src/intersim2/.svn/pristine/5f/5f655d8c1cb25991e3f079611f3bad0ba05c6b6d.svn-base
deleted file mode 100644
index 44d597c..0000000
--- a/src/intersim2/.svn/pristine/5f/5f655d8c1cb25991e3f079611f3bad0ba05c6b6d.svn-base
+++ /dev/null
@@ -1,187 +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.
-*/
-
-////////////////////////////////////////////////////////////////////////
-//
-// QTree: A Quad-Tree Indirect Network.
-//
-//
-////////////////////////////////////////////////////////////////////////
-//
-// RCS Information:
-// $Author: jbalfour $
-// $Date: 2007/05/17 17:14:07 $
-// $Id$
-//
-////////////////////////////////////////////////////////////////////////
-
-#include "booksim.hpp"
-#include <vector>
-#include <sstream>
-#include "qtree.hpp"
-#include "misc_utils.hpp"
-
-QTree::QTree( const Configuration& config, const string & name )
-: Network ( config, name )
-{
- _ComputeSize( config );
- _Alloc( );
- _BuildNet( config );
-}
-
-
-void QTree::_ComputeSize( const Configuration& config )
-{
-
- _k = config.GetInt( "k" );
- _n = config.GetInt( "n" );
-
- assert( _k == 4 && _n == 3 );
-
- gK = _k; gN = _n;
-
- _nodes = powi( _k, _n );
-
- _size = 0;
- for (int i = 0; i < _n; i++)
- _size += powi( _k, i );
-
- _channels = 0;
- for (int j = 1; j < _n; j++)
- _channels += 2 * powi( _k, j );
-
-}
-
-void QTree::RegisterRoutingFunctions(){
-
-}
-
-void QTree::_BuildNet( const Configuration& config )
-{
-
- ostringstream routerName;
- int h, r, pos, port;
-
- for (h = 0; h < _n; h++) {
- for (pos = 0 ; pos < powi( _k, h ) ; ++pos ) {
-
- int id = h * 256 + pos;
- r = _RouterIndex( h, pos );
-
- routerName << "router_" << h << "_" << pos;
-
- int d = ( h == 0 ) ? _k : _k + 1;
- _routers[r] = Router::NewRouter( config, this,
- routerName.str( ),
- id, d, d);
- _timed_modules.push_back(_routers[r]);
- routerName.str("");
- }
- }
-
- // Injection & Ejection Channels
- for ( pos = 0 ; pos < powi( _k, _n-1 ) ; ++pos ) {
- r = _RouterIndex( _n-1, pos );
- for ( port = 0 ; port < _k ; port++ ) {
-
- _routers[r]->AddInputChannel( _inject[_k*pos+port],
- _inject_cred[_k*pos+port]);
-
- _routers[r]->AddOutputChannel( _eject[_k*pos+port],
- _eject_cred[_k*pos+port]);
- }
- }
-
- int c;
- for ( h = 0 ; h < _n ; ++h ) {
- for ( pos = 0 ; pos < powi( _k, h ) ; ++pos ) {
- for ( port = 0 ; port < _k ; port++ ) {
-
- r = _RouterIndex( h, pos );
-
- if ( h < _n-1 ) {
- // Channels to Children Nodes
- c = _InputIndex( h , pos, port );
- _routers[r]->AddInputChannel( _chan[c],
- _chan_cred[c] );
-
- c = _OutputIndex( h, pos, port );
- _routers[r]->AddOutputChannel( _chan[c],
- _chan_cred[c] );
-
- }
- }
- if ( h > 0 ) {
- // Channels to Parent Nodes
- c = _OutputIndex( h - 1, pos / _k, pos % _k );
- _routers[r]->AddInputChannel( _chan[c],
- _chan_cred[c] );
-
- c = _InputIndex( h - 1, pos / _k, pos % _k );
- _routers[r]->AddOutputChannel( _chan[c],
- _chan_cred[c]);
- }
- }
- }
-}
-
-int QTree::_RouterIndex( int height, int pos )
-{
- int r = 0;
- for ( int h = 0; h < height; h++ )
- r += powi( _k, h );
- return (r + pos);
-}
-
-int QTree::_InputIndex( int height, int pos, int port )
-{
- assert( height >= 0 && height < powi( _k,_n-1 ) );
- int c = 0;
- for ( int h = 0; h < height; h++)
- c += powi( _k, h+1 );
- return ( c + _k * pos + port );
-}
-
-int QTree::_OutputIndex( int height, int pos, int port )
-{
- assert( height >= 0 && height < powi( _k,_n-1 ) );
- int c = _channels / 2;
- for ( int h = 0; h < height; h++)
- c += powi( _k, h+1 );
- return ( c + _k * pos + port );
-}
-
-
-int QTree::HeightFromID( int id )
-{
- return id / 256;
-}
-
-int QTree::PosFromID( int id )
-{
- return id % 256;
-}