Hi Dear Mike @Hui_Ma ,
Actually my case is based on reading data from FPGA which is connected physically to the IMXRT with ADDR, DATA, BA1, CE, CLK, DQS, RDY, CSX pins.
I am able to operate read and write functions sequentially between IMXRT(Master)-FPGA(Slave).
My main issue is; in the FPGA side, ADDR register value is always starting from 0x0000 and continues in incremental order like below:
0x0000, 0x0001, 0x0002, 0x0003, ....... 0x000n. The n represents how many bytes which I requested from FPGA in the IMXRT side.
I just want to configure my system in a way that ADDR can be able to start from specific address like 0x00FF or 0x00A3 or 0x07B2 and continue in incremental order to the end of ADDR bit valid threshold.
Examples about what I want to do:
Example 1 - Start ADDR Configured as 0x00FF and 6 x 16 bit is sended to FPGA:
Expected ADDR view in the FPGA Signal Analyzer:
0x00FF - 0x0100 - 0x0101 - 0x0102 - 0x0103 - 0x0104
Monitored ADDR view in the FPGA Signal Analyzer:
0x0000 - 0x0001 - 0x0002 - 0x0003 - 0x0004 - 0x0005
Example 2 - Start ADDR Configured as 0x1F00 and 9 x 16 bit is sended to FPGA:
Expected ADDR view in the FPGA Signal Analyzer:
0x1F00 - 0x1F01 - 0x1F02 - 0x1F03 - 0x1F04 - 0x1F05 - 0x1F06 - 0x1F07 - 0x1F08
Monitored ADDR view in the FPGA Signal Analyzer:
0x0000 - 0x0001 - 0x0002 - 0x0003 - 0x0004 - 0x0005 - 0x0006 - 0x0007 - 0x0008
Here is how I read the data in the code side:
void SEMC_SRAMRead16Bit(void)
{
uint32_t index;
uint32_t datalen = 5; //9
uint32_t *sram = (uint16_t*)0x90000000
for (index = 0; index < datalen; index++)
{
sram_readBuffer[index] = sram[index];
}
}
I am reading data successfully but I just want to use the ADDR value's address space efficiently to address multiple transaction with defined identifications. Therefore, I need to configure my code in a way that ADDR register can be monitored with a specific start address like examples above.
Update:
I found a workaround by trial. I am increasing SRAM index by starting a specific address and now it ensures what I want as defined in examples(Expected Case). But I am curious if it is official or not.
Now I am curious about. What is the official way of increasing ADDR from specific start value?
Thanks and Regards.