MAX10 Read Dual Boot IP core values in simulation
I can successfully perform an RSU using discrete logic implementation on a MAX10 device. I now want to confirm that the correct image has been loaded. My board has the CONFIG_SEL pin pulled up so it will always boot from the Update Image, unless something is wrong with it. I want to be use the Dual Boot IP core msm_cs value to read which image has been booted and have that be accessible to be read externally.
I am trying to simulate reading from the Dual boot IP in order to access offset 4 (specifically bits 16:13 for msm_cs but the whole register is fine) but the avalon readdata interface does not change in simulation.
The basic process for my reads are
1. Write 1'b1 to offset 2 bit 0 (due to the message above table table 34 in the MAX10 configuration User guide Page 62)
2. Wait for this write to finish (how long does this write take? I cannot find a value anywhere)
3. Read offset 3 bit 0 (busy register to make sure it is not busy) How long should I wait for reads?
4. Wait for avalon readdata[0] to be 0 (It always is, so this just moves on)
5. Read offset 4
6. Wait for Read to finish from offset 4
7. Assign the avalon readdata value to be brought out of my module
8. End
The value I get in sim for readdata is always 0, no matter how long I wait for operations to complete. Am I missing any steps or doing something wrong? The documentation seems to be fairly limited for this IP core. Is this even simulatable? I will try on HW and read with a UART but I don't expect it to work.