[SOLVED] How to interpret a .RPD file to write image in FPGA Flash Memory

Status
Not open for further replies.

Humusk

Junior Member level 1
Joined
Mar 28, 2019
Messages
16
Helped
1
Reputation
2
Reaction score
1
Trophy points
3
Activity points
163
I'm trying to the write the firmware of the FPGA into its flash memory with a custom core. So I need to first access the bitstream data, i've generated a .rpf file from the .pof (working with Intel's MAX 10 FPGA).

The doubt that I have is that, well, when I write/read the flash using the FPGA I can write 4 bytes in each address, now looking inside the .RPD file it seems that in each address (a total of 1376256) I only have 1 byte assigned.

What am I missing? I've checked and it seems to be the exact number of CFM0 addresses available in my memory, so I don't understand where are the missing bytes.

EDIT: I'm working with a MAX 10 10M50DAF484C6GES
 
Last edited:

It's not completely clear what you want to achieve, program MAX10 through custom JTAG driver or remote update IP? To understand the reported file size, which MAX10 device are you working with?
 
Reactions: Humusk

    Humusk

    Points: 2
    Helpful Answer Positive Rating
Sorry I tried to simplify the explanation and it hasn't been a good idea.

What I'm actually trying to do is to be able to write the FPGA firmware to the FPGA flash using Ethernet. For what I have developed I can write/read/erase the memory using Ethernet, what I'm missing is a way to understand the data that I should write into the flash. It's more of a software problem than hardware.

I know that you can write a design into the flash using JTAG (and a .pof file) and I made some test with it. But now I need to be hable to do the same using Ethernet, for that I converted the .pof file in a .rpd, but I'm not understanding the contents of the file. As I'm already said, when I work with the FPGA each address seems to have 4 bytes, not only 1, and in the file it looks like each address is asigned a single byte. To manage the flash I'm using Altera On-Chip Flash IP Core.

Thanks.
 

Flash IP core uses 32 bit data words, rpd bytes have to be packed, that's all. No missing bytes.
 
Reactions: Humusk

    Humusk

    Points: 2
    Helpful Answer Positive Rating
Flash IP core uses 32 bit data words, rpd bytes have to be packed, that's all. No missing bytes.

I don't get it. For example for the UFM I have 0xFFFF addresses while using the IP core (each address can have inside 32 bits). But in the RPD file I also have 0xFFFF addresses, but each address only have a single byte.
 
Last edited:

Bad example regarding actual CFM and configuration file size!

Total CFM size in 10M50 is 1344 kByte or 1376256 Byte, so it can hardly have the same amount of double word memory locations.
 
Reactions: Humusk

    Humusk

    Points: 2
    Helpful Answer Positive Rating
Bad example regarding actual CFM and configuration file size!

Total CFM size in 10M50 is 1344 kByte or 1376256 Byte, so it can hardly have the same amount of double word memory locations.

Oh god, you are right, I wasn't looking at the correct place inside the VHDL, I though that I had the same number of addresses but in reality I only have 2^19 addresses.
Thanks for the help, and I'm really sorry losing your time, it was very obvious.
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…