Crates.io | ice40 |
lib.rs | ice40 |
version | 0.3.0 |
source | src |
created_at | 2022-01-17 22:22:57.690475 |
updated_at | 2024-05-15 13:06:17.65894 |
description | An embedded-hal driver for configuration of ice40 FPGA devices. |
homepage | |
repository | https://github.com/Atmelfan/ice40-rs |
max_upload_size | |
id | 515799 |
size | 137,769 |
This is an embedded-hal driver for configuration of iCE40 series FPGAs from Lattice.
See technical note TN1248 - iCE40 Programming and Configuration on how the slave configuration interfaceworks.
[dependencies]
ice40-rs = "0.3"
// Configure device with bitstream
let mut device = ice40::Device::new(spi, ss, done, reset, DummyDelay);
device
.configure(&bitstream[..])
.expect("Failed to configure FPGA");
The examples folder contains a utility for configuring a device using linux and ftdi embedded-hal.
You can use them with the following commands:
Assumes the FTDI circuit is connected like the ice40-breakout board.
cargo run --example ftdi -- my_image.bin
ice40-rs/ftdi 0.1.0
FTDI demo
USAGE:
ftdi [OPTIONS] <binary>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-f, --frequency <frequency> Bus frequency [default: 3000000]
ARGS:
<binary> Binary file
Default arguments are for a Raspberry pi Model 4.
cargo run --example linux -- my_image.bin
ice40-rs/linux 0.1.0
Linux demo
USAGE:
linux [OPTIONS] <binary>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
--cdone <cdone> CDONE pin [default: 24]
--creset <creset> CRESET pin [default: 25]
-f, --frequency <frequency> Bus frequency [default: 3000000]
--spi <spi> SPI bus [default: /dev/spidev0.0]
--ss <ss> SS pin [default: 8]
ARGS:
<binary> Binary file
The library only support volatile configuration of the device, not external nonvolatile memory.