OpenCores
URL https://opencores.org/ocsvn/cryptosorter/cryptosorter/trunk

Subversion Repositories cryptosorter

[/] [cryptosorter/] [trunk/] [memocodeDesignContest2008/] [sort/] [mkBRAMLevel2MergerInstance.sched] - Rev 6

Compare with Previous | Blame | View Log

=== Generated schedule for mkBRAMLevel2MergerInstance ===

Method schedule
---------------
Method: inStream_getTokInfo
Ready signal: res_inFstHalf_finishInit && res_inSndHalf_finishInit
Conflict-free: inStream_getTokInfo,
               inStream_putDeqTok,
               inStream_putRecord,
               outStream_putTokInfo,
               outStream_getDeqTok_fst,
               outStream_getDeqTok_snd,
               outStream_getRecord_fst,
               outStream_getRecord_snd
 
Method: inStream_putDeqTok
Ready signal: res_inSndHalf_finishInit && res_inFstHalf_finishInit
Conflict-free: inStream_getTokInfo,
               inStream_putRecord,
               outStream_putTokInfo,
               outStream_getDeqTok_fst,
               outStream_getDeqTok_snd,
               outStream_getRecord_fst,
               outStream_getRecord_snd
Conflicts: inStream_putDeqTok
 
Method: inStream_putRecord
Ready signal: res_inSndHalf_finishInit && res_inFstHalf_finishInit
Conflict-free: inStream_getTokInfo,
               inStream_putDeqTok,
               outStream_putTokInfo,
               outStream_getDeqTok_fst,
               outStream_getDeqTok_snd,
               outStream_getRecord_fst,
               outStream_getRecord_snd
Conflicts: inStream_putRecord
 
Method: outStream_putTokInfo
Ready signal: True
Conflict-free: inStream_getTokInfo,
               inStream_putDeqTok,
               inStream_putRecord,
               outStream_getRecord_fst,
               outStream_getRecord_snd
Sequenced before (restricted): outStream_getDeqTok_fst,
                               outStream_getDeqTok_snd
Conflicts: outStream_putTokInfo
 
Method: outStream_getDeqTok_fst
Ready signal: res_getDeqTokW.whas && res_getDeqTokW.wget[1]
Conflict-free: inStream_getTokInfo,
               inStream_putDeqTok,
               inStream_putRecord,
               outStream_getDeqTok_fst,
               outStream_getDeqTok_snd,
               outStream_getRecord_fst,
               outStream_getRecord_snd
Sequenced after (restricted): outStream_putTokInfo
 
Method: outStream_getDeqTok_snd
Ready signal: res_getDeqTokW.whas && res_getDeqTokW.wget[1]
Conflict-free: inStream_getTokInfo,
               inStream_putDeqTok,
               inStream_putRecord,
               outStream_getDeqTok_fst,
               outStream_getDeqTok_snd,
               outStream_getRecord_fst,
               outStream_getRecord_snd
Sequenced after (restricted): outStream_putTokInfo
 
Method: outStream_getRecord_fst
Ready signal: res_outW.whas && res_outW.wget[130]
Conflict-free: inStream_getTokInfo,
               inStream_putDeqTok,
               inStream_putRecord,
               outStream_putTokInfo,
               outStream_getDeqTok_fst,
               outStream_getDeqTok_snd,
               outStream_getRecord_fst,
               outStream_getRecord_snd
 
Method: outStream_getRecord_snd
Ready signal: res_outW.whas && res_outW.wget[130]
Conflict-free: inStream_getTokInfo,
               inStream_putDeqTok,
               inStream_putRecord,
               outStream_putTokInfo,
               outStream_getDeqTok_fst,
               outStream_getDeqTok_snd,
               outStream_getRecord_fst,
               outStream_getRecord_snd
 
Rule schedule
-------------
Rule: res_compares
Predicate: res_inFstHalf_ugbram_bram.RDY_read_resp &&
           res_inSndHalf_ugbram_bram.RDY_read_resp &&
           res_inFstHalf_finishInit &&
           res_inSndHalf_finishInit && res_reqQ.i_notEmpty
Blocking rules: (none)
 
Rule: res_nextToProcess
Predicate: res_inFstHalf_finishInit &&
           res_inSndHalf_finishInit &&
           ((! res_scheduler_getNextW.whas) ||
            (! res_scheduler_getNextW.wget[1]) ||
            res_reqQ.i_notFull)
Blocking rules: (none)
 
Rule: res_feedScheduler
Predicate: (((res_nextTokW.whas
              ? res_nextTokW.wget[1:0]
              : _) ==
             2'd0) ||
            res_inFstHalf_finishInit) &&
           (((res_nextTokW.whas
              ? res_nextTokW.wget[1:0]
              : _) ==
             2'd0) ||
            ((res_scheduler_last[1]
              ? ! res_scheduler_last[0]
              : _)
             ? res_scheduler_last[1] || (res_inFstHalf_usedReg[2:0] == 3'd0)
             : (res_inFstHalf_usedReg[2:0] == 3'd0)) ||
            res_inSndHalf_finishInit) &&
           (((! ((res_nextTokW.whas
                  ? res_nextTokW.wget[1:0]
                  : _) ==
                 2'd0)) &&
             ((res_scheduler_last[1]
               ? ! res_scheduler_last[0]
               : _)
              ? (! res_scheduler_last[1]) &&
                (! (res_inFstHalf_usedReg[2:0] == 3'd0))
              : (! (res_inFstHalf_usedReg[2:0] == 3'd0))) &&
             (! (res_inSndHalf_usedReg[2:0] == 3'd0)))
            ? res_inFstHalf_finishInit && res_inSndHalf_finishInit
            : ((((res_nextTokW.whas
                  ? res_nextTokW.wget[3:2]
                  : _) ==
                 2'd0) ||
                res_inFstHalf_finishInit) &&
               (((res_nextTokW.whas
                  ? res_nextTokW.wget[3:2]
                  : _) ==
                 2'd0) ||
                ((res_scheduler_last[1]
                  ? res_scheduler_last[0]
                  : _)
                 ? res_scheduler_last[1] ||
                   ((res_scheduler_last[1]
                     ? ! res_scheduler_last[0]
                     : _)
                    ? res_inFstHalf_usedReg[2:0] == 3'd0
                    : (res_inFstHalf_usedReg[5:3] == 3'd0))
                 : (res_inFstHalf_usedReg[5:3] == 3'd0)) ||
                res_inSndHalf_finishInit)))
Blocking rules: (none)
 
Rule: res_inSndHalf_processDeq
Predicate: res_inSndHalf_finishInit &&
           res_inSndHalf_deqIdx.whas && res_inSndHalf_deqIdx.wget[1]
Blocking rules: (none)
 
Rule: res_inSndHalf_processFirstReq
Predicate: res_inSndHalf_finishInit &&
           res_inSndHalf_firstIdx.whas && res_inSndHalf_firstIdx.wget[1]
Blocking rules: (none)
 
Rule: res_inSndHalf_processEnq
Predicate: res_inSndHalf_finishInit &&
           res_inSndHalf_enqIdx.whas && res_inSndHalf_enqIdx.wget[1]
Blocking rules: (none)
 
Rule: res_inSndHalf_updateFreeReg
Predicate: res_inSndHalf_finishInit &&
           ((res_inSndHalf_decrFreeIdx.whas &&
             res_inSndHalf_decrFreeIdx.wget[1]) ||
            (res_inSndHalf_deqIdx.whas && res_inSndHalf_deqIdx.wget[1]))
Blocking rules: (none)
 
Rule: res_inSndHalf_updateUsedReg
Predicate: res_inSndHalf_finishInit &&
           ((res_inSndHalf_enqIdx.whas && res_inSndHalf_enqIdx.wget[1]) ||
            (res_inSndHalf_deqIdx.whas && res_inSndHalf_deqIdx.wget[1]))
Blocking rules: (none)
 
Rule: res_inSndHalf_initialization
Predicate: ! res_inSndHalf_finishInit
Blocking rules: (none)
 
Rule: res_inFstHalf_processDeq
Predicate: res_inFstHalf_finishInit &&
           res_inFstHalf_deqIdx.whas && res_inFstHalf_deqIdx.wget[1]
Blocking rules: (none)
 
Rule: res_inFstHalf_processFirstReq
Predicate: res_inFstHalf_finishInit &&
           res_inFstHalf_firstIdx.whas && res_inFstHalf_firstIdx.wget[1]
Blocking rules: (none)
 
Rule: res_inFstHalf_processEnq
Predicate: res_inFstHalf_finishInit &&
           res_inFstHalf_enqIdx.whas && res_inFstHalf_enqIdx.wget[1]
Blocking rules: (none)
 
Rule: res_inFstHalf_updateFreeReg
Predicate: res_inFstHalf_finishInit &&
           ((res_inFstHalf_decrFreeIdx.whas &&
             res_inFstHalf_decrFreeIdx.wget[1]) ||
            (res_inFstHalf_deqIdx.whas && res_inFstHalf_deqIdx.wget[1]))
Blocking rules: (none)
 
Rule: res_inFstHalf_updateUsedReg
Predicate: res_inFstHalf_finishInit &&
           ((res_inFstHalf_enqIdx.whas && res_inFstHalf_enqIdx.wget[1]) ||
            (res_inFstHalf_deqIdx.whas && res_inFstHalf_deqIdx.wget[1]))
Blocking rules: (none)
 
Rule: res_inFstHalf_initialization
Predicate: ! res_inFstHalf_finishInit
Blocking rules: (none)
 
Logical execution order: outStream_putTokInfo,
                         inStream_putRecord,
                         inStream_putDeqTok,
                         inStream_getTokInfo,
                         res_feedScheduler,
                         res_nextToProcess,
                         outStream_getDeqTok_snd,
                         outStream_getDeqTok_fst,
                         res_compares,
                         outStream_getRecord_snd,
                         outStream_getRecord_fst,
                         res_inSndHalf_processFirstReq,
                         res_inSndHalf_processDeq,
                         res_inSndHalf_updateFreeReg,
                         res_inSndHalf_updateUsedReg,
                         res_inSndHalf_processEnq,
                         res_inFstHalf_processFirstReq,
                         res_inSndHalf_initialization,
                         res_inFstHalf_processDeq,
                         res_inFstHalf_updateFreeReg,
                         res_inFstHalf_updateUsedReg,
                         res_inFstHalf_processEnq,
                         res_inFstHalf_initialization

==========================================================

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.