Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1677 commits
Select commit Hold shift + click to select a range
b9e1cc3
Re-adding Spike, as the build as part of the RISC-V toolchain does no…
hpretl Jun 26, 2025
f62cfe9
Adding yosys option to amaranth install
hpretl Jun 26, 2025
ee2220b
Adding LibreLane (preparing for switch over from OpenLane2)
hpretl Jun 26, 2025
282ad54
Bump PIP tool versions
hpretl Jun 26, 2025
e2bce2e
Adding `CharLib` (still needs an update to resolve dependency on nump…
hpretl Jun 26, 2025
6adefa8
Bump tool versions
hpretl Jun 26, 2025
f3dbeab
Added break-system-packages
hpretl Jun 26, 2025
9546f56
Implement robust socat handling.
MrHighVoltage Jun 26, 2025
b24a2aa
Pull in changes from chipathon branch
hpretl Jun 28, 2025
131e2cb
Revert "Adding LibreLane (preparing for switch over from OpenLane2)"
hpretl Jun 28, 2025
81cc4da
Bump PIP packages
hpretl Jul 2, 2025
8c78821
Add a hint how to run example
hpretl Jul 3, 2025
2c7c565
Bump tool version
hpretl Jul 7, 2025
4f1cd03
Remove klayout-pex, as it causes dependency issues
hpretl Jul 7, 2025
8ab74e0
Charlib brings also PySpice in
hpretl Jul 7, 2025
79d9b53
OpenRAM installed directly from Github
hpretl Jul 7, 2025
1b9e56f
Hdl21 installed directly from GH
hpretl Jul 7, 2025
7b8b2c8
OpenLane2 installed directly from GH
hpretl Jul 7, 2025
08d67f7
Remove OpenRAM for now until new version available on PyPi
hpretl Jul 7, 2025
561ce2e
Adding substrate node for resistors
hpretl Jul 7, 2025
5af6f15
First implementation
hpretl Jul 3, 2025
9038134
Adding `najaeda`
hpretl Jul 7, 2025
372eb3e
Bump `scikit-rf`
hpretl Jul 7, 2025
6196486
Fixed start script for Mac, where xhost renabled access control immed…
MrHighVoltage Jul 7, 2025
893578c
Adding inverter example for gf180mcuD
hpretl Jul 7, 2025
b3b5f71
Rename kactus2 stage to kactus
hpretl Jul 7, 2025
91d92bc
Fixing Kactus2 install
hpretl Jul 7, 2025
49c40e1
Merge branch 'main' into next_release
hpretl Jul 7, 2025
1e39277
Switch openvaf to openvaf-reloaded fork and remove build WA
hpretl Jul 7, 2025
1bf8d63
Adding new Python packages to test
hpretl Jul 7, 2025
6c3e6c2
Add `kactus2` to PATH
hpretl Jul 7, 2025
41d0997
Rename test_layver.sh to test_layver_sky130.sh
hpretl Jul 7, 2025
d64cbcb
Add ngspice test for gf180mcuD PDK
hpretl Jul 7, 2025
5dd6060
Update PDK string match for gf180mcu in SAK scripts
hpretl Jul 7, 2025
9905345
Rename test 15 to 14 and update references
hpretl Jul 7, 2025
8e1ab3c
Adding test for `spike` and `pk`
hpretl Jul 7, 2025
17f5639
Update Surfer install to use v0.3.0 and fix build
hpretl Jul 8, 2025
d1da314
Remove Rust and Cargo installation from base script
hpretl Jul 8, 2025
9afa3ff
Add strip step to binaries in install scripts
hpretl Jul 8, 2025
b6d866b
Update surfer tool to commit v0.3.0
hpretl Jul 8, 2025
20c3ecb
Add Chisel support, run test on Martin Schoeberl's example
hpretl Jul 8, 2025
4da00ee
Update tools list and release notes for new tools and changes
hpretl Jul 8, 2025
aa6b9d5
Add Veryl hardware description language support
hpretl Jul 8, 2025
09f9e1e
Veryl now works, but `XDG_DATA_HOME` is set to a read-only location; …
hpretl Jul 9, 2025
5a70561
Update siliconcompiler to version 0.34.1
hpretl Jul 9, 2025
4102996
Add vacask analog circuit simulator support
hpretl Jul 10, 2025
e267af7
Add VACASK test with Miller OTA and Gilbert cell
hpretl Jul 10, 2025
ec5f6ca
Update riscv-gnu-toolchain install script
hpretl Jul 10, 2025
95ba462
Strip binaries after installation to reduce size
hpretl Jul 10, 2025
05ecc1d
Strip binaries after Verilator installation
hpretl Jul 10, 2025
ed93cdd
Improve error message in OpenLane sky130A test
hpretl Jul 10, 2025
cd35732
Use mktemp for test temp directories in test scripts
hpretl Jul 10, 2025
9ccf6a7
Add Veryl regression test with HalfAdder example
hpretl Jul 10, 2025
aca5b98
WIP: First draft/test of splitting build into base, base-dev and rele…
MrHighVoltage Jul 11, 2025
ce95df6
Added base-dev image directory.
MrHighVoltage Jul 11, 2025
67ee62d
Remove measurement folder to save disk space
hpretl Jul 12, 2025
3d72d6a
Remove morty and svase from PULP tools and tests (for size reasons an…
hpretl Jul 12, 2025
b741dd5
Optimize riscv-pk build for size and add multilib
hpretl Jul 12, 2025
6b93d80
Revert "Optimize riscv-pk build for size and add multilib"
hpretl Jul 12, 2025
2dc0949
Optimize RISC-V toolchain build for size
hpretl Jul 12, 2025
ed0a17f
Update EDA tool versions and Python package dependencies
hpretl Jul 15, 2025
3e6e165
Major rework of the build system.
MrHighVoltage Jul 15, 2025
d830c6b
New build-scripts to recreate the image parts (base, tools, final ima…
MrHighVoltage Jul 15, 2025
bbf45ce
Fix GDS3D build (linking fails because links already exist).
MrHighVoltage Jul 15, 2025
399720b
Merge remote-tracking branch 'origin/next_release' into build_refactor
MrHighVoltage Jul 15, 2025
a130d39
Update XDG_DATA_HOME handling for Veryl setup, only install `verylup`
hpretl Jul 16, 2025
aadd138
Set buildkitd to use unsecure registry.
MrHighVoltage Jul 21, 2025
b6cdbd5
Downgrade/force versions due to build issues.
MrHighVoltage Jul 21, 2025
92f3867
Force default JRE/JDK Version, so only one version is installed.
MrHighVoltage Jul 21, 2025
e18e994
Updated build scripts to push the images to the dockerhub registry.
MrHighVoltage Jul 21, 2025
3275b80
Merge branch 'build_refactor' into next_release
MrHighVoltage Jul 21, 2025
957bcc9
Added apt clean after installing packages with APT.
MrHighVoltage Jul 21, 2025
74e27ef
WIP: Reduce image size by switching to llvm-17 (try to not pull any l…
MrHighVoltage Jul 21, 2025
61eaa93
Enhanced build of spike for smaller binary size.
MrHighVoltage Jul 21, 2025
e18ce19
OpenVAF requires LLVM<=16, but links statically. So we just install i…
MrHighVoltage Jul 21, 2025
0130459
Added more configurability to final image creation set (tagging)
MrHighVoltage Jul 21, 2025
f089f5c
Reworked final build stage to take parameters to tag each flavor.
MrHighVoltage Jul 21, 2025
1996833
Rework test script.
MrHighVoltage Jul 21, 2025
ea30c73
Added missing symlink creation to the rest of the build scripts (upps…
MrHighVoltage Jul 21, 2025
3d1c672
Remove unused xyce-xdm image build for now.
MrHighVoltage Jul 22, 2025
5725173
Move spike and riscv-pk to separate directories.
MrHighVoltage Jul 22, 2025
897fd84
Move libman to bin directory, build parallel.
MrHighVoltage Jul 22, 2025
34e1803
Fix linking problems in vacask.
MrHighVoltage Jul 22, 2025
79407cf
Bump tool versions
hpretl Jul 23, 2025
8830de0
Update package versions in base install script
hpretl Jul 23, 2025
f1d4628
Install verylup with no-self-update feature
hpretl Jul 23, 2025
1ac75b3
Add librelane and remove openlane
hpretl Jul 23, 2025
d43e79f
Make symlink creation more specific and robust.
MrHighVoltage Jul 23, 2025
b8792b4
Add registry-caching statements for tool builds.
MrHighVoltage Jul 23, 2025
ce17d83
Update testing suite
MrHighVoltage Jul 24, 2025
dea8d16
Use inline cache for tool packages instead of registry cache.
MrHighVoltage Jul 24, 2025
eea911d
Modified image dockerfile, removing packages, refining copy statements.
MrHighVoltage Jul 24, 2025
d880917
Remove unrequired path entries from env.sh.
MrHighVoltage Jul 24, 2025
6cbff73
Compile riscv-pk (bootloader) as part of the spike simulator (simpler…
MrHighVoltage Jul 24, 2025
a33acc9
Fix symlinks to binaries.
MrHighVoltage Jul 24, 2025
34623a3
Revert "Force default JRE/JDK Version, so only one version is install…
MrHighVoltage Jul 24, 2025
c90e16c
Also document why java-17 is needed.
MrHighVoltage Jul 24, 2025
718d938
Remove riscv-pk from docker-bake file.
MrHighVoltage Jul 24, 2025
8027322
Update commit hash updater to support multiple Dockerfiles.
MrHighVoltage Jul 24, 2025
4450b0c
Tool update before release, YAML and Dockerfiles match now
hpretl Jul 26, 2025
a140637
Switch test 01 to LibreLane and fix it
hpretl Jul 26, 2025
65ec06f
Add _tests/runs directory to .gitignore
hpretl Jul 26, 2025
c56c1a1
Fix typo in error message in run_docker_tests.sh
hpretl Jul 26, 2025
1f6e2d1
Add LibreLane test and SDC/config files for counter in test 04
hpretl Jul 26, 2025
f905cf1
Update TESTS.md
hpretl Jul 26, 2025
3fb0da5
Switch test 07 to LibreLane with sky130A and VHDL
hpretl Jul 26, 2025
af288c7
Quote variables in shell script for safety
hpretl Jul 26, 2025
c1028f7
Use unique work directory for test runs
hpretl Jul 26, 2025
1a43289
Rename test SPICE files
hpretl Jul 26, 2025
319abc8
Improve riscv64-unknown-elf tools test script
hpretl Jul 26, 2025
2825d05
Improve test script robustness and output handling
hpretl Jul 26, 2025
b5c7ebe
Use random directory for Icarus Verilog test runs
hpretl Jul 26, 2025
0706600
Update test script to use deterministic run directory
hpretl Jul 26, 2025
9dab98a
Quote file paths and clean up test output
hpretl Jul 26, 2025
6e9fe73
Update Chisel test script to use custom run directory
hpretl Jul 26, 2025
b8b0a6e
Improve VACASK test isolation and output handling
hpretl Jul 26, 2025
ea85aee
Improve Veryl test script setup and installation
hpretl Jul 26, 2025
2bf7953
Use random directory for test runs
hpretl Jul 26, 2025
2a9139d
Quote log file variable in test script
hpretl Jul 26, 2025
e145999
Update OpenLane aliases to LibreLane in env.sh
hpretl Jul 26, 2025
c1ddfcb
Update RELEASE_NOTES.md
hpretl Jul 26, 2025
b7aa966
Organize test outputs into per-test subdirectories
hpretl Jul 28, 2025
0db6c16
Update docs regarding SiliconCompiler
mattyoung101 Jul 28, 2025
ab57893
Add quick start instructions for new build setup
hpretl Jul 29, 2025
739b4b2
Fix Markdown linting, add braces
hpretl Jul 29, 2025
cc97f68
Merge pull request #159 from mattyoung101/update-docs
hpretl Jul 29, 2025
35311e5
Merge branch 'main' into next_release
hpretl Jul 29, 2025
152588a
Update release notes for librelane support
hpretl Jul 29, 2025
4fae4f4
Add LibreLane test for ihp-sg13g2 with counter example
hpretl Jul 29, 2025
9e614a7
Repair digital example (latest digital flow requires a pin order config)
hpretl Jul 31, 2025
0ba46e0
KNOWN_ISSUES.md: add KLayout PCell issue and workaround for GF180
martinjankoehler Aug 25, 2025
7ed7fad
Remove `terminalrc` as depreciated, and no useful content anyway
hpretl Aug 26, 2025
cd67604
Merge branch 'main' into next_release
hpretl Aug 26, 2025
b6799e6
Remove VS Code (for size reasons, and broken recently)
hpretl Aug 26, 2025
e4ddb71
Store PDK commit hash
hpretl Aug 27, 2025
2a704b7
Fix #161, a design path with space was not correctly quoted.
MrHighVoltage Aug 27, 2025
d03af7e
Update EDA tool versions and Python package dependencies
hpretl Aug 27, 2025
d123171
Do not link latest OpenROAD version but the one needed by LibreLane
hpretl Aug 27, 2025
40f16b7
Merge branch 'main' into next_release
hpretl Aug 27, 2025
19735c3
Rename `openroad_app` to just `openroad`
hpretl Aug 27, 2025
d93d929
updated sak-pex.sh
simi1505 Aug 28, 2025
653a6c0
updated sak-lvs.sh
simi1505 Aug 28, 2025
8642da5
updated sak-drc.sh
simi1505 Aug 28, 2025
ad0ba2f
pcells with guardring added; align+moveby plugin added
p-fath Aug 28, 2025
fbd961e
Merge pull request #172 from p-fath/next_release
MrHighVoltage Aug 28, 2025
9b74fb6
Merge pull request #171 from simi1505/fix-sak-ihp
hpretl Aug 29, 2025
3e4c610
Clarify temporary solution comment in install_ihp.sh
hpretl Aug 29, 2025
4abc8de
Clone klayout plugins with shallow depth
hpretl Aug 29, 2025
4be8159
Update klayoutrc path width and key bindings
hpretl Aug 29, 2025
a8d17e7
keybinding improved and cleaned up
p-fath Aug 29, 2025
2f7d86e
keybinding improved and cleaned up
p-fath Aug 29, 2025
0049dba
Merge pull request #173 from p-fath/next_release
MrHighVoltage Aug 29, 2025
45ef396
coloring scheme adjusted
p-fath Aug 29, 2025
c427013
pcells path updated
p-fath Aug 29, 2025
76d0a91
Merge pull request #174 from p-fath/next_release
hpretl Aug 29, 2025
4364b93
added keybindings for DRC/LVS
p-fath Aug 29, 2025
24c46be
Merge pull request #175 from p-fath/next_release
hpretl Aug 29, 2025
ddc97aa
Add note on specifying remote build user in README
hpretl Aug 30, 2025
5abdb14
Make builder name user-specific in build scripts
hpretl Aug 30, 2025
5651f97
Update OR-Tools and spdlog versions in install scripts
hpretl Aug 30, 2025
5c1e11b
Update OR-Tools install script with new build options
hpretl Aug 30, 2025
f58f5b0
Move bottleneck install script and update Dockerfile
hpretl Aug 30, 2025
cf19f6e
Add Jupyter packages installation to pip script
hpretl Aug 30, 2025
db77b39
Refactor skeleton directories and update Dockerfiles
hpretl Aug 30, 2025
2b05994
Refactor base package install script and Dockerfile
hpretl Aug 30, 2025
ad074cd
Update comment for skeleton copy in Dockerfile
hpretl Aug 30, 2025
3b72061
Move example installation from base to iic-osic-tools image
hpretl Aug 30, 2025
d4d1261
Add EDA package install step to Dockerfile
hpretl Aug 30, 2025
1a463c5
Update tool_pip.sh symlink target
hpretl Aug 30, 2025
70935bd
Move KLayout plugin install to dedicated script
hpretl Aug 30, 2025
7ef3665
Move meson installation from pip to apt
hpretl Aug 30, 2025
8466bc9
Create build/include directory in install script to fix build fail
hpretl Aug 30, 2025
92aa451
Enable openroad in tools-level-1 group
hpretl Aug 30, 2025
7a9ae65
Install ciel via pip and update comments in install script
hpretl Aug 30, 2025
fcd6b99
Note sure why, but it seems this is needed
hpretl Aug 31, 2025
d3a6ed5
Bump tool versions
hpretl Aug 31, 2025
a5b4105
set top-level-selection to true to assure to not accidentially move l…
p-fath Sep 1, 2025
fe2d315
Remove USER 0:0 from Dockerfiles, set default user
hpretl Sep 1, 2025
25d3469
Rename env.sh to .bashrc in headless directory
hpretl Sep 1, 2025
7d1e0ba
Refactor base image scripts and Dockerfile setup
hpretl Sep 1, 2025
0e5f114
Combine EDA, example, and KLayout installs in Dockerfile
hpretl Sep 1, 2025
432b21e
Centralize binary symlink creation in install_links.sh
hpretl Sep 1, 2025
efddeb8
Remove redundant symlink creation for Yosys binaries (which cause a f…
hpretl Sep 1, 2025
b95a53f
changed color of ruler to orange; updated install_ihp script to use r…
p-fath Sep 2, 2025
6727bab
Merge remote-tracking branch 'upstream/next_release' into next_release
p-fath Sep 2, 2025
a0dcb75
Merge pull request #176 from p-fath/next_release
hpretl Sep 2, 2025
c5111f2
Update ngspice to version 45
hpretl Sep 3, 2025
0a3ed76
Update tool Dockerfiles and metadata to latest commits
hpretl Sep 4, 2025
4cffe2b
Refactor skeleton paths and update Dockerfiles
hpretl Sep 4, 2025
450a086
Clean up temporary files in base Dockerfile
hpretl Sep 4, 2025
a2ef12e
removed klayout keybindings 0 and , as already defined in klayout-sel…
p-fath Sep 4, 2025
68d5cf2
Merge pull request #177 from p-fath/next_release
hpretl Sep 4, 2025
d681d3c
Update OpenROAD commit and LibreLane installation
hpretl Sep 6, 2025
71b5e97
improved ruler for klayout
p-fath Sep 8, 2025
7b31a7c
Make link creation more robust, to not link `latest` dirs (like for O…
hpretl Sep 9, 2025
2c4627b
Fix access rights for `/headless`
hpretl Sep 9, 2025
6d14f4b
Bump tool version for release
hpretl Sep 9, 2025
8fcfd3d
Fix broken link
hpretl Sep 9, 2025
57dd2da
Adding new dependency for VACASK
hpretl Sep 9, 2025
bcfa2ff
Allow buildscript to supply extra parameters to docker buildx create.
MrHighVoltage Sep 9, 2025
3245b28
adjusted klayout keybinding for zoom-out; added klayout auto backup p…
p-fath Sep 10, 2025
ae1647e
Merge pull request #180 from p-fath/next_release
hpretl Sep 10, 2025
0cdddd4
Missed other parameter spot in build script.
MrHighVoltage Sep 9, 2025
d9dc4b9
Add profile.d script to support distrobox (script is similar to bashrc).
MrHighVoltage Sep 11, 2025
2c442ee
Update know issues to show a solution to run the container using podman.
MrHighVoltage Sep 11, 2025
9f38d91
Remove "based on efabless..." form README.
MrHighVoltage Sep 11, 2025
e0094fa
Added info about Distrobox and Podman support.
MrHighVoltage Sep 11, 2025
f95b07a
Added seccomp=unconfined to default parameters, to prevent problems c…
MrHighVoltage Sep 12, 2025
7db9684
Added IICQC Logo, instead of older IIC Logo.
MrHighVoltage Sep 12, 2025
6e300c6
Changed description for usage with Distrobox and Podman.
MrHighVoltage Sep 12, 2025
3ff5532
Removed section on using the container with Podman from the Known Iss…
MrHighVoltage Sep 12, 2025
e4ffaf4
Removed section of startup problems caused by not having seccomp=unco…
MrHighVoltage Sep 12, 2025
c42969d
Fix some Markdown linting issues
hpretl Sep 15, 2025
ad398b4
Fix permissions for iic-osic-tools profile.d file.
MrHighVoltage Sep 16, 2025
2f68a35
Bump tool versions
hpretl Sep 16, 2025
655993a
Adapt access to 755
hpretl Sep 16, 2025
318e757
Temporarily remove pyuvm
hpretl Sep 17, 2025
3a9b863
Add new plugin library, add new pin tool
hpretl Sep 17, 2025
ce17a6a
Turning back to official release of LibreLane and its old OpenROAD ve…
hpretl Sep 17, 2025
27b95b1
Dial back `spdlog` version, otherwise the OpenROAD version required f…
hpretl Sep 17, 2025
7172558
Update `spdlog` to v1.15.1 before building latest OpenROAD, otherwise…
hpretl Sep 17, 2025
61a6939
Klayout keybinding for creating polygons changed to Ctrl+Shift+P as o…
p-fath Sep 18, 2025
be2ab7c
adjusted keybinding of Klayout origin as O is used by via tool
p-fath Sep 18, 2025
810e876
Merge pull request #184 from p-fath/next_release
hpretl Sep 19, 2025
4416bf6
Update release notes for 2025.09
hpretl Sep 19, 2025
7d5fb40
Fix pulp-flow test
phsauter Sep 19, 2025
0a77ef1
Merge pull request #185 from phsauter/pulp_test
hpretl Sep 20, 2025
aceff76
Update tool versions and dependencies
hpretl Sep 22, 2025
7dffbbb
Add FPGA tools image with icestorm and nextpnr
hpretl Sep 22, 2025
3663142
Update FPGA tools install script for nextpnr
hpretl Sep 22, 2025
7c5ce71
Add libftdi-dev to base install script for FPGA toolchain
hpretl Sep 22, 2025
7132b65
klayout keybindings of DRC updated to use newest ihp DRC script
p-fath Sep 22, 2025
c7007ea
Merge pull request #187 from p-fath/next_release
hpretl Sep 23, 2025
7301437
Update references from OpenLane to LibreLane
hpretl Sep 23, 2025
ea557f4
Add FPGA toolchain to release notes
hpretl Sep 23, 2025
3359036
Merge branch 'next_release' of https://github.com/iic-jku/IIC-OSIC-TO…
hpretl Sep 23, 2025
108971c
Add gzip to base image package installation
hpretl Sep 23, 2025
080e1fa
Remove librelane_run directory from clean script
hpretl Sep 23, 2025
a392cb3
Update tool versions and Python EDA dependencies
hpretl Sep 30, 2025
b152c85
Add klayout-layout-manager to install script
hpretl Sep 30, 2025
1d65540
Add libyaml-cpp-dev to base install script (new OpenROAD dependency)
hpretl Sep 30, 2025
ea1b548
Update KLayout manager repo in install script
hpretl Sep 30, 2025
b3b7394
Update DIC references to ICD in scripts and docs
hpretl Oct 3, 2025
cc3a432
Fix container removal to include stopped containers
hpretl Oct 5, 2025
f9216fd
Add conditional seccomp param for IIC_SERVER_DEPLOYMENT
hpretl Oct 5, 2025
930301a
Add note about buildkitd bug on aarch64 and workaround
hpretl Oct 6, 2025
42e6000
base: Add python formatter black
phsauter Oct 7, 2025
8bdade1
Merge pull request #196 from phsauter/python-formatter
hpretl Oct 7, 2025
8ff97b5
Document CharLib configuration requirement
hpretl Oct 17, 2025
4b61415
Remove outdated buildkitd aarch64 bug note
hpretl Oct 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
32 changes: 32 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: hpretl

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Environment:**
- OS: [e.g. Windows, macOS, Linux]
- Operating mode: [e.g. VNC, X11]
- Version tag [e.g. 2022.12]

**Additional context**
Add any other context about the problem here.
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: hpretl

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
59 changes: 59 additions & 0 deletions .github/workflows/devcontainer-docker.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: "Build and publish devcontainer"
on:
workflow_dispatch:
inputs:
version:
description: 'Container version'
required: true
default: 'latest'

env:
REGISTRY: ghcr.io
# This does not work as the lowercase conversion does not work then,
# and we don't want the name of the docker container to clash
#IMAGE_NAME: ${{ github.repository }}
IMAGE_NAME: ${{ github.repository_owner }}/iic-osic-tools-devcontainer

jobs:
build-and-push-image:
runs-on: ubuntu-latest

permissions:
contents: read
packages: write
attestations: write
id-token: write

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Log in to the Container registry
uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}

- name: Build and push Docker image
id: push
uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4
with:
context: "./_build/devcontainer/image/"
push: true
tags: "${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.event.inputs.version }}"
labels: ${{ steps.meta.outputs.labels }}
build-args: VERSION=${{ github.event.inputs.version }}

- name: Generate artifact attestation
uses: actions/attest-build-provenance@v1
with:
subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME}}
subject-digest: ${{ steps.push.outputs.digest }}
push-to-registry: true
24 changes: 24 additions & 0 deletions .github/workflows/devcontainer-template.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: "Release devcontainer template"
on:
workflow_dispatch:

jobs:
deploy-templates:
if: ${{ github.ref == 'refs/heads/main' }}
runs-on: ubuntu-latest
permissions:
packages: write
contents: write
pull-requests: write
steps:
- uses: actions/checkout@v3

- name: "Publish Templates"
uses: devcontainers/action@v1
with:
publish-templates: "true"
base-path-to-templates: "./_build/devcontainer/iic-osic-tools"
generate-docs: "true"

env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
23 changes: 21 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,21 @@
**/*.pyc
**/.DS_Store
# ========================================================================
# Editor swap/backup files
# ========================================================================
*~
*swp

# ========================================================================
# Python compiled files
# ========================================================================
*.pyc

# ========================================================================
# macOS files
# ========================================================================
.DS_Store

# ========================================================================
# Misc configuration files
# ========================================================================
eda_user_credentials*.json
/_tests/runs
50 changes: 50 additions & 0 deletions .vscode/ltex.dictionary.en-US.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
BiCMOS
cace
cocotb
cvc
devcontainer
Devcontainers
DockerHub
edalize
fusesoc
gdsfactory
gdspy
ghdl
ghdl-yosys-plugin
GlobalFoundries
gtkwave
IIC-OSIC-TOOLS
irsim
iverilog
JKU
klayout
klayout-pex
Kwantae
lctime
libman
MOSFET
netgen
netlist
ngspice
ngspyce
noVNC
nvc
OSDI
PDKs
PEX
SiGe
SkyWater
VcXsrc
VcXsrv
VirtioFS
XLaunch
XQuartz
ORFS
WSLg
OpenROAD
OpenEMS
PyOPUS
LIBGL
IIC-OSIC-Tools
Podman
Murmann
15 changes: 15 additions & 0 deletions .vscode/ltex.hiddenFalsePositives.en-US.txt

Large diffs are not rendered by default.

39 changes: 39 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
{
"cSpell.words": [
"ASIC",
"cocotb",
"designinit",
"Devcontainers",
"edalize",
"efabless",
"FOSS",
"fusesoc",
"gdsfactory",
"gdspy",
"ghdl",
"gtkwave",
"irsim",
"iverilog",
"KLAYOUT",
"Kwantae",
"lctime",
"libman",
"netgen",
"ngspyce",
"openlane",
"openram",
"openroad",
"opensta",
"openvaf",
"ORFS",
"OSIC",
"PDKPATH",
"pdks",
"stdcell",
"USERINIT",
"Verilog",
"VHDL",
"Xvnc",
"yosys"
]
}
15 changes: 15 additions & 0 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
cff-version: 1.2.0
message: "If you use this Docker container or base your work on it, please cite it as below."
authors:
- family-names: Pretl
given-names: Harald
orcid: https://orcid.org/0000-0003-1519-076X
- family-names: Zachl
given-names: Georg
orcid: https://orcid.org/0009-0006-7676-6389
title: "GitHub repository of the IIC-OSIC-TOOLS"
date-released: 2023-09-18
url: https://github.com/iic-jku/IIC-OSIC-TOOLS
identifiers:
- type: doi
value: 10.5281/zenodo.14387234
109 changes: 109 additions & 0 deletions KNOWN_ISSUES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
# IIC-OSIC-TOOLS Known Issues

## Container

### Using the X11-mode on Linux with Docker Desktop

Due to the quite different way of how Docker Desktop works to the classical Docker CE, `socat` is required to forward the X11 sockets to the container.
To install socat, here are the commands for popular distributions:
- Ubuntu/Debian (deb-based): `sudo apt-get -y install socat`
- Arch/Manjaro (pacman-based): `pacman -S socat`
- Fedora/RHEL/Rocky/Alma (rpm-based, RHEL-clones): `dnf -y install socat`
- SuSE/openSUSE (rpm-based, SuSE-clones): `zypper install socat`

### Switching to WSLg for graphical applications on Windows

The current variant of the `start_x.bat` for Windows uses WSLg for audio & visual output, which comes preinstalled/packaged with WSL (Windows 10 Build 19044 or Windows 11). If problems arise, update WSL according to [the Microsoft website](https://learn.microsoft.com/en-us/windows/wsl/tutorials/gui-apps).

### Frequent crashes of `xschem` on Windows 10+

Since the update of the image to Ubuntu 24.04 LTS with tag `2025.01` there are reports of frequent crashes of `xschem` under Windows 11 using certain versions of specific X-servers. It has been found that using <https://vcxsrv.com> version `64.1.17.2.0` under Windows 11 works well (see [issue 92](https://github.com/iic-jku/IIC-OSIC-TOOLS/issues/92)).

### Issues with OpenGL on some environments

A few applications are using OpenGL graphics, which can lead to issues on some computing environments. A (potential) remedy is to enable SW-rendering with can be achieved by setting the following environment variable inside the Docker VM:

```bash
export LIBGL_ALWAYS_INDIRECT=0
```

### Issues with KLayout PCell libraries

Some PCell libraries were developed for `gdsfactory7`, such as
- Skywater `sky130A`
- Global Foundries `gf180mcuD`

The image installs `gdsfactory9` by default, which is incompatible with `gdsfactory7` code (issue https://github.com/iic-jku/IIC-OSIC-TOOLS/issues/162#issuecomment-3219211141)

#### Workaround for GF180

The workaround, as described by the PCell authors [in this README](https://github.com/mabrains/gf180mcu_setup_pdk/blob/main/README.md),
is to start KLayout from a custom Python VENV:
```bash
# create the venv (done once)
mkdir -p /foss/designs/venvs/
python3 -m venv /foss/designs/venvs/klayout_gf180
pip3 install gdsfactory==7.9.4

# this must be done everytime
source /foss/designs/venvs/klayout_gf180/bin/activate
export USER=designer
export KLAYOUT_PYTHONPATH=/foss/designs/venvs/klayout_gf180/lib/python3.12/site-packages
sak-pdk gf180mcuD
klayout -e
```

### The OpenROAD Flow Scripts (ORFS)

The ORFS require a recent version of `openroad`. Since image tag `2024.12` a recent version is installed alongside the OpenROAD version required by `librelane`. In order to use the ORFS, **before** calling the `make` script make sure to set the following env vars:

```bash
export YOSYS_EXE=$TOOLS/yosys/bin/yosys
export OPENROAD_EXE=$TOOLS/openroad-latest/bin/openroad
export OPENSTA_EXE=$TOOLS/openroad-latest/bin/sta
```

Since the OpenROAD and ORFS version are tightly interlinked with regular interface breaks, the ORFS Git commit hash at image build time is stored in `$TOOLS/openroad-latest/ORFS_COMMIT`. After cloning ORFS from GitHub use the following command to switch to a working and tested ORFS version:

```bash
git checkout $(cat $TOOLS/openroad-latest/ORFS_COMMIT)
```
### SiliconCompiler

SiliconCompiler also requires a recent version of OpenROAD and OpenSTA. Before invoking SiliconCompiler, you
need to update your `$PATH`:

```bash
export PATH=${TOOLS}/openroad-latest/bin:${PATH}
```

See: <https://github.com/iic-jku/IIC-OSIC-TOOLS/issues/158>

### Surfer crashing

As of image `2025.01` Surfer has been added. Surfer is known to crash on quite a few platforms due to issues with OpenGL drivers. If Surfer works on your platform, great. If Surfer does crash then this is not good, but there is currently no solution available. Please do not file bug reports. As soon as we are aware of a solution for these crashes we will implement the fixes.

### OpenEMS

The visualization tool "AppCSXCAD" will not work in the container with our default settings (`vtkXOpenGLRenderWindow (0x....): Cannot create GLX context. Aborting.`). The issue has been located to be connected with the environment variable "LIBGL_ALWAYS_INDIRECT". As a workaround, we suggest either unsetting the variable or setting it to 0 (`unset LIBGL_ALWAYS_INDIRECT` or `export LIBGL_ALWAYS_INDIRECT=0`) which is persistent for the running terminal or run AppCSXCAD with the variable set to zero inline: `LIBGL_ALWAYS_INDIRECT=0 AppCSXCAD`.

### PyOPUS

`PyOPUS` is removed, as build fails, and it forces `numpy` to version 1.

### Podman compatibility

The IIC-OSIC-Tools container can be run using Podman instead of Docker (with the Podman Docker compatible CLI), but it introduces some problems:

- By default, Podman mounts all bind-mounts/volumes as root, even though the `UID` inside the container is != 0, which creates some problems when accessing files inside the container. To work around this issue, we suggest the following procedure:
- Edit the desired start script and find/replace all occurrences of `:rw` with `:U,rw`. Then Podman will mount all listed directories with the given `UID` inside the container.

### CharLib

The `charlib` tools works but needs the following setting: `simulator: ngspice-subprocess` in the `settings` block.

See <https://github.com/iic-jku/IIC-OSIC-TOOLS/issues/145#issuecomment-3410979281>

## Build

No known issues at the moment.
3 changes: 2 additions & 1 deletion LICENSE
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,8 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright [yyyy] [name of copyright owner]
Copyright 2021-2025 Department for Integrated Circuits,
Johannes Kepler University, Linz, Austria

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
Loading