Traceback (most recent call last):
File "simsoc.py", line 216, in <module>
File "/home/build/.local/lib/python3.7/site-packages/nmigen/build/plat.py", line 88, in build
File "/home/build/.local/lib/python3.7/site-packages/nmigen/_toolchain.py", line 36, in require_tool
nmigen._toolchain.ToolNotFound: Could not find required tool yosys in PATH. Place it directly in PATH or specify path explicitly via the YOSYS environment variable
This happens when Yosys is requested in a platform class.
The text was updated successfully, but these errors were encountered:
Did you expect to be able to use nmigen-yosys for synthesis based on documentation or for some other reason? The README and the PyPI package description should mention that, maybe we should mention it elsewhere?
I thought it would work for platforms that only rely on verilog code generation in Yosys (like ECP5 with Diamond) but I wasn't considering the platforms that use yosys for their synthesis. That means if we want to be able to use nmigen-yosys in platforms we'd have to specify if we need a Yosys version that has the features we need, which will add more code than reasonable => I'm closing this issue.
Regarding YoWASP, how can you use it with nMigen since the executables are prefixed?
Nope but I'm using a custom platform based off the ECP5 platform definition (I need a Verilog file with all the I/O and specials cells instantiated that I can feed in Icarus Verilog with Diamond's Verilog models to emulate everything on my FPGA board). Diamond users should theoretically face the same issues as I do because the Yosys executable they use to generate verilog comes from the "require_tool" function (https://github.com/nmigen/nmigen/blob/master/nmigen/vendor/lattice_ecp5.py#L178-L182).
I'm okay with using env variables for setting which Yosys executable to use, I think it's a good approach.