-
Notifications
You must be signed in to change notification settings - Fork 56
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
apio error, can find ram.v for j1a #82
Comments
I don't know how to fix this, or even if it should be fixed. It looks to me like you're trying to build this project with apio (which automates a lot of stuff that is otherwise done with make).
The build is expected to be done like so (with an icestick plugged in!): cd swapforth/j1a
make -C icestorm j1a That does the build and also tries to flash it to the icestick. Once flashed, you connect to it from the same directory with:
Then you can run Further explanation:
build/ram.v: build/nuc.hex mkrom.py
python mkrom.py
This is the way it is so you can call You then rebuild ram.v again with make, before rebuilding the fpga bitfile again ( There is an additional mechanism so you can have the system call a word on startup, so it can run an application. If you The nuc.hex you get if there is none (which initially there isn't - This is done running an emulation of the j1a under verilator, which you kick off with If or when verilator breaks this (they're a moving target) you can still compile the full swapforth image on the actual hardware, after connecting with a #include ../swapforth.fs
#flash ../build/nuc.hex
#bye then re-run This was all written long before icestorm had the facility to replace block ram initial contents without rebuilding the bitfile, which is a thing now, although swapforth doesn't (yet) use it. I'm not sure what apio is doing - but I'm sure it's just not expecting the build procedure to be how it is (which is decidedly a bit complex). This therefore isn't a swapforth bug, so much as it's a apio bug. I think apio tries to guess how to build a particular project, taking the place of make and a relatively complex Makefile like this. I'd say the problem here is that apio isn't noticing that there's a perfectly usable Makefile nearby, and is instead trying to do its own thing? Or it's just not calling it in the expected way (which, to be fair, isn't very 'normal'). make isn't that bad - it's a very useful, flexible tool that rebuilds only things you've changed more recently than the last build (by default), swapforth's use of it isn't that complex, either - merely not guessable enough. Typically, if you don't know how to drive make for a particular project, it's good to look for and read all the Those names are the 'shortcuts' used to kick off various things, and are probably the 'user interface' the author uses. Some make targets, like 'all', 'clean', 'install' are pretty common/standardized. In this case swapforth only has 'clean', which just cleans up (almost) all the intermediate files. This actually doesn't include build/ram.v : it's mentioned in There are other projects using much more obtuse make target patterns that are more opaque to build bitfiles for FPGA's, usually so you don't have to edit said file, because it is possible to write one that knows the general steps for this, and I think this is what apio is using. |
Hello, when running
apio verify --board icestick
I get the following error.
iverilog -o hardware.out -D VCD_OUTPUT= -D NO_ICE40_DEFAULT_ASSIGNMENTS "C:\Users\jemo0.apio\packages\tools-oss-cad-suite\share\yosys/ice40/cells_sim.v" j1a.v j1a8k.v j4a.v uart.v
j1a.v:186: Include file ../build/ram.v not found
j1a.v:157: error: Superfluous comma in port declaration list.
j1a.v:168: syntax error
j1a.v:162: error: syntax error in parameter value assignment list.
j1a.v:162: error: Invalid module instantiation
j1a.v:185: syntax error
I give up.
scons: *** [hardware.out] Error 6
============================================= [ ERROR ] Took 0.34 seconds =============================================
Looking at the ja1.vs file I see reference to
include "../build/ram.v"
lined 185:
`include "../build/ram.v"
I can't seem to find the path to the parts.
Thanks,
The text was updated successfully, but these errors were encountered: