Internal FPGA Resources

Hello!

I just dug out my Shasta+ card to play with FPGAs again. Have some thoughts about using it for radio projects. I understand that there are internal resources inside the chip - a PLL, hardcoded SPI and I2C. How to gain access to these resources?

You need to get some technical notes documents from the Lattice web site, such as the “iCE40 I2C and SPI Hardened IP User Guide”. Then use the hard IP macros SB_I2C and SB_SPI. Yes, they are rather confusing at first.
I haven’t used these yet, but have used memory macro SB_RAM512x8, similar to what is in the WebFPGA library file
verilog/library/WF_bram256x16.v at master · webfpga/verilog · GitHub
Unfortunately it looks like the WebFPGA forum isn’t very active these days, because someone who has actually used the I2C and/or SPI hard IP macros would be of more help than I can be.

You might find some help in these examples:

Or maybe this forum is more active: https://www.reddit.com/r/FPGA/