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

Subversion Repositories cryptosorter

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

Compare with Previous | Blame | View Log

=== Generated schedule for mkBRAMLevel3MergerInstance ===

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[2]
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[2]
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[131]
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[131]
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[2]) ||
            res_reqQ.i_notFull)
Blocking rules: (none)
 
Rule: res_feedScheduler
Predicate: (((res_nextTokW.whas
              ? res_nextTokW.wget[2:0]
              : _) ==
             3'd0) ||
            res_inFstHalf_finishInit) &&
           (((res_nextTokW.whas
              ? res_nextTokW.wget[2:0]
              : _) ==
             3'd0) ||
            (((res_scheduler_last[2]
               ? res_scheduler_last[1:0]
               : _) ==
              2'd0)
             ? res_scheduler_last[2] || (res_inFstHalf_usedReg[2:0] == 3'd0)
             : (res_inFstHalf_usedReg[2:0] == 3'd0)) ||
            res_inSndHalf_finishInit) &&
           (((! ((res_nextTokW.whas
                  ? res_nextTokW.wget[2:0]
                  : _) ==
                 3'd0)) &&
             (((res_scheduler_last[2]
                ? res_scheduler_last[1:0]
                : _) ==
               2'd0)
              ? (! res_scheduler_last[2]) &&
                (((res_scheduler_last[2]
                   ? res_scheduler_last[1:0]
                   : _) ==
                  2'd0)
                 ? ! (res_inFstHalf_usedReg[2:0] == 3'd0)
                 : (((res_scheduler_last[2]
                      ? res_scheduler_last[1:0]
                      : _) ==
                     2'd1)
                    ? ! (res_inFstHalf_usedReg[5:3] == 3'd0)
                    : (((res_scheduler_last[2]
                         ? res_scheduler_last[1:0]
                         : _) ==
                        2'd2)
                       ? ! (res_inFstHalf_usedReg[8:6] == 3'd0)
                       : (((res_scheduler_last[2]
                            ? res_scheduler_last[1:0]
                            : _) ==
                           2'd3)
                          ? ! (res_inFstHalf_usedReg[11:9] == 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[5:3]
                  : _) ==
                 3'd0) ||
                res_inFstHalf_finishInit) &&
               (((res_nextTokW.whas
                  ? res_nextTokW.wget[5:3]
                  : _) ==
                 3'd0) ||
                (((res_scheduler_last[2]
                   ? res_scheduler_last[1:0]
                   : _) ==
                  2'd1)
                 ? res_scheduler_last[2] ||
                   (res_inFstHalf_usedReg[5:3] == 3'd0)
                 : (res_inFstHalf_usedReg[5:3] == 3'd0)) ||
                res_inSndHalf_finishInit))) &&
           (((! ((res_nextTokW.whas
                  ? res_nextTokW.wget[2:0]
                  : _) ==
                 3'd0)) &&
             (((res_scheduler_last[2]
                ? res_scheduler_last[1:0]
                : _) ==
               2'd0)
              ? (! res_scheduler_last[2]) &&
                (((res_scheduler_last[2]
                   ? res_scheduler_last[1:0]
                   : _) ==
                  2'd0)
                 ? ! (res_inFstHalf_usedReg[2:0] == 3'd0)
                 : (((res_scheduler_last[2]
                      ? res_scheduler_last[1:0]
                      : _) ==
                     2'd1)
                    ? ! (res_inFstHalf_usedReg[5:3] == 3'd0)
                    : (((res_scheduler_last[2]
                         ? res_scheduler_last[1:0]
                         : _) ==
                        2'd2)
                       ? ! (res_inFstHalf_usedReg[8:6] == 3'd0)
                       : (((res_scheduler_last[2]
                            ? res_scheduler_last[1:0]
                            : _) ==
                           2'd3)
                          ? ! (res_inFstHalf_usedReg[11:9] == 3'd0)
                          : _))))
              : (! (res_inFstHalf_usedReg[2:0] == 3'd0))) &&
             (! (res_inSndHalf_usedReg[2:0] == 3'd0))) ||
            ((! ((res_nextTokW.whas
                  ? res_nextTokW.wget[5:3]
                  : _) ==
                 3'd0)) &&
             (((res_scheduler_last[2]
                ? res_scheduler_last[1:0]
                : _) ==
               2'd1)
              ? (! res_scheduler_last[2]) &&
                (((res_scheduler_last[2]
                   ? res_scheduler_last[1:0]
                   : _) ==
                  2'd0)
                 ? ! (res_inFstHalf_usedReg[2:0] == 3'd0)
                 : (((res_scheduler_last[2]
                      ? res_scheduler_last[1:0]
                      : _) ==
                     2'd1)
                    ? ! (res_inFstHalf_usedReg[5:3] == 3'd0)
                    : (((res_scheduler_last[2]
                         ? res_scheduler_last[1:0]
                         : _) ==
                        2'd2)
                       ? ! (res_inFstHalf_usedReg[8:6] == 3'd0)
                       : (((res_scheduler_last[2]
                            ? res_scheduler_last[1:0]
                            : _) ==
                           2'd3)
                          ? ! (res_inFstHalf_usedReg[11:9] == 3'd0)
                          : _))))
              : (! (res_inFstHalf_usedReg[5:3] == 3'd0))) &&
             (! (res_inSndHalf_usedReg[5:3] == 3'd0))) ||
            ((((res_nextTokW.whas
                ? res_nextTokW.wget[8:6]
                : _) ==
               3'd0) ||
              res_inFstHalf_finishInit) &&
             (((res_nextTokW.whas
                ? res_nextTokW.wget[8:6]
                : _) ==
               3'd0) ||
              (((res_scheduler_last[2]
                 ? res_scheduler_last[1:0]
                 : _) ==
                2'd2)
               ? res_scheduler_last[2] || (res_inFstHalf_usedReg[8:6] == 3'd0)
               : (res_inFstHalf_usedReg[8:6] == 3'd0)) ||
              res_inSndHalf_finishInit) &&
             (((! ((res_nextTokW.whas
                    ? res_nextTokW.wget[8:6]
                    : _) ==
                   3'd0)) &&
               (((res_scheduler_last[2]
                  ? res_scheduler_last[1:0]
                  : _) ==
                 2'd2)
                ? (! res_scheduler_last[2]) &&
                  (((res_scheduler_last[2]
                     ? res_scheduler_last[1:0]
                     : _) ==
                    2'd0)
                   ? ! (res_inFstHalf_usedReg[2:0] == 3'd0)
                   : (((res_scheduler_last[2]
                        ? res_scheduler_last[1:0]
                        : _) ==
                       2'd1)
                      ? ! (res_inFstHalf_usedReg[5:3] == 3'd0)
                      : (((res_scheduler_last[2]
                           ? res_scheduler_last[1:0]
                           : _) ==
                          2'd2)
                         ? ! (res_inFstHalf_usedReg[8:6] == 3'd0)
                         : (((res_scheduler_last[2]
                              ? res_scheduler_last[1:0]
                              : _) ==
                             2'd3)
                            ? ! (res_inFstHalf_usedReg[11:9] == 3'd0)
                            : _))))
                : (! (res_inFstHalf_usedReg[8:6] == 3'd0))) &&
               (! (res_inSndHalf_usedReg[8:6] == 3'd0)))
              ? res_inFstHalf_finishInit && res_inSndHalf_finishInit
              : ((((res_nextTokW.whas
                    ? res_nextTokW.wget[11:9]
                    : _) ==
                   3'd0) ||
                  res_inFstHalf_finishInit) &&
                 (((res_nextTokW.whas
                    ? res_nextTokW.wget[11:9]
                    : _) ==
                   3'd0) ||
                  (((res_scheduler_last[2]
                     ? res_scheduler_last[1:0]
                     : _) ==
                    2'd3)
                   ? res_scheduler_last[2] ||
                     (res_inFstHalf_usedReg[11:9] == 3'd0)
                   : (res_inFstHalf_usedReg[11:9] == 3'd0)) ||
                  res_inSndHalf_finishInit))))) &&
           (((((res_nextTokW.whas
                ? res_nextTokW.wget[2:0]
                : _) ==
               3'd0) ||
              (((res_scheduler_last[2]
                 ? res_scheduler_last[1:0]
                 : _) ==
                2'd0)
               ? res_scheduler_last[2] || (res_inFstHalf_usedReg[2:0] == 3'd0)
               : (res_inFstHalf_usedReg[2:0] == 3'd0)) ||
              (res_inSndHalf_usedReg[2:0] == 3'd0)) &&
             (((res_nextTokW.whas
                ? res_nextTokW.wget[5:3]
                : _) ==
               3'd0) ||
              (((res_scheduler_last[2]
                 ? res_scheduler_last[1:0]
                 : _) ==
                2'd1)
               ? res_scheduler_last[2] || (res_inFstHalf_usedReg[5:3] == 3'd0)
               : (res_inFstHalf_usedReg[5:3] == 3'd0)) ||
              (res_inSndHalf_usedReg[5:3] == 3'd0)) &&
             (((res_nextTokW.whas
                ? res_nextTokW.wget[8:6]
                : _) ==
               3'd0) ||
              (((res_scheduler_last[2]
                 ? res_scheduler_last[1:0]
                 : _) ==
                2'd2)
               ? res_scheduler_last[2] || (res_inFstHalf_usedReg[8:6] == 3'd0)
               : (res_inFstHalf_usedReg[8:6] == 3'd0)) ||
              (res_inSndHalf_usedReg[8:6] == 3'd0)) &&
             (((res_nextTokW.whas
                ? res_nextTokW.wget[11:9]
                : _) ==
               3'd0) ||
              (((res_scheduler_last[2]
                 ? res_scheduler_last[1:0]
                 : _) ==
                2'd3)
               ? res_scheduler_last[2] ||
                 (res_inFstHalf_usedReg[11:9] == 3'd0)
               : (res_inFstHalf_usedReg[11:9] == 3'd0)) ||
              (res_inSndHalf_usedReg[11:9] == 3'd0))) ||
            ((! ((res_nextTokW.whas
                  ? res_nextTokW.wget[2:0]
                  : _) ==
                 3'd0)) &&
             (((res_scheduler_last[2]
                ? res_scheduler_last[1:0]
                : _) ==
               2'd0)
              ? (! res_scheduler_last[2]) &&
                (((res_scheduler_last[2]
                   ? res_scheduler_last[1:0]
                   : _) ==
                  2'd0)
                 ? ! (res_inFstHalf_usedReg[2:0] == 3'd0)
                 : (((res_scheduler_last[2]
                      ? res_scheduler_last[1:0]
                      : _) ==
                     2'd1)
                    ? ! (res_inFstHalf_usedReg[5:3] == 3'd0)
                    : (((res_scheduler_last[2]
                         ? res_scheduler_last[1:0]
                         : _) ==
                        2'd2)
                       ? ! (res_inFstHalf_usedReg[8:6] == 3'd0)
                       : (((res_scheduler_last[2]
                            ? res_scheduler_last[1:0]
                            : _) ==
                           2'd3)
                          ? ! (res_inFstHalf_usedReg[11:9] == 3'd0)
                          : _))))
              : (! (res_inFstHalf_usedReg[2:0] == 3'd0))) &&
             (! (res_inSndHalf_usedReg[2:0] == 3'd0))) ||
            ((! ((res_nextTokW.whas
                  ? res_nextTokW.wget[5:3]
                  : _) ==
                 3'd0)) &&
             (((res_scheduler_last[2]
                ? res_scheduler_last[1:0]
                : _) ==
               2'd1)
              ? (! res_scheduler_last[2]) &&
                (((res_scheduler_last[2]
                   ? res_scheduler_last[1:0]
                   : _) ==
                  2'd0)
                 ? ! (res_inFstHalf_usedReg[2:0] == 3'd0)
                 : (((res_scheduler_last[2]
                      ? res_scheduler_last[1:0]
                      : _) ==
                     2'd1)
                    ? ! (res_inFstHalf_usedReg[5:3] == 3'd0)
                    : (((res_scheduler_last[2]
                         ? res_scheduler_last[1:0]
                         : _) ==
                        2'd2)
                       ? ! (res_inFstHalf_usedReg[8:6] == 3'd0)
                       : (((res_scheduler_last[2]
                            ? res_scheduler_last[1:0]
                            : _) ==
                           2'd3)
                          ? ! (res_inFstHalf_usedReg[11:9] == 3'd0)
                          : _))))
              : (! (res_inFstHalf_usedReg[5:3] == 3'd0))) &&
             (! (res_inSndHalf_usedReg[5:3] == 3'd0))) ||
            ((((res_nextTokW.whas
                ? res_nextTokW.wget[8:6]
                : _) ==
               3'd0) ||
              res_inFstHalf_finishInit) &&
             (((res_nextTokW.whas
                ? res_nextTokW.wget[8:6]
                : _) ==
               3'd0) ||
              (((res_scheduler_last[2]
                 ? res_scheduler_last[1:0]
                 : _) ==
                2'd2)
               ? res_scheduler_last[2] || (res_inFstHalf_usedReg[8:6] == 3'd0)
               : (res_inFstHalf_usedReg[8:6] == 3'd0)) ||
              res_inSndHalf_finishInit)))
Blocking rules: (none)
 
Rule: res_inSndHalf_processDeq
Predicate: res_inSndHalf_finishInit &&
           res_inSndHalf_deqIdx.whas && res_inSndHalf_deqIdx.wget[2]
Blocking rules: (none)
 
Rule: res_inSndHalf_processFirstReq
Predicate: res_inSndHalf_finishInit &&
           res_inSndHalf_firstIdx.whas && res_inSndHalf_firstIdx.wget[2]
Blocking rules: (none)
 
Rule: res_inSndHalf_processEnq
Predicate: res_inSndHalf_finishInit &&
           res_inSndHalf_enqIdx.whas && res_inSndHalf_enqIdx.wget[2]
Blocking rules: (none)
 
Rule: res_inSndHalf_updateFreeReg
Predicate: res_inSndHalf_finishInit &&
           ((res_inSndHalf_decrFreeIdx.whas &&
             res_inSndHalf_decrFreeIdx.wget[2]) ||
            (res_inSndHalf_deqIdx.whas && res_inSndHalf_deqIdx.wget[2]))
Blocking rules: (none)
 
Rule: res_inSndHalf_updateUsedReg
Predicate: res_inSndHalf_finishInit &&
           ((res_inSndHalf_enqIdx.whas && res_inSndHalf_enqIdx.wget[2]) ||
            (res_inSndHalf_deqIdx.whas && res_inSndHalf_deqIdx.wget[2]))
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[2]
Blocking rules: (none)
 
Rule: res_inFstHalf_processFirstReq
Predicate: res_inFstHalf_finishInit &&
           res_inFstHalf_firstIdx.whas && res_inFstHalf_firstIdx.wget[2]
Blocking rules: (none)
 
Rule: res_inFstHalf_processEnq
Predicate: res_inFstHalf_finishInit &&
           res_inFstHalf_enqIdx.whas && res_inFstHalf_enqIdx.wget[2]
Blocking rules: (none)
 
Rule: res_inFstHalf_updateFreeReg
Predicate: res_inFstHalf_finishInit &&
           ((res_inFstHalf_decrFreeIdx.whas &&
             res_inFstHalf_decrFreeIdx.wget[2]) ||
            (res_inFstHalf_deqIdx.whas && res_inFstHalf_deqIdx.wget[2]))
Blocking rules: (none)
 
Rule: res_inFstHalf_updateUsedReg
Predicate: res_inFstHalf_finishInit &&
           ((res_inFstHalf_enqIdx.whas && res_inFstHalf_enqIdx.wget[2]) ||
            (res_inFstHalf_deqIdx.whas && res_inFstHalf_deqIdx.wget[2]))
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.