1
0

fix bug in coherence hub, specifically in abort handling logic

This commit is contained in:
Yunsup Lee 2012-03-20 00:18:32 -07:00
parent e38114e4b0
commit 5f69c5a764

View File

@ -648,11 +648,11 @@ class CoherenceHubBroadcast(ntiles: Int) extends CoherenceHub(ntiles) with FourS
is(s_abort_drain) { // raises x_init_data.ready below is(s_abort_drain) { // raises x_init_data.ready below
when(x_init_data.valid) { when(x_init_data.valid) {
abort_cnt := abort_cnt + UFix(1) abort_cnt := abort_cnt + UFix(1)
}
when(abort_cnt === ~UFix(0, width = log2up(REFILL_CYCLES))) { when(abort_cnt === ~UFix(0, width = log2up(REFILL_CYCLES))) {
abort_state_arr(j) := s_abort_send abort_state_arr(j) := s_abort_send
} }
} }
}
is(s_abort_send) { // nothing is dequeued for now is(s_abort_send) { // nothing is dequeued for now
x_abort.valid := Bool(true) x_abort.valid := Bool(true)
when(x_abort.ready) { when(x_abort.ready) {