Skip to content

Commit 9a81bde

Browse files
committed
Add yosys-slang elaboration flow
1 parent 8c3c50d commit 9a81bde

File tree

8 files changed

+90
-5
lines changed

8 files changed

+90
-5
lines changed

.github/workflows/elab.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: Elaboration
2+
3+
on:
4+
push:
5+
branches-ignore:
6+
- gh-pages
7+
- v**
8+
pull_request:
9+
branches-ignore:
10+
- gh-pages
11+
- v**
12+
13+
jobs:
14+
yosys-slang:
15+
name: yosys-slang elaboration
16+
runs-on: ubuntu-latest
17+
container:
18+
image: hpretl/iic-osic-tools:latest
19+
options: --user root
20+
defaults:
21+
run:
22+
shell: bash -leo pipefail {0}
23+
24+
steps:
25+
- name: Checkout
26+
uses: actions/checkout@v6
27+
28+
- name: Bender checkout
29+
run: bender checkout
30+
31+
- name: Run yosys-slang
32+
run: scripts/run_yosys_slang.sh

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
!.ci/
44
/.git/
55
/build
6-
/Bender.lock
76
/Bender.local
87
*.log
98
*.wlf

Bender.lock

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
packages:
2+
common_cells:
3+
revision: 9ca8a7655f741e7dd5736669a20a301325194c28
4+
version: 1.39.0
5+
source:
6+
Git: https://github.com/pulp-platform/common_cells.git
7+
dependencies:
8+
- common_verification
9+
- tech_cells_generic
10+
common_verification:
11+
revision: fb1885f48ea46164a10568aeff51884389f67ae3
12+
version: 0.2.5
13+
source:
14+
Git: https://github.com/pulp-platform/common_verification.git
15+
dependencies: []
16+
tech_cells_generic:
17+
revision: 7968dd6e6180df2c644636bc6d2908a49f2190cf
18+
version: 0.2.13
19+
source:
20+
Git: https://github.com/pulp-platform/tech_cells_generic.git
21+
dependencies:
22+
- common_verification

Bender.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ package:
1919
- "Florian Zaruba <zarubaf@iis.ee.ethz.ch>"
2020

2121
dependencies:
22-
common_cells: { git: "https://github.com/pulp-platform/common_cells.git", version: 1.37.0 }
22+
common_cells: { git: "https://github.com/pulp-platform/common_cells.git", version: 1.39.0 }
2323
common_verification: { git: "https://github.com/pulp-platform/common_verification.git", version: 0.2.5 }
2424
tech_cells_generic: { git: "https://github.com/pulp-platform/tech_cells_generic.git", version: 0.2.2 }
2525

scripts/run_yosys_slang.sh

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#!/bin/bash
2+
# Copyright (c) 2026 ETH Zurich, University of Bologna
3+
#
4+
# Copyright and related rights are licensed under the Solderpad Hardware
5+
# License, Version 0.51 (the "License"); you may not use this file except in
6+
# compliance with the License. You may obtain a copy of the License at
7+
# http://solderpad.org/licenses/SHL-0.51. Unless required by applicable law
8+
# or agreed to in writing, software, hardware and materials distributed under
9+
# this License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
10+
# CONDITIONS OF ANY KIND, either express or implied. See the License for the
11+
# specific language governing permissions and limitations under the License.
12+
#
13+
# Authors:
14+
# - Michael Rogenmoser <michaero@iis.ee.ethz.ch>
15+
16+
set -e
17+
ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)
18+
19+
[ ! -z "$YOSYS" ] || YOSYS="yosys"
20+
21+
bender script flist-plus -t synthesis -t synth_test > ./slang.flist
22+
23+
$YOSYS -m slang -p "read_slang -Werror -f slang.flist --allow-use-before-declare --ignore-unknown-modules --keep-hierarchy --top axi_synth_bench; hierarchy"

src/axi_burst_splitter_gran.sv

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -698,7 +698,10 @@ module axi_burst_splitter_gran_counters #(
698698
.oup_req_i ( cnt_req_i ),
699699
.oup_data_o ( cnt_r_idx ),
700700
.oup_data_valid_o ( idq_oup_valid ),
701-
.oup_gnt_o ( idq_oup_gnt )
701+
.oup_gnt_o ( idq_oup_gnt ),
702+
703+
.full_o (),
704+
.empty_o ()
702705
);
703706
assign idq_inp_req = alloc_req & alloc_gnt;
704707
assign alloc_gnt = idq_inp_gnt & |(cnt_free);

src/axi_burst_unwrap.sv

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -616,7 +616,10 @@ module axi_burst_counters #(
616616
.oup_req_i ( cnt_req_i ),
617617
.oup_data_o ( cnt_r_idx ),
618618
.oup_data_valid_o ( idq_oup_valid ),
619-
.oup_gnt_o ( idq_oup_gnt )
619+
.oup_gnt_o ( idq_oup_gnt ),
620+
621+
.full_o (),
622+
.empty_o ()
620623
);
621624
assign idq_inp_req = alloc_req_i & alloc_gnt_o;
622625
assign alloc_gnt_o = idq_inp_gnt & |(cnt_free);

src/axi_dw_downsizer.sv

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,10 @@ module axi_dw_downsizer #(
330330
.exists_mask_i ('0 ),
331331
.exists_req_i ('0 ),
332332
.exists_o (/* Unused */ ),
333-
.exists_gnt_o (/* Unused */ )
333+
.exists_gnt_o (/* Unused */ ),
334+
335+
.full_o (),
336+
.empty_o ()
334337
);
335338

336339
for (genvar t = 0; unsigned'(t) < AxiMaxReads; t++) begin: gen_read_downsizer

0 commit comments

Comments
 (0)