-
Notifications
You must be signed in to change notification settings - Fork 112
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
docs: Introduce OpenFPGALoader programming tool #2240
Conversation
Hi @mithro! |
Can you provide some feedback @umarcor ? |
@acomodi - Any thoughts? |
@kgugala - Any thoughts on if we can have programming tested using GitHub self hosted runners in the future? |
Overall, I think that writing some docs about OpenFPGALoader is a good proposal. However, I'm unsure about writing that content in this repo/place. It took me some effort to find that it's going to be served in https://symbiflow.readthedocs.io/projects/arch-defs/en/latest/getting-started.html. The "About" in the sidebar points to https://symbiflow.github.io/, the first paragraph in the readme points to https://github.com/SymbiFlow/symbiflow-examples. It's only the shield/badge the one pointing to the arch-defs docs. Furthermore, this is no exclusive about "developers who want to contribute to architecture definitions" but for "any user or developer of symbiflow who needs to program/configure a board/device". Therefore, I recommend to have this content written in https://github.com/SymbiFlow/symbiflow-examples instead. It's ok to then cross-reference from here. |
docs/source/getting-started.rst
Outdated
@@ -94,7 +94,93 @@ or for ``Ninja``: | |||
|
|||
.. note:: | |||
|
|||
Loading the bitstream into an FPGA can be done outside of the Symbiflow with tools that support the target architecture, such as for example `Vivado` or `xc3sprog` for Xilinx 7-Series FPGAs or ``iceprog`` for Lattice iCE40. | |||
Loading the bitstream into an FPGA can be done outside of the Symbiflow with tools that support the target architecture. A good example is `openFPGALoader` or others such as `Vivado` and `xc3sprog` for Xilinx 7-Series FPGAs or ``iceprog`` for Lattice iCE40. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I recommend not to add references to other programming tools OR to do it "properly". With proper I mean something such as:
There are multiple tools for loading bitstreams into FPGA development boards. Typically, each tool supports an specific target family or the lines of products of a vendor. Some of the most known are the following:
- Xilinx/Digilent's iMPACT, ChipScope, EDK, Hardware Manager, xc3sprog, etc.
- Lattice's Standalone Programmer.
- OpenOCD.
- dfu-util.
- Icestorm's iceprog.
- IceSugar's icesprog.
- Greg Davill's ecpprog.
- fujprog for ULX2/ULX3.
Fortunately, since 2019, a universal utility named openFPGALoader is being developed, which aims to provide a replacement for most of those. It supports many different boards with FPGAs based on the architectures including xc7, ECP5, iCE40 and many more. It can utilize a variety of the programming adapters based on JTAG, DAP interface, ORBTrace, DFU and FTDI chips.
Moreover, that list might be contributed in https://github.com/hdl/constraints or as a section/tag in https://github.com/hdl/awesome, so that it could be just referenced from here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
docs/source/getting-started.rst
Outdated
Installing OpenFPGALoader | ||
************************* | ||
|
||
The most reliable way of getting OpenFPGALoader installed on your computer is to |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think the most reliable way is building a tool from sources. openFPGALoader is available in several packaging solutions (such as containers or MSYS2, see https://github.com/hdl/packages; also hdl/conda-prog#22), and CI generates "nightly" packages (https://github.com/trabucayre/openFPGALoader/releases/tag/nightly). Therefore, I believe the docs in symbiflow should recommend using one of those pre-built solutions, if suitable.
Moreover, instructions about how to build and install openFPGALoader are better contributed in the openFPGALoader repo (https://github.com/trabucayre/openFPGALoader/blob/master/INSTALL.md), since that knowledge is not specific about SymbiFlow. It's ok to explain if some specific setting or variable needs to be used in the context of SymbiFLow.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would say from a SymbiFlow perspective the two programming tools we want to support are; I think all the other tools can be ignored and features added to (a) and (b) to cover anything missing. |
Signed-off-by: Paweł Czarnecki <pczarnecki@antmicro.com>
Signed-off-by: Paweł Czarnecki <pczarnecki@antmicro.com>
337198f
to
79ae868
Compare
LGTM. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
@kgugla - Can you check this and merge if you also think it looks good? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
This PR introduces a new FPGA programming tool - OpenFPGALoader
It is addressing issue #2237
We are adding a note in the docs with a plan to add a full support for this tool in the future.
Signed-off-by: Paweł Czarnecki pczarnecki@antmicro.com