aboutsummaryrefslogtreecommitdiff
path: root/src/intersim2/.svn/pristine/1a
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/1a
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/1a')
-rw-r--r--src/intersim2/.svn/pristine/1a/1abf005acda7eb93dad10f55694f27a84ba74f91.svn-base111
-rw-r--r--src/intersim2/.svn/pristine/1a/1afc46cd26811b568cd238a5bb6cf4a3e9687edf.svn-base54
2 files changed, 0 insertions, 165 deletions
diff --git a/src/intersim2/.svn/pristine/1a/1abf005acda7eb93dad10f55694f27a84ba74f91.svn-base b/src/intersim2/.svn/pristine/1a/1abf005acda7eb93dad10f55694f27a84ba74f91.svn-base
deleted file mode 100644
index cae1e45..0000000
--- a/src/intersim2/.svn/pristine/1a/1abf005acda7eb93dad10f55694f27a84ba74f91.svn-base
+++ /dev/null
@@ -1,111 +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.
-*/
-
-/*wavefront.cpp
- *
- *The wave front allocator
- *
- */
-#include "booksim.hpp"
-
-#include "wavefront.hpp"
-
-Wavefront::Wavefront( Module *parent, const string& name,
- int inputs, int outputs, bool skip_diags ) :
- DenseAllocator( parent, name, inputs, outputs ),
- _last_in(-1), _last_out(-1), _skip_diags(skip_diags),
- _square(max(inputs, outputs)), _pri(0), _num_requests(0)
-{
-}
-
-void Wavefront::AddRequest( int in, int out, int label,
- int in_pri, int out_pri )
-{
- DenseAllocator::AddRequest(in, out, label, in_pri, out_pri);
- _num_requests++;
- _last_in = in;
- _last_out = out;
- _priorities.insert(make_pair(out_pri, in_pri));
-}
-
-void Wavefront::Allocate( )
-{
-
- int first_diag = -1;
-
- if(_num_requests == 0)
-
- // bypass allocator completely if there were no requests
- return;
-
- if(_num_requests == 1) {
-
- // if we only had a single request, we can immediately grant it
- _inmatch[_last_in] = _last_out;
- _outmatch[_last_out] = _last_in;
- first_diag = _last_in + _last_out;
-
- } else {
-
- // otherwise we have to loop through the diagonals of request matrix
-
- for(set<pair<int, int> >::const_reverse_iterator iter =
- _priorities.rbegin();
- iter != _priorities.rend(); ++iter) {
-
- for ( int p = 0; p < _square; ++p ) {
- for ( int output = 0; output < _square; ++output ) {
- int input = ( ( _pri + p ) + ( _square - output ) ) % _square;
- if ( ( input < _inputs ) && ( output < _outputs ) &&
- ( _inmatch[input] == -1 ) && ( _outmatch[output] == -1 ) &&
- ( _request[input][output].label != -1 ) &&
- ( _request[input][output].in_pri == iter->second ) &&
- ( _request[input][output].out_pri == iter->first ) ) {
- // Grant!
- _inmatch[input] = output;
- _outmatch[output] = input;
- if(first_diag < 0) {
- first_diag = input + output;
- }
- }
- }
- }
- }
- }
-
- _num_requests = 0;
- _last_in = -1;
- _last_out = -1;
- _priorities.clear();
-
- assert(first_diag >= 0);
-
- // Round-robin the priority diagonal
- _pri = ( ( _skip_diags ? first_diag : _pri ) + 1 ) % _square;
-}
-
-
diff --git a/src/intersim2/.svn/pristine/1a/1afc46cd26811b568cd238a5bb6cf4a3e9687edf.svn-base b/src/intersim2/.svn/pristine/1a/1afc46cd26811b568cd238a5bb6cf4a3e9687edf.svn-base
deleted file mode 100644
index 4df14c7..0000000
--- a/src/intersim2/.svn/pristine/1a/1afc46cd26811b568cd238a5bb6cf4a3e9687edf.svn-base
+++ /dev/null
@@ -1,54 +0,0 @@
-%{
-
-#include "y.tab.h"
-
-static unsigned int lineno = 1;
-
-void config_error(char * msg, int lineno);
-void yyerror(char * msg);
-
-extern int config_input(char *, int);
-#undef YY_INPUT
-#define YY_INPUT(b, r, ms) (r = config_input(b, ms))
-
-%}
-
-Digit [0-9]
-Exponent [eE][+-]?{Digit}+
-DblConst ({Digit}*\.)?{Digit}+{Exponent}?
-StrConst [A-Za-z_\-/\.][A-Za-z0-9_\-/\.\+(\{\,)\}]*
-
-%%
-
- /* Ignore comments and all spaces */
-
-\/\/[^\n]* ;
-[ \t\r]* ;
-
-\n { lineno++; }
-
- /* Commands */
-
-\{[A-Za-z0-9_\-\.(\{\,)\}]+(\,[A-Za-z0-9_\-\.(\{\,)\}]+)*\} { yylval.name = strdup( yytext ); return STR; }
-
--?[0-9]+ { yylval.num = atoi( yytext ); return NUM; }
-
--?[0-9]*\.[0-9]+ { yylval.fnum = atof( yytext ); return FNUM; }
-
--?{DblConst} { yylval.fnum = atof( yytext ); return FNUM;}
-
-{StrConst} { yylval.name = strdup( yytext ); return STR; }
-
-. { return yytext[0]; }
-
-%%
-
-void yyerror( char * msg )
-{
- config_error( msg, lineno );
-}
-
-int yywrap()
-{
- return 1;
-}