From d3f0a77ae50960ca8405e1aab0a8731827360768 Mon Sep 17 00:00:00 2001 From: Blaise Tine Date: Sun, 23 May 2021 10:57:02 -0700 Subject: [PATCH] fixed databus arbiter bug --- hw/rtl/VX_databus_arb.v | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hw/rtl/VX_databus_arb.v b/hw/rtl/VX_databus_arb.v index 6a77f385..e797b75a 100644 --- a/hw/rtl/VX_databus_arb.v +++ b/hw/rtl/VX_databus_arb.v @@ -54,10 +54,11 @@ module VX_databus_arb ( if (`SM_ENABLE ) begin assign cache_req_if.valid[i] = cache_req_valid_out && ~is_smem_addr_out; assign smem_req_if.valid[i] = cache_req_valid_out && is_smem_addr_out; - assign cache_req_ready_out = is_smem_addr_out ? smem_req_if.ready[i] : cache_req_if.ready[i]; + assign cache_req_ready_out = (cache_req_if.ready[i] && ~is_smem_addr_out) + || (smem_req_if.ready[i] && is_smem_addr_out); assign smem_req_if.addr[i] = cache_req_if.addr[i]; - assign smem_req_if.rw[i] = cache_req_if.rw[i]; + assign smem_req_if.rw[i] = cache_req_if.rw[i]; assign smem_req_if.byteen[i] = cache_req_if.byteen[i]; assign smem_req_if.data[i] = cache_req_if.data[i]; assign smem_req_if.tag[i] = cache_req_if.tag[i];