1
0

fix combinational loop in NASTI -> HASTI converter

This commit is contained in:
Howard Mao 2016-07-15 18:45:37 -07:00
parent 897e6ccf8a
commit 59d700bf66

View File

@ -405,9 +405,8 @@ class HastiMasterIONastiIOConverter(implicit p: Parameters) extends HastiModule(
assert(!r_queue.io.enq.valid || r_queue.io.enq.ready, assert(!r_queue.io.enq.valid || r_queue.io.enq.ready,
"NASTI -> HASTI converter queue overflow") "NASTI -> HASTI converter queue overflow")
val next_count = r_queue.io.count + // How many read requests have we not delivered a response for yet?
r_queue.io.enq.valid - val pending_count = r_queue.io.count + rvalid
r_queue.io.deq.ready
io.hasti.haddr := addr io.hasti.haddr := addr
io.hasti.hsize := size io.hasti.hsize := size
@ -422,7 +421,7 @@ class HastiMasterIONastiIOConverter(implicit p: Parameters) extends HastiModule(
Mux(first, HTRANS_IDLE, HTRANS_BUSY)), Mux(first, HTRANS_IDLE, HTRANS_BUSY)),
s_read -> MuxCase(HTRANS_BUSY, Seq( s_read -> MuxCase(HTRANS_BUSY, Seq(
first -> HTRANS_NONSEQ, first -> HTRANS_NONSEQ,
(next_count <= UInt(1)) -> HTRANS_SEQ)))) (pending_count <= UInt(1)) -> HTRANS_SEQ))))
when (io.nasti.aw.fire()) { when (io.nasti.aw.fire()) {
first := Bool(true) first := Bool(true)