Repository navigation
Description
I'm following a combination of the instructions at
https://platform.chipfoundry.io/knowledge-base/article/start-a-project
and
https://github.com/chipfoundry/openframe_user_project
on a Fedora 44 VM.
I'm trying to harden the default (timer.v) design, as well as replace it with a SystemVerilog re-implementation (see timer.sv, attached).
I've gone through the following list of steps:
git clone https://github.com/chipfoundry/openframe_user_projectcd openframe_user_project- Optionally (replace with SystemVerilog equivalent implementation):
a.sed -i "s|rtl/timer.v|rtl/timer.sv|" openlane/user_proj_timer/config.json
b.sed -i "s|rtl/timer.v|rtl/timer.sv|" signoff/user_proj_timer/openlane-signoff/resolved.json
c.git mv verilog/rtl/timer.v verilog/rtl/timer.sv
d.cp ~/timer.sv verilog/rtl/timer.sv
e.sed -i 's/undef SYNC_RESET/define SYNC_RESET/' verilog/rtl/timer.sv(optionally switch to synchronous reset) python3 -m venv venv; source venv/bin/activatepip install chipfoundry-clicf init(accept defaults; select "2. Create a new platform project")cf setupchcon -Rt svirt_sandbox_file_t .(on Fedora, allow SELinux docker access to current directory)cf harden --list(returns "openframe_project_wrapper" and "user_proj_timer")cf harden user_proj_timer(succeeds, including LVS!)cf harden openframe_project_wrapper(fails, see below)cf verify --all(fails, see below)cf precheck(fails LVS if using SystemVerilogtimer.sv, see Step 3 above, fully succeeds with originaltimer.v)
I'm running into the following set of issues:
-
Step 11 (
cf harden openframe_project_wrapper) fails with:PermissionError: './openlane/openframe_project_wrapper//../../CF_gpio_config/rtl/CF_gpio_config.v' is not located any path readable to LibreLaneNot sure why it insists on looking for
CF_gpio_config.v, because if I try to runcf gpio-configafter Step 7, I also get:GPIO configuration is not available for openframe projects. Openframe projects do not use user_defines.v. Aborted! -
Step 12 (
cf verify --all) fails with:FileNotFoundError: [Errno 2] No such file or directory: 'user_proj_tests/user_proj_tests.yaml'Not sure if this is somehow related (or, alternatively, orthogonal) to the previous (Step 11) error...
-
Step 13 (
cf precheck) -- specifically the "LVS" step: succeeds with the unmodified Verilog design (timer.v), but shows up as failing after I replace the design with a SystemVerilog equivaent (timer.sv, see Optional Step 3 above). Not sure (again) whether this is related to being unable to successfully runcf harden openframe_project_wrapperin Step 11), or something else entirely.
Any clue as to what I might be missing much appreciated!
Activity
marwaneltoukhy commentedon Sep 24, 2026
fixed with PR #13
gsomlo commentedon Sep 24, 2026
Marwan,
Thanks much for the update -- it did indeed fix most (but unfortunately not all) of the issues I'm observing.
At the moment, right after successfully running
cf harden openframe_project_wrapper, attempting to runcf verify --all(still) fails with:There is indeed no
./user_proj_testsdirectory, no idea (1) whycf verifyexpects it, and (2) if it's the user's responsibility to provide it, what should it actually contain.Running
cf precheckpasses everything (exceptMagic DRCC, which is skipped), including when I switch to SystemVeriog, and including when I switch from async to synchronous reset, which is nice!Aside from the lingering
cf verify --allmystery, I'm wondering whether the README could clarify option (1) ofcf init: what is "Link to an existing platform project" supposed to accomplish, and why is it the default (vs. (2) -- create a new platform project). I keep picking the latter each time I test, but it's an ignorant guess, rather than a confident, deliberate choice that I'm making... :DThanks again,
--G
marwaneltoukhy commentedon Sep 28, 2026
It has been fixed and pushed, please try it and let me know if it's working on your end