Skip to content

Accessing "external" SPI flash... #2

@DrmnSamoLiu

Description

@DrmnSamoLiu

Hi, first of all I'm really glad you made this wrapper as it provides a starting point and reference for a FPGA noob like me to start modifying picosoc verilog codes. Thank you for creating this repo!

I've just started to learn verilog and I'm very new to FPGA, my goal now is try to let picosoc read firmware.bin from an "external" SPI flash connected to Basys3 via pmod ports.

There exist picosoc example for TinyFPGA BX (https://github.com/tinyfpga/TinyFPGA-BX/tree/master/examples/picosoc) which does exactly this, but unfortunately the code is using some ICE40 FPGA primitives which won't work on Basys3.

For Basys3 I found a picosoc example from symbiflow-examples repo, however it just simply rips all the SPI flash related stuff from its basys3.v

Then I found your repo which seems to still keeping the SPI flash interface. So basically I'm trying to frankenstein all these 3 repos together and make a version of picosoc that will run firmware.bin located at offset 0x50000 in the external SPI flash, just like TinyFPGA BX example, but on a Basys3 board.

My problem now is that I seemed to have some success that the right most 5 leds will light up after boot , and they won't light up if I disconnected the SPI flash so I'm quite sure it's reading from the flash.
However it's not expected behavior and I'm stuck at finding where I might be wrong.
The firmware.bin I'm using is rebuilt from progmem.v from the symbiflow example, the expected behavior should be a led animation running from right to left and UART showing things.

I've try to fix it for three days now and having no progress, so I thought maybe I really should seek help from pros like you....

Here is my repo with the latest code I'm using, thanks in advance for any advice!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions