From 85bb5cd68fefc859e0b12d785c44dfa9d602abc1 Mon Sep 17 00:00:00 2001 From: Michael Rogenmoser Date: Fri, 10 Jul 2026 16:26:19 +0200 Subject: [PATCH 1/3] Don't mix continuous and procedural connections --- src/obi_demux.sv | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/obi_demux.sv b/src/obi_demux.sv index fa9c37d..e8d20f5 100644 --- a/src/obi_demux.sv +++ b/src/obi_demux.sv @@ -41,6 +41,8 @@ module obi_demux #( logic sbr_port_gnt; logic sbr_port_rready; logic rsp_phase_stalled; + logic [NumMgrPorts-1:0] mgr_reqs; + logic [NumMgrPorts-1:0] mgr_connect; select_t select_d, select_q; @@ -48,8 +50,8 @@ module obi_demux #( select_d = select_q; cnt_up = 1'b0; for (int i = 0; i < NumMgrPorts; i++) begin - mgr_ports_req_o[i].req = 1'b0; - mgr_ports_req_o[i].a = '0; + mgr_reqs[i] = 1'b0; + mgr_connect[i] = 1'b0; end sbr_port_gnt = 1'b0; @@ -57,9 +59,9 @@ module obi_demux #( // R-4.1.1: block source changes while a stalled R phase is active if (sbr_port_select_i == select_q || (!rsp_phase_stalled && (in_flight == '0 || (in_flight == 1 && cnt_down)))) begin - mgr_ports_req_o[sbr_port_select_i].req = sbr_port_req_i.req; - mgr_ports_req_o[sbr_port_select_i].a = sbr_port_req_i.a; - sbr_port_gnt = mgr_ports_rsp_i[sbr_port_select_i].gnt; + mgr_reqs[sbr_port_select_i] = sbr_port_req_i.req; + mgr_connect[sbr_port_select_i] = 1'b1; + sbr_port_gnt = mgr_ports_rsp_i[sbr_port_select_i].gnt; end end @@ -69,6 +71,11 @@ module obi_demux #( end end + for (genvar i = 0; i < NumMgrPorts; i++) begin : gen_req_assign + assign mgr_ports_req_o[i].req = mgr_reqs[i]; + assign mgr_ports_req_o[i].a = mgr_connect[i] ? sbr_port_req_i.a : '0; + end + assign sbr_port_rsp_o.gnt = sbr_port_gnt; assign sbr_port_rsp_o.r = mgr_ports_rsp_i[select_q].r; assign sbr_port_rsp_o.rvalid = mgr_ports_rsp_i[select_q].rvalid; From cd86f87b87287cfc9c3d20cd40df70fc025caf6a Mon Sep 17 00:00:00 2001 From: Michael Rogenmoser Date: Fri, 10 Jul 2026 16:26:32 +0200 Subject: [PATCH 2/3] Bump CI versions --- .github/workflows/ci.yml | 6 +++--- .gitlab-ci.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7ba0c86..22b2408 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,7 +16,7 @@ jobs: name: Check license runs-on: ubuntu-latest steps: - - uses: pulp-platform/pulp-actions/lint-license@v2 + - uses: pulp-platform/pulp-actions/lint-license@v2.5.1 with: license: | Copyright (\d{4}(-\d{4})?\s)?ETH Zurich and University of Bologna. @@ -27,7 +27,7 @@ jobs: lint-verilog: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v7 - uses: chipsalliance/verible-linter-action@main with: paths: | @@ -42,7 +42,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Mirror and check - uses: pulp-platform/pulp-actions/gitlab-ci@v2 + uses: pulp-platform/pulp-actions/gitlab-ci@v2.5.1 # Skip on forks or pull requests from forks due to missing secrets. if: > github.repository == 'pulp-platform/obi' && diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 55f8cf4..d5417b7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,7 +7,7 @@ stages: - sim variables: - VSIM: "questa-2022.3 vsim" + VSIM: "questa-2026.1 vsim" build: stage: build From 5fcbcd6bf4cb6aa0be8eb541237dcedc639defb6 Mon Sep 17 00:00:00 2001 From: Michael Rogenmoser Date: Mon, 3 Aug 2026 19:07:14 +0200 Subject: [PATCH 3/3] Simplify demux signalling from review --- src/obi_demux.sv | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/obi_demux.sv b/src/obi_demux.sv index e8d20f5..3b73d12 100644 --- a/src/obi_demux.sv +++ b/src/obi_demux.sv @@ -49,10 +49,8 @@ module obi_demux #( always_comb begin : proc_req select_d = select_q; cnt_up = 1'b0; - for (int i = 0; i < NumMgrPorts; i++) begin - mgr_reqs[i] = 1'b0; - mgr_connect[i] = 1'b0; - end + mgr_reqs = '0; + mgr_connect = '0; sbr_port_gnt = 1'b0; if (!overflow) begin