Add building blinky example to the readme #40
					 1 changed files with 37 additions and 0 deletions
				
			
		
							
								
								
									
										37
									
								
								README.md
									
										
									
									
									
								
							
							
						
						
									
										37
									
								
								README.md
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -8,6 +8,43 @@ Fayalite is a library for designing digital hardware -- a hardware description l
 | 
			
		|||
 | 
			
		||||
[FIRRTL]: https://github.com/chipsalliance/firrtl-spec
 | 
			
		||||
 | 
			
		||||
# Building the [Blinky example] for the Arty A7 100T on Linux
 | 
			
		||||
 | 
			
		||||
[Blinky example]: crates/fayalite/examples/blinky.rs
 | 
			
		||||
 | 
			
		||||
This uses the container image containing all the external programs and files that Fayalite needs to build for FPGAs, the sources for the container image are in https://git.libre-chip.org/libre-chip/fayalite-deps
 | 
			
		||||
 | 
			
		||||
Steps:
 | 
			
		||||
 | 
			
		||||
Install podman (or docker).
 | 
			
		||||
 | 
			
		||||
Run:
 | 
			
		||||
```bash
 | 
			
		||||
podman run --rm --security-opt label=disable --volume="$(pwd):$(pwd)" -w="$(pwd)" -it git.libre-chip.org/libre-chip/fayalite-deps:latest cargo run --example blinky yosys-nextpnr-xray --nextpnr-xilinx-chipdb-dir /opt/fayalite-deps/nextpnr-xilinx/xilinx --prjxray-db-dir /opt/fayalite-deps/prjxray-db --platform arty-a7-100t -o target/blinky-out
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
To actually program the FPGA, you'll need to install [openFPGALoader] on your host OS:
 | 
			
		||||
 | 
			
		||||
[openFPGALoader]: https://github.com/trabucayre/openFPGALoader
 | 
			
		||||
 | 
			
		||||
On Debian 12:
 | 
			
		||||
```bash
 | 
			
		||||
sudo apt update && sudo apt install openfpgaloader
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Then program the FPGA:
 | 
			
		||||
```bash
 | 
			
		||||
sudo openFPGALoader --board arty_a7_100t target/blinky-out/blinky.bit
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
This will program the FPGA but leave the Flash chip unmodified, so the FPGA will revert when the board is power-cycled.
 | 
			
		||||
 | 
			
		||||
To program the Flash also, so it stays programmed when power-cycling the board:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
sudo openFPGALoader --board arty_a7_100t -f target/blinky-out/blinky.bit
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
# Funding
 | 
			
		||||
 | 
			
		||||
## NLnet Grants
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue