Taskfile workflow overhaul + chip-level LVS + configurable top-cell name - #28
Merged
Conversation
SpinalHDL can report all blackbox Verilog files added inside modules. Pass those files to the OpenROADTools to add them to OpenROAD. Signed-off-by: Daniel Schultz <dnltz@aesc-silicon.de>
Move simulation and asic tasks into dedicated namespaces and rename some task to better match the purpose. Additionally, merge some task into one like "cosim" and "cosim-gui" by calling the second with arguments with the first task. Signed-off-by: Daniel Schultz <dnltz@aesc-silicon.de>
Print a useful error message whenever the SoC metadata are not existing. Signed-off-by: Daniel Schultz <dnltz@aesc-silicon.de>
Add a new task to run a chip-level LVS check. Signed-off-by: Daniel Schultz <dnltz@aesc-silicon.de>
Introduce a TOPCELL variable (default "<TARGET>Top") threaded through the container env into ORFS and the SpinalHDL generators, allowing the whole design top cell - Verilog module, DESIGN_NAME/DESIGN_NICKNAME, results dir, --topcell and generated files - to be renamed from one place. Apply it in the ElemRV-H and ElemRV-C generators via setDefinitionName + setTopCellName. Signed-off-by: Daniel Schultz <dnltz@aesc-silicon.de>
Print a useful error message whenever the firmware is missing when running the emulation, co-simulation or simulation tasks. Signed-off-by: Daniel Schultz <dnltz@aesc-silicon.de>
Signed-off-by: Daniel Schultz <dnltz@aesc-silicon.de>
dnltz
force-pushed
the
WIP/dnltz/lvs-and-topcell
branch
from
July 21, 2026 06:00
151084a to
e3ed225
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Reworks the Taskfile-based flows into clear
asic:/sim:namespaces, adds achip-level LVS flow, makes the design top-cell name configurable via a single
TOPCELLvariable, and adds guard rails (preconditions) so common mistakes failwith a helpful message instead of a cryptic tool error. Also auto-forwards
SpinalHDL blackbox Verilog to OpenROAD, and bumps Nafarr/Zibal to pull in the
Changes
Task reorganization (
Taskfile: Rework tasks)asic:andsim:namespaces(alongside the existing
fpga:/flash:/zephyr:includes).layout→build,filler→fill,run-drc→drc,view-simulation→waves(old names kept as aliases).open-*/view-*KLayout & OpenROAD →asic:klayout/asic:openroadwith
mode=empty|drc.cosim/cosim-guiandemulate/emulate-gui→ single task withgui=1.Chip-level LVS (
Taskfile: asic: Add LVS task)asic:netlistgenerates the CDL schematic netlist via ORFS.asic:lvsgenerates the netlist and runs the KLayout LVS deck against thefinal GDS. (Library tasks
lib-generate-netlist/lib-run-lvsland in Zibal.)Configurable top-cell name (
Taskfile: Add configurable chip top-cell name via TOPCELL)TOPCELLvariable (default<TARGET>Top) threaded through the containerenv into both ORFS and the SpinalHDL generators, renaming the whole design
top cell from one place: Verilog module,
DESIGN_NAME/DESIGN_NICKNAME,results dir,
--topcell, and generated file names.setDefinitionName+setTopCellName. Default-preserving: unsetTOPCELLreproduces current behavior.Preconditions
asic:buildfails with a clear "Design not prepared — run asic:prepare" messagewhen the SoC metadata (
<top>.mk) is missing.sim:emulate/sim:cosimfail with a "build firmware first" message when theimage_container.imgis missing.Blackbox Verilog (
hardware: elemrv_{h,c}: Automatically add blackbox Verilog)are added to the OpenROAD flow automatically.
Docs / CI
docs/source/**, and.travis.ymlto the new task names.Manifest
OpenROADToolstop-cell / blackbox changes.Notes / testing
TOPCELLpropagation, and preconditions wereverified via
task --dry(default vs. override paths, precondition firing).setDefinitionName/setTopCellName) have notbeen compiled here — confirm with a
task asic:prepare(and that synthesis'-top $DESIGN_NAMEmatches the emitted module).ORFS/OpenROAD version providing a CDL for the target PDK.