kestrel: Initialize rom with ecpbram contents to enable updates after synthisys
Please note that this isn't the pretties change, but it gets the job done. Ideally, the litex / ecp5 tooling would be updated to support this, but this was a quick and easy hack.
- By default actual ROM contents are stuffed with random data generated from ecpbram -g. This is needed to allow ecpbram to properly stuff the bitstream later.
- Initial ROM contents are saved to the gateware_folder as rom.init (needed for stuffing)
- Actual ROM contents requested are save to the gateware folder as rom_data.init
- Once the FPGA has been build, the .svf and .bit files are updated with the originally requested ROM.
- Future ROM build can be replaced by using ecpbram / ecppack as stated in the readme.
Note: This requires https://gitlab.raptorengineering.com/kestrel-collaboration/kestrel-litex/migen/-/merge_requests/1 to function correctly.