These are chat archives for cliffordwolf/yosys

25th
Apr 2016
Scott Baker
@scottlbaker
Apr 25 2016 20:35
Thanks everyone, the programming permission problem that I had is now resolved. Now I have a new question: I have a design with an embedded processor that needs to boot from a block RAM structure. I know I can write the RTL to include initial RAM values but I would like a method that doesn't require a full FPGA recompilation to change the program in the block RAMs. Is there a way to modify a Lattice bitstream file to load new data for the block RAMs?
Piotr Esden-Tempski
@esden
Apr 25 2016 21:03
I have not done any of that, and I did not even know that this is something one would want to do.
but I googled for the icestorm documentation and found this
you might be able to modify the bitstream to include a different BRAM in the stream
you could also look for the options available in IceProg utility
maybe it provides a way of reprogramming the BRAM section on it’s own without touching the rest of the bitstream on the chip
again not sure if that is useful at all, as I have never done such a thing
I know @cliffordwolf was uploading the bitstream directly to the FPGA bypassing the bitstream flash completely using his tools
that might be something you want to look into
Scott Baker
@scottlbaker
Apr 25 2016 22:51
Thanks for the pointer Piotr. My current iCE40 FPGA project includes an 8-bit (soft IP) microprocessor connected to a 4Kx8 RAM which is composed from 8 2Kx2 block RAMs. It would be useful to be able to load new programs (for the 8-bit micro) into the 4kx8 RAM without requiring an FPGA recompile or reroute. The proposed flow would need to a) analyze the FPGA netlist to figure out how the 8 2Kx2 block RAMs (that compose the 4Kx8 RAM) are arranged and named. b) split the Intel hex file that contains the new program (8-bit-micro) into 8 sections. c) find each of the 8 block RAM data sections in the bitstream and replace the current content of each section with the new program content. I think the icestorm project may have reverse-engineered enough info to make this proposed flow possible.
Piotr Esden-Tempski
@esden
Apr 25 2016 22:59
Yeah as I said, you will have to look into it yourself. All I said is only based on <5min google search. I am not sure there is an icestorm mailinglist. But maybe an issue on github would help or asking on stack overflow. Otherwise you will have to go down the rabbit hole of figuring it out yourself. :( I bet it would be useful for everyone to have this functionality. I assume this is similar to what @cliffordwolf did on the http://icoboard.org/ running the https://github.com/cliffordwolf/picorv32
there are some tools in the raspberry pi image that are used to upload the code to the picorv32 as far as I understand
again, you need to go down that rabbit hole yourself … I do not know enough about it to be helpful
Scott Baker
@scottlbaker
Apr 25 2016 23:17
Thanks Piotr. I am hoping that Clifford Wolf reads this thread and that perhaps he has already solved this. I have also filed a Lattice tech support ticket to ask if they have a solution. Several years ago I faced a similar issue with Xilinx and the iSE tool suite and I was able to create a flow to do this.
Piotr Esden-Tempski
@esden
Apr 25 2016 23:20
you know that Lattice has nothing to do and has no association with icestorm or Yosys and I doubt they will be willing or able to help you with that...
Scott Baker
@scottlbaker
Apr 25 2016 23:34
Yes, my question to Lattice did not mention icestorm or yosys.