Skip to content
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

Feature Request - TinyFPGA BX synthesis #1902

Open
hawaclawek opened this issue Oct 31, 2023 · 3 comments
Open

Feature Request - TinyFPGA BX synthesis #1902

hawaclawek opened this issue Oct 31, 2023 · 3 comments

Comments

@hawaclawek
Copy link

hawaclawek commented Oct 31, 2023

At the moment, it seems Logisim-evolution is only supporting target FPGA synthesis tools from Xilinx and Intel (Xilinx ISE, Xilinx Vivado, Intel Quartus Prime). The low-cost, open-source TinyFPGA BX boards ( https://tinyfpga.com/ ), however, feature a built-in USB bootloader that allows to load a Verilog program onto the device simply via Python script. After preparing a Python venv (See description below) all that one essentially needs to do in the target directory is to:

Our university would like to utilize the power of Logisim-evolution with regards to designing digital circuits in educational settings and combine it with the easy to use and open source TinyFPGA BX boards. However, at the moment, in the FPGA board editor window, after selecting an image of the board (e.g. the one attached that comes shipped with the Tiny FPGA BX board, see https://www.mouser.de/images/marketingid/2020/microsites/169585358/TinyFPGA_BX_BLT.png ), one cannot select another FPGA manufacturer than Altera, Xilinx or Vivado (Tiny FPGA BX runs a Lattice ICE40LP8K FPGA).

It would be sufficient for us if Logisim-evolution would let us export a Verilog file with the pinning of mentioned .pcf file, that we can load onto the board via mentioned Python script ourselves. Is there any chance that the usage of such a "custom / open" synthesis tool pipeline is implemented into Logisim-evolution? Other boards with similar bootloader approaches could benefit from this as well.

Ad Python venv:

  • Install Python 3.6.5 and add to Path variable
  • Create Python 3.6.5 venv
  • Activate venv
  • pip install apio==0.4.0b5 tinyprog
  • apio install system scons icestorm iverilog
  • pip install --upgrade --no-cache-dir "tinyprog>=1.0.23"

Ad Sources:
https://tinyfpga.com/bx/guide.html
https://github.com/FPGAwars/apio
https://apiodoc.readthedocs.io/en/stable/source/quick_start.html

@BFH-ktt1 BFH-ktt1 added enhancement pri std Standard importance labels Nov 3, 2023
@BFH-ktt1
Copy link
Collaborator

BFH-ktt1 commented Nov 3, 2023

@hawaclawek : I like this approach a lot. For your information: The nightly build of logisim already contains a route that supports the open-source toolchain (GHDL)-Yosys-nextnpr-ecp5 for the Lattice ECP-5 family of FPGA's (with as an example the GECKO5Education (https://github.com/logisim-evolution/GECKO5Education)). I will look into the details of the tinyfpga board. However, my time is quite limited.

@hawaclawek
Copy link
Author

hawaclawek commented Nov 3, 2023

@BFH-ktt1 : Thanks for the quick reply and good news! Looking forward to any progress on this then.
In case you need us to test with the actual boards, we're happy to assist.

@cslammy
Copy link

cslammy commented Feb 17, 2024

Seconding this request....TinyBX support would be very helpful for teaching logic and FPGA basics--TinyBX is arguably the "Arduino of FPGA"; Its affordability and simplicity makes it a good choice for students and newbies. Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants