Grammar mistakes

This commit is contained in:
2025-10-07 18:12:50 +02:00
parent 67fec11cf7
commit 3b60d6fb0c
2 changed files with 21 additions and 21 deletions

View File

@@ -1,5 +1,5 @@
This repository contains a podman image whichs contains all necessary tools to generate and flash bitstream file from a SystemVerilog program. This repository contains a podman image whichs includes all the necessary tools to generate and flash a bitstream file from a SystemVerilog program.
It is build for the xilinx zybo zynq7 `xc7z010` card, but it can probably be easily edited to support another card. It is built for the Xilinx Zybo Zynq7 `xc7z010` card, but it can probably be easily adapted to support another board.
# Installation # Installation
@@ -7,7 +7,7 @@ You will need [podman](https://podman.io/) to run the image.
## Use the pre-built image ## Use the pre-built image
You can directly use the pre-build image present in the repo You can directly use the pre-built image available in the repository :
```bash ```bash
zstd -d fmn.tar.zst zstd -d fmn.tar.zst
@@ -16,27 +16,27 @@ podman load --input fmn.tar
## Build the image from source ## Build the image from source
You can build the image yourself by using this command: You can build the image yourself by using this command :
```bash ```bash
podman build -t fmn_alpine . podman build -t fmn_alpine .
``` ```
It will first create an image which will build every tools, and then create the final image containing only needed binaries and libraries. It will first create an image that builds all the tools, and then generate the final image containing only the necessary binaries and libraries.
For information, it takes around 5.63GB space and 10 minutes to build on my device. For reference, it takes about 5.63GB of space and 10 minutes to build on my machine.
# Tools # Tools
- [sv2v](https://github.com/zachjs/sv2v) : Convert SystemVerilog to Verilog. - [sv2v](https://github.com/zachjs/sv2v) : Converts SystemVerilog to Verilog.
- [yosys](https://github.com/YosysHQ/yosys) : Do RTL synthesis from verilog files. - [yosys](https://github.com/YosysHQ/yosys) : Performs RTL synthesis from verilog files.
- [nextpnr-himbaechel](https://github.com/YosysHQ/nextpnr) : placing and routing tool. - [nextpnr-himbaechel](https://github.com/YosysHQ/nextpnr) : placing and routing tool.
- [fasm2frames](https://github.com/f4pga/prjxray) : Convert fasm files to frames files. - [fasm2frames](https://github.com/f4pga/prjxray) : Converts fasm files to frames files.
- [xc7frames2bit](https://github.com/f4pga/prjxray) : Convert frames files to bitstream. - [xc7frames2bit](https://github.com/f4pga/prjxray) : Converts frames files to bitstream.
- [openFPGALoader](https://github.com/trabucayre/openFPGALoader) : Flash a bitstream on a FPGA card. - [openFPGALoader](https://github.com/trabucayre/openFPGALoader) : Flashes a bitstream onto an FPGA card.
The image also contains some [databases](https://github.com/f4pga/prjxray-db) needed for prjxray tools to work. The image also includes some [databases](https://github.com/f4pga/prjxray-db) required for the prjxray tools to function.
# Usage # Usage
See the small [example](./example/). See the provided [example](./example/).

View File

@@ -1,30 +1,30 @@
# Example # Example
This directory shows how to flash a system verilog program (A full-adder) on a Zybo `xc7z010clg400-1` card. This directory shows how to flash a SystemVerilog program (a full-adder) on a Zybo `xc7z010clg400-1` board.
## Build ## Build
Firstly, the system verilog file needs to be converted to verilog in order to use it with yosys : Firstly, the SystemVerilog file needs to be converted to verilog to use it with Yosys :
```bash ```bash
podman run --mount=type=bind,source=.,target=/root/code fmn_alpine sv2v adder.sv -w adder.v podman run --mount=type=bind,source=.,target=/root/code fmn_alpine sv2v adder.sv -w adder.v
``` ```
The mount parameter is used to provide to podman the current directory. The mount parameter is used to provide the current directory to podman.
Then, yosys can achieve the RTL synthesis of the program : Then, Yosys can perform the RTL synthesis of the program :
```bash ```bash
podman run --mount=type=bind,source=.,target=/root/code fmn_alpine yosys adder.v -p "synth_xilinx; write_json synthesis.json" podman run --mount=type=bind,source=.,target=/root/code fmn_alpine yosys adder.v -p "synth_xilinx; write_json synthesis.json"
``` ```
Nextpnr can now place and route each components using the xdc constraints file : Nextpnr can now place and route each component using the XDC constraints file :
```bash ```bash
podman run --mount=type=bind,source=.,target=/root/code fmn_alpine nextpnr-himbaechel --json synthesis.json -o xdc=adder.xdc -o fasm=out.fasm --device xc7z010clg400-1 podman run --mount=type=bind,source=.,target=/root/code fmn_alpine nextpnr-himbaechel --json synthesis.json -o xdc=adder.xdc -o fasm=out.fasm --device xc7z010clg400-1
``` ```
Now the fasm file can be converted in a frames file and then in a bitstream : Now the FASM file can be converted to a frames file and then to a bitstream :
```bash ```bash
podman run --mount=type=bind,source=.,target=/root/code fmn_alpine fasm2frames --part xc7z010clg400-1 --db-root /usr/share/xray/database/zynq7 out.fasm out.frames podman run --mount=type=bind,source=.,target=/root/code fmn_alpine fasm2frames --part xc7z010clg400-1 --db-root /usr/share/xray/database/zynq7 out.fasm out.frames
@@ -33,9 +33,9 @@ podman run --mount=type=bind,source=.,target=/root/code fmn_alpine xc7frames2bit
## Flashing the FPGA ## Flashing the FPGA
Finally, we can flash the bitstream on the card with `openFPGALoader`. Finally, we can flash the bitstream on the board with `openFPGALoader`.
Podman requires a device argument to allow openFPGALoader to access the usb interface. You can find this path with `lsusb` : Podman requires a device argument to allow `openFPGALoader` to access the USB interface. You can find this path with `lsusb` :
```txt ```txt
Bus 003 Device 005: ID 0403:6010 Future Technology Devices International, Ltd FT2232C/D/H Dual UART/FIFO IC Bus 003 Device 005: ID 0403:6010 Future Technology Devices International, Ltd FT2232C/D/H Dual UART/FIFO IC