As I am aware of, memory resources in IGLOO2 are 34 RAM 1K and 31 RAM 18K. That is around 74KB ram, and 256KB eNVM.Are there some pure verilog way to use these memory resourses?
1. Years ago, I am using the following verilog way in altera FPGAs to use ram resources. Does it works for microsemi FPGAs?I will verify it tomorrow as soon as possible.
2. eNVM are a kind of onchip rom resource, right? Are there any pure verilog way to read and write it?
For question 1 or 2, if the answer is NO, I am also ok with a smartDesign way, Please let me know what the right way is to use it!
As I am aware of, memory resources in IGLOO2 are 34 RAM 1K and 31 RAM 18K. That is around 74KB ram, and 256KB eNVM.Are there some pure verilog way to use these memory resourses?1. Years ago, I am using the following verilog way in altera FPGAs to use ram resources. Does it works for microsemi FPGAs?I will verify it tomorrow as soon as possible.2. eNVM are a kind of onchip rom resource, right? Are there any pure verilog way to read and write it?For question 1 or 2, if the answer is NO, I am also ok with a smartDesign way, Please let me know what the right way is to use it!
you can not use LSRAM for code for the small design as each primitive burns 36 LUT's.
So it would be my first priority to use it.
Then other onchip ram resources.
Thanks antti very much for the rich feedback.I don't prefer to access spi rom out side of the chip right now.So the four onchip memory types are my choices(eNVM, LSRAM, uSRAM, eSRAM).0) what IP from IP catlog should I use to take use of eNVM? I cannot find one
1)After some digging in ip catlog(in Libero SOC), I found a ip named "CoreAHBLSRAM",Description: The CoreAHBLSRAM provides access to the embedded large SRAM blocks present on SmartFusion2 family devices through AHB-Lite slave interface. It will facilitate convenient access to SRAM by AHB masters. Read and write transactions on the AHB are converted into corresponding transfers on the LSRAM or uSRAM.Ok, it looks this IP is able to use LSRAM and uSRAM resources with ahb. I will definitely try this first today.
2) Another IP named CoreMemCtrl
Description: The Memory Controller is an AHB slave component which supports access to external SRAM and Flash memory resources. The core uses 1 slave slot on the AHB bus.Is it able to access the spi rom outside of the chip? AHB compatible? if it can, it will be good.
--
You received this message because you are subscribed to the Google Groups "RISC-V Soft CPU Discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to softcpu-discu...@riscv.org.
To post to this group, send email to softcpu...@riscv.org.
Visit this group at https://groups.google.com/a/riscv.org/group/softcpu-discuss/.
To view this discussion on the web visit https://groups.google.com/a/riscv.org/d/msgid/softcpu-discuss/88b3b80a-9440-42f5-bde1-10077fcc58a9%40riscv.org.
For more options, visit https://groups.google.com/a/riscv.org/d/optout.
Hi Jian,The eSRAM (~80KB) and eNVM (256 KB flash) is in the HPMS block of Igloo2 device. HPMS has an AHB slave interface, You can have your own AHB master in FPGA fabric to connect to HPMS AHB slave and connect to the eSRAM and eNVM via that.
Hi Jian,for the embedded memory blocks, you might find https://www.microsemi.com/document-portal/doc_download/129966-inferring-microsemi-smartfusion2-ram-blocks-app-noterelevant; it details how to infer them from more or less generic Verilog/VHDL templates.Also, anyone using the Microsemi parts should be familiar with https://www.microsemi.com/document-portal/doc_download/132008-ug0445-smartfusion2-soc-fpga-and-igloo2-fpga-fabric-user-guideBesides the non-ability to initialize memory, not being able to initialize registers to known values combined with the non-zero overhead of added reset to flops, makes this FPGA a bit harder to use.Tommy
Hi Jian,The eSRAM (~80KB) and eNVM (256 KB flash) is in the HPMS block of Igloo2 device. HPMS has an AHB slave interface, You can have your own AHB master in FPGA fabric to connect to HPMS AHB slave and connect to the eSRAM and eNVM via that. The eSRAM is located in offset 0x2000_0000 and eNVM is located in offset 0x6000_0000 in the HPMS AHB bus matrix.