From 7c384eaf7fca4cdeff085c7f219417229ff0aaab Mon Sep 17 00:00:00 2001 From: Blaise Tine Date: Mon, 9 Nov 2020 20:02:33 -0800 Subject: [PATCH] fixed snoop forwarding hang --- driver/opae/vlsim/Makefile | 4 ++-- hw/opae/README | 8 +------- hw/opae/vortex_afu.sv | 2 +- hw/rtl/VX_csr_io_arb.v | 2 +- hw/rtl/cache/VX_bank.v | 2 +- hw/rtl/cache/VX_snp_forwarder.v | 4 ++-- hw/rtl/cache/VX_snp_rsp_arb.v | 2 +- 7 files changed, 9 insertions(+), 15 deletions(-) diff --git a/driver/opae/vlsim/Makefile b/driver/opae/vlsim/Makefile index 7528e1ec..b85e98f9 100644 --- a/driver/opae/vlsim/Makefile +++ b/driver/opae/vlsim/Makefile @@ -20,8 +20,8 @@ DBG_FLAGS += $(DBG_PRINT_FLAGS) DBG_FLAGS += -DDBG_CORE_REQ_INFO #CONFIGS += -DNUM_CLUSTERS=2 -DNUM_CORES=4 -DL2_ENABLE=1 -DL3_ENABLE=1 -CONFIGS += -DNUM_CLUSTERS=1 -DNUM_CORES=2 -DL2_ENABLE=1 -#CONFIGS += -DNUM_CLUSTERS=1 -DNUM_CORES=2 -DL2_ENABLE=0 +#CONFIGS += -DNUM_CLUSTERS=1 -DNUM_CORES=2 -DL2_ENABLE=1 +CONFIGS += -DNUM_CLUSTERS=1 -DNUM_CORES=2 -DL2_ENABLE=0 #CONFIGS += -DNUM_CLUSTERS=1 -DNUM_CORES=1 #DEBUG=1 diff --git a/hw/opae/README b/hw/opae/README index 785dfa5c..8004c03d 100644 --- a/hw/opae/README +++ b/hw/opae/README @@ -112,10 +112,4 @@ make -C top clean && make -C top > top/build.log 2>&1 & if slack = +1.664 -> minimal period = 5-1.664 = 3.336 -> fmax = 1/3.336 = 300 Mhz # build rtlsim from driver tests -make -C ../../rtlsim clean && reset && make -C ../../rtlsim - -# split tar into multiple parts -split -b 50M home.tar.bz2 "home.tar.bz2.part" - - -cat run.log | grep -c "cache[0-9]*:[0-9]* dram_req" \ No newline at end of file +make -C ../../rtlsim clean && reset && make -C ../../rtlsim \ No newline at end of file diff --git a/hw/opae/vortex_afu.sv b/hw/opae/vortex_afu.sv index 663bbe30..2d12a796 100644 --- a/hw/opae/vortex_afu.sv +++ b/hw/opae/vortex_afu.sv @@ -953,7 +953,7 @@ always @(posedge clk) begin end end -// CSRs/////////////////////////////////////////////////////////////////////// +// CSRs /////////////////////////////////////////////////////////////////////// reg csr_io_req_sent; diff --git a/hw/rtl/VX_csr_io_arb.v b/hw/rtl/VX_csr_io_arb.v index 9dace0a6..facd417d 100644 --- a/hw/rtl/VX_csr_io_arb.v +++ b/hw/rtl/VX_csr_io_arb.v @@ -49,7 +49,7 @@ module VX_csr_io_arb #( wire [REQS_BITS-1:0] rsp_idx; wire [NUM_REQUESTS-1:0] rsp_1hot; - VX_fixed_arbiter #( + VX_rr_arbiter #( .N(NUM_REQUESTS) ) rsp_arb ( .clk (clk), diff --git a/hw/rtl/cache/VX_bank.v b/hw/rtl/cache/VX_bank.v index 2b44d95a..60d8fe16 100644 --- a/hw/rtl/cache/VX_bank.v +++ b/hw/rtl/cache/VX_bank.v @@ -788,7 +788,7 @@ module VX_bank #( VX_generic_queue #( .DATAW(SNP_REQ_TAG_WIDTH), .SIZE(SNPQ_SIZE) - ) snp_queue ( + ) snp_rsp_queue ( .clk (clk), .reset (reset), .push (snpq_push), diff --git a/hw/rtl/cache/VX_snp_forwarder.v b/hw/rtl/cache/VX_snp_forwarder.v index 8c3f23c8..d1aab523 100644 --- a/hw/rtl/cache/VX_snp_forwarder.v +++ b/hw/rtl/cache/VX_snp_forwarder.v @@ -57,7 +57,7 @@ module VX_snp_forwarder #( assign sfq_read_addr = fwdin_tag; assign sfq_acquire = snp_req_valid && !sfq_full && fwdout_ready; - assign sfq_release = snp_rsp_valid; + assign sfq_release = snp_rsp_valid && snp_rsp_ready; VX_cam_buffer #( .DATAW (`DRAM_ADDR_WIDTH + 1 + SNP_REQ_TAG_WIDTH), @@ -98,7 +98,7 @@ module VX_snp_forwarder #( wire [`REQS_BITS-1:0] sel_idx; wire [NUM_REQUESTS-1:0] sel_1hot; - VX_fixed_arbiter #( + VX_rr_arbiter #( .N(NUM_REQUESTS) ) sel_arb ( .clk (clk), diff --git a/hw/rtl/cache/VX_snp_rsp_arb.v b/hw/rtl/cache/VX_snp_rsp_arb.v index ebd40db1..81a7a582 100644 --- a/hw/rtl/cache/VX_snp_rsp_arb.v +++ b/hw/rtl/cache/VX_snp_rsp_arb.v @@ -21,7 +21,7 @@ module VX_snp_rsp_arb #( wire [`BANK_BITS-1:0] sel_idx; wire [NUM_BANKS-1:0] sel_1hot; - VX_fixed_arbiter #( + VX_rr_arbiter #( .N(NUM_BANKS) ) sel_arb ( .clk (clk),