A CI/CD Framework for Open-Source Hardware Designs
Open source hardware is the future, because:
None of us is as smart as all of us.

(* Extended Backus–Naur *)
rule = test | isin | mult | line
test = reg, eqs, reg
| reg, eqs, nat
isin = reg, "∈ {", nat, ",", nat, "}"
| reg, "∈ {", nat, ",", nat, ",", nat "}"
mult = reg, "≡ 0 (mod", reg, ")"
line = reg, "+", reg, "×", reg,
"-", reg, "+", nat, "= 0"
reg : string
nat : natural
eqs = "=" | "≠" | "<" | "⋜" | ">" | "⋝"We containerized the entire workflow on Ubuntu image with best-effort minimization.
iverilog) which helpfully follows the IEEE standard.
iverilogiverilog operates much like a compiler over hardware design languages.
iverilog is often used for “small projects” but makes IEEE 1364 Value Change Dump (VCD) files.How do we go from value changes to traces?
.decls).dtrace)| lines | words | bytes | |
|---|---|---|---|
| .vcd | 30356 | 46200 | 269184 |
| .decls | 2219 | 4434 | 39059 |
| .dtrace | 2936134 | 2931732 | 17474090 |
| spec | 1846 | 5780 | 71988 |
We believe specification generation time scales linearly with the product of trace length and number of registers, and specification size scales with the log of the product.
| lines | words | bytes | |
|---|---|---|---|
| .vcd | 30356 | 46200 | 269184 |
| .decls | 2219 | 4434 | 39059 |
| .dtrace | 2936134 | 2931732 | 17474090 |
| spec | 1846 | 5780 | 71988 |
| lines | words | bytes | |
|---|---|---|---|
| .vcd | 6290 | 10990 | 53007 |
| .decls | 3519 | 7034 | 62829 |
| .dtrace | 2230270 | 2228160 | 13840288 |
| spec | 5594 | 17986 | 181149 |
.decls + .dtracevcd2df on arXiv, CRAN, PyPIckdeutschbein@willamette.edu about: