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