Skip to content

Commit d6da8ab

Browse files
authored
Merge branch 'master' into feature/stack-interleave
2 parents cc037fa + dc7bcf6 commit d6da8ab

17 files changed

Lines changed: 423 additions & 98 deletions

File tree

‎.github/actions/setup-vortex/action.yml‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,19 @@ runs:
6363
path: third_party
6464
key: ${{ runner.os }}-thirdparty-${{ hashFiles('third_party/Makefile', '.gitmodules') }}
6565

66+
# Publish WHERE the toolchain cache above was restored to. The `tools` cache
67+
# path is relative to the workspace, but nothing downstream could know that:
68+
# consumers that need it (ci.yml, apptainer-ci.yml) each re-derived
69+
# `$PWD/tools` by hand, and any consumer that forgot silently fell back to
70+
# configure's `$HOME/tools` default -- a path that does not exist on a
71+
# hosted runner. asic_gate did forget, and every one of its builds died in
72+
# gen_sources.sh looking for verilator under /home/runner/tools. Exporting it
73+
# here means restoring the toolchain and knowing where it landed are the same
74+
# step, so a new workflow cannot get this wrong by omission.
75+
- name: Export TOOLDIR
76+
shell: bash
77+
run: echo "TOOLDIR=$GITHUB_WORKSPACE/tools" >> "$GITHUB_ENV"
78+
6679
- name: Install dependencies
6780
shell: bash
6881
run: |

‎.github/workflows/asic_gate.yml‎

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -220,12 +220,19 @@ jobs:
220220
path: reports
221221
merge-multiple: true
222222

223+
# `|| rc=$?` is load-bearing, exactly as in the Gate step: GitHub runs
224+
# `run:` under `bash -e`, and `set -uo pipefail` adds to that rather than
225+
# replacing it. Without the guard, synth_report.py's non-zero exit (1 =
226+
# regression, 2 = build error -- i.e. every case this step exists to
227+
# report) kills the step on that line, so `rc` never reaches
228+
# $GITHUB_OUTPUT and the marker steps below read it as "".
223229
- name: Summarize
224230
id: sum
225231
run: |
226232
set -uo pipefail
227-
python3 ci/synth_report.py reports >> "$GITHUB_STEP_SUMMARY"
228-
echo "rc=$?" >> "$GITHUB_OUTPUT"
233+
rc=0
234+
python3 ci/synth_report.py reports >> "$GITHUB_STEP_SUMMARY" || rc=$?
235+
echo "rc=$rc" >> "$GITHUB_OUTPUT"
229236
exit 0
230237
231238
# Record the SHA once every build has reached a VERDICT (pass or

‎.github/workflows/fpga_gate.yml‎

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -107,13 +107,16 @@ jobs:
107107
name: fpga-gate-report
108108
path: |
109109
fpga_gate_report.json
110-
build32_fpga_gate/hw/syn/xilinx/dut/*/fpga_gate_*/build.log
111-
build32_fpga_gate/hw/syn/xilinx/dut/*/fpga_gate_*/*.rpt
112-
build32_fpga_gate/hw/syn/xilinx/dut/*/fpga_gate_*/synth_summary.csv
113-
if-no-files-found: warn
110+
build32_fpga_gate/hw/syn/xilinx/dut/fpga_gate_*/build.log
111+
build32_fpga_gate/hw/syn/xilinx/dut/fpga_gate_*/*.rpt
112+
build32_fpga_gate/hw/syn/xilinx/dut/fpga_gate_*/synth_summary.csv
113+
# A build that dies in elaboration leaves only its build.log, so a
114+
# path matching nothing turns a red gate into a red X with no evidence.
115+
if-no-files-found: error
114116

117+
# always(), not success(): the verdict must not be masked by an upload failure.
115118
- name: Verdict
116-
if: steps.gate.outputs.run == 'true'
119+
if: always() && steps.gate.outputs.run == 'true'
117120
run: |
118121
case "${{ steps.run.outputs.rc }}" in
119122
0) echo "fpga_gate passed" ;;

‎ci/baselines/synthesis/yosys/core.json‎

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
"configs": "",
66
"dut": "cache",
77
"result": {
8-
"build_time_s": 280,
9-
"cell_area_um2": 47068.22,
10-
"cell_count": 422936,
8+
"build_time_s": 270,
9+
"cell_area_um2": 49301.526,
10+
"cell_count": 461981,
1111
"env": {
1212
"corner": "tt",
1313
"pdk": "asap7",
@@ -17,12 +17,38 @@
1717
"xlen": 32,
1818
"yosys": "Yosys 0.57+157"
1919
},
20-
"fmax_mhz": 951.294,
21-
"power_mw": 147.0,
20+
"fmax_mhz": 1210.507,
21+
"power_mw": 135.0,
2222
"seq_area_um2": 22783.874,
2323
"sram_area_um2": 16307.2,
2424
"tns_ns": 0.0,
25-
"wns_ns": 0.199
25+
"wns_ns": 0.424
26+
}
27+
},
28+
"core": {
29+
"clock_mhz": 400,
30+
"config_hash": "6faeba3aaa4e431f",
31+
"configs": "",
32+
"dut": "core",
33+
"result": {
34+
"build_time_s": 3280,
35+
"cell_area_um2": 190737.251,
36+
"cell_count": 2022825,
37+
"env": {
38+
"corner": "tt",
39+
"pdk": "asap7",
40+
"sta": "2.7.0",
41+
"sv2v": "sv2v v0.0.13-3-g80a2f0c",
42+
"vt": "rvt",
43+
"xlen": 32,
44+
"yosys": "Yosys 0.57+157"
45+
},
46+
"fmax_mhz": 589.762,
47+
"power_mw": 670.0,
48+
"seq_area_um2": 51329.765,
49+
"sram_area_um2": 70497.6,
50+
"tns_ns": 0.0,
51+
"wns_ns": 0.804
2652
}
2753
}
2854
}

‎ci/baselines/synthesis/yosys/dxa.json‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
"configs": "",
66
"dut": "dxa",
77
"result": {
8-
"build_time_s": 115,
9-
"cell_area_um2": 11719.171,
10-
"cell_count": 107949,
8+
"build_time_s": 105,
9+
"cell_area_um2": 12240.814,
10+
"cell_count": 116553,
1111
"env": {
1212
"corner": "tt",
1313
"pdk": "asap7",
@@ -17,12 +17,12 @@
1717
"xlen": 32,
1818
"yosys": "Yosys 0.57+157"
1919
},
20-
"fmax_mhz": 883.314,
21-
"power_mw": 36.2,
20+
"fmax_mhz": 1011.839,
21+
"power_mw": 33.5,
2222
"seq_area_um2": 5196.02,
2323
"sram_area_um2": 0.0,
2424
"tns_ns": 0.0,
25-
"wns_ns": 0.118
25+
"wns_ns": 0.262
2626
}
2727
}
2828
}
Lines changed: 68 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,39 @@
11
{
2+
"gfx": {
3+
"clock_mhz": 400,
4+
"config_hash": "719c27411ebd01c9",
5+
"configs": "",
6+
"dut": "gfx",
7+
"result": {
8+
"build_time_s": 3920,
9+
"cell_area_um2": 395087.746,
10+
"cell_count": 3785747,
11+
"env": {
12+
"corner": "tt",
13+
"pdk": "asap7",
14+
"sta": "2.7.0",
15+
"sv2v": "sv2v v0.0.13-3-g80a2f0c",
16+
"vt": "rvt",
17+
"xlen": 32,
18+
"yosys": "Yosys 0.57+157"
19+
},
20+
"fmax_mhz": 842.105,
21+
"power_mw": 1100.0,
22+
"seq_area_um2": 151023.722,
23+
"sram_area_um2": 322876.0,
24+
"tns_ns": 0.0,
25+
"wns_ns": 1.312
26+
}
27+
},
228
"om": {
329
"clock_mhz": 800,
430
"config_hash": "5d5c754c246f3864",
531
"configs": "",
632
"dut": "om",
733
"result": {
834
"build_time_s": 65,
9-
"cell_area_um2": 5233.054,
10-
"cell_count": 46170,
35+
"cell_area_um2": 5917.206,
36+
"cell_count": 55476,
1137
"env": {
1238
"corner": "tt",
1339
"pdk": "asap7",
@@ -17,12 +43,12 @@
1743
"xlen": 32,
1844
"yosys": "Yosys 0.57+157"
1945
},
20-
"fmax_mhz": 862.292,
21-
"power_mw": 40.2,
46+
"fmax_mhz": 1005.53,
47+
"power_mw": 22.6,
2248
"seq_area_um2": 2499.304,
2349
"sram_area_um2": 0.0,
2450
"tns_ns": 0.0,
25-
"wns_ns": 0.09
51+
"wns_ns": 0.256
2652
}
2753
},
2854
"raster": {
@@ -32,8 +58,8 @@
3258
"dut": "raster",
3359
"result": {
3460
"build_time_s": 95,
35-
"cell_area_um2": 9973.332,
36-
"cell_count": 93180,
61+
"cell_area_um2": 10471.881,
62+
"cell_count": 96921,
3763
"env": {
3864
"corner": "tt",
3965
"pdk": "asap7",
@@ -43,12 +69,38 @@
4369
"xlen": 32,
4470
"yosys": "Yosys 0.57+157"
4571
},
46-
"fmax_mhz": 809.585,
47-
"power_mw": 93.0,
72+
"fmax_mhz": 1209.336,
73+
"power_mw": 46.5,
4874
"seq_area_um2": 3953.513,
4975
"sram_area_um2": 3728.0,
5076
"tns_ns": 0.0,
51-
"wns_ns": 0.015
77+
"wns_ns": 0.423
78+
}
79+
},
80+
"rtu": {
81+
"clock_mhz": 400,
82+
"config_hash": "564a9e927368df93",
83+
"configs": "",
84+
"dut": "rtu",
85+
"result": {
86+
"build_time_s": 1005,
87+
"cell_area_um2": 92031.001,
88+
"cell_count": 866503,
89+
"env": {
90+
"corner": "tt",
91+
"pdk": "asap7",
92+
"sta": "2.7.0",
93+
"sv2v": "sv2v v0.0.13-3-g80a2f0c",
94+
"vt": "rvt",
95+
"xlen": 32,
96+
"yosys": "Yosys 0.57+157"
97+
},
98+
"fmax_mhz": 906.701,
99+
"power_mw": 383.0,
100+
"seq_area_um2": 36179.978,
101+
"sram_area_um2": 10949.6,
102+
"tns_ns": 0.0,
103+
"wns_ns": 1.397
52104
}
53105
},
54106
"tex": {
@@ -57,9 +109,9 @@
57109
"configs": "",
58110
"dut": "tex",
59111
"result": {
60-
"build_time_s": 1085,
61-
"cell_area_um2": 112430.725,
62-
"cell_count": 1089160,
112+
"build_time_s": 1115,
113+
"cell_area_um2": 119324.411,
114+
"cell_count": 1149706,
63115
"env": {
64116
"corner": "tt",
65117
"pdk": "asap7",
@@ -69,12 +121,12 @@
69121
"xlen": 32,
70122
"yosys": "Yosys 0.57+157"
71123
},
72-
"fmax_mhz": 804.959,
73-
"power_mw": 614.0,
124+
"fmax_mhz": 1142.465,
125+
"power_mw": 537.0,
74126
"seq_area_um2": 37780.862,
75127
"sram_area_um2": 0.0,
76128
"tns_ns": 0.0,
77-
"wns_ns": 0.008
129+
"wns_ns": 0.375
78130
}
79131
}
80132
}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
{
2+
"tcu": {
3+
"clock_mhz": 500,
4+
"config_hash": "504b5c430ca3eafc",
5+
"configs": "",
6+
"dut": "tcu",
7+
"result": {
8+
"build_time_s": 715,
9+
"cell_area_um2": 74237.832,
10+
"cell_count": 783075,
11+
"env": {
12+
"corner": "tt",
13+
"pdk": "asap7",
14+
"sta": "2.7.0",
15+
"sv2v": "sv2v v0.0.13-3-g80a2f0c",
16+
"vt": "rvt",
17+
"xlen": 32,
18+
"yosys": "Yosys 0.57+157"
19+
},
20+
"fmax_mhz": 799.68,
21+
"power_mw": 212.0,
22+
"seq_area_um2": 11848.291,
23+
"sram_area_um2": 0.0,
24+
"tns_ns": 0.0,
25+
"wns_ns": 0.75
26+
}
27+
},
28+
"tensor": {
29+
"clock_mhz": 400,
30+
"config_hash": "d28e96697d5810ba",
31+
"configs": "",
32+
"dut": "tensor",
33+
"result": {
34+
"build_time_s": 2880,
35+
"cell_area_um2": 224202.142,
36+
"cell_count": 2351511,
37+
"env": {
38+
"corner": "tt",
39+
"pdk": "asap7",
40+
"sta": "2.7.0",
41+
"sv2v": "sv2v v0.0.13-3-g80a2f0c",
42+
"vt": "rvt",
43+
"xlen": 32,
44+
"yosys": "Yosys 0.57+157"
45+
},
46+
"fmax_mhz": 926.012,
47+
"power_mw": 237.0,
48+
"seq_area_um2": 70778.318,
49+
"sram_area_um2": 257618.4,
50+
"tns_ns": 0.0,
51+
"wns_ns": 1.42
52+
}
53+
}
54+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
{
2+
"vm": {
3+
"clock_mhz": 400,
4+
"config_hash": "87c316a577a47ae1",
5+
"configs": "",
6+
"dut": "vm",
7+
"result": {
8+
"build_time_s": 680,
9+
"cell_area_um2": 103431.322,
10+
"cell_count": 1007116,
11+
"env": {
12+
"corner": "tt",
13+
"pdk": "asap7",
14+
"sta": "2.7.0",
15+
"sv2v": "sv2v v0.0.13-3-g80a2f0c",
16+
"vt": "rvt",
17+
"xlen": 32,
18+
"yosys": "Yosys 0.57+157"
19+
},
20+
"fmax_mhz": 973.425,
21+
"power_mw": 134.0,
22+
"seq_area_um2": 43729.211,
23+
"sram_area_um2": 60052.8,
24+
"tns_ns": 0.0,
25+
"wns_ns": 1.473
26+
}
27+
}
28+
}

0 commit comments

Comments
 (0)