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
==========================================================