picorv32/spiflash
Clifford Wolf 571f5d5df7 Add spiflash testbench and add support for QSPI and DDR QSPI to SPI flash sim model 2017-08-05 17:08:16 +02:00
..
.gitignore Add spiflash testbench and add support for QSPI and DDR QSPI to SPI flash sim model 2017-08-05 17:08:16 +02:00
Makefile Add spiflash testbench and add support for QSPI and DDR QSPI to SPI flash sim model 2017-08-05 17:08:16 +02:00
README.md Update spiflash README 2017-07-29 16:09:29 +02:00
firmware.s Improve spiflash testbench and firmware 2017-07-29 21:34:29 +02:00
pinout.pcf Change spiflash pin interfaces to support quad SPI 2017-08-04 21:05:05 +02:00
spiflash.v Add spiflash testbench and add support for QSPI and DDR QSPI to SPI flash sim model 2017-08-05 17:08:16 +02:00
spiflash_tb.v Add spiflash testbench and add support for QSPI and DDR QSPI to SPI flash sim model 2017-08-05 17:08:16 +02:00
spimemio.v Change spiflash pin interfaces to support quad SPI 2017-08-04 21:05:05 +02:00
testbench.v Change spiflash pin interfaces to support quad SPI 2017-08-04 21:05:05 +02:00
top.v Change spiflash pin interfaces to support quad SPI 2017-08-04 21:05:05 +02:00

README.md

PicoRV32 SPI-Flash Demo

This is a simple PicoRV32 example design that can run code directly from an SPI flash chip. This example design uses the Lattice iCE40-HX8K Breakout Board.

The flash is mapped to the memory region starting at 0x80000000. The reset vector is set to 0x80100000, i.e. at the 1MB offset inside the flash memory.

A small scratchpad memory (default 256 words, i.e. 1 kB) is mapped to address 0x00000000. A simple GPIO controller is mapped to address 0xC0000000.

Run make test to run the test bench (and create testbench.vcd).

Run make prog to build the configuration bit-stream and firmware images and upload them to a connected iCE40-HX8K Breakout Board.

File Description
top.v Top-level Verilog module for the design
spimemio.v Memory controller that interfaces to external SPI flash
spiflash.v Simulation model of an SPI flash (used by testbench.v)
testbench.v Simple test bench for the design (requires firmware.hex).
firmware.s Assembler source for firmware.hex/firmware.bin.
pinout.pcf Pin constraints for implementation on iCE40-HX8K Breakout Board