Greetings,
In one of our course project, we are to design a small processor which requires instructions to be fetched from the SRAM memory. The procedure given is as follows:
1. We open the "DE2_115_ControlPanel.sof" with Quartus, and select the option to open a new programmer configuration. We then program this file onto our FPGA board.
2. We open "DE2_115_ControlPanel.exe" and load the .ram file, which contains our instruction into our FPGA board.
3. We open up a new programmer and select our processor.sof file and program it into our FPGA board.
Later we realized that this procedure is faulty as the second program to the board (step 3) will overwrite the .ram data (instructions) we have previously loaded onto the board.
We were able to find a solution to this problem: repeating step 2 multiple times, and the memory will not be corrupted somehow.
Still, I would like to ask some questions:
1. What is the "correct" way to do this? I believe there has got to be a more reasonable solution to this problem. For instance, can we specify the address of our second loading so that it does not corrupt the memory file?
2. I initially tried to fix this program by first converting the processor.sof file to a .pof file and load it onto the board. I believed this method would allow the program to stay in a different memory location. (I assume this because it has got to be some sort of non-volatile memory structure as opposed to SRAM, is it FLASH?) But then to load the .ram file I will have to load the "DE2_115_ControlPanel.sof". So how can I return to the processor code I have programmed? Is there some sort of soft-reset that preserves the SRAM data and returns me to the pof file?
3. This is more of a minor question but I think it's quite interesting: why did our solution worked? What is special about writing the SRAM with the same file at the same location multiple times?
Board we used:
DE2115 CYCLONE IV DEVICE : EP4CE115F297CN
Thanks in advance.
In one of our course project, we are to design a small processor which requires instructions to be fetched from the SRAM memory. The procedure given is as follows:
1. We open the "DE2_115_ControlPanel.sof" with Quartus, and select the option to open a new programmer configuration. We then program this file onto our FPGA board.
2. We open "DE2_115_ControlPanel.exe" and load the .ram file, which contains our instruction into our FPGA board.
3. We open up a new programmer and select our processor.sof file and program it into our FPGA board.
Later we realized that this procedure is faulty as the second program to the board (step 3) will overwrite the .ram data (instructions) we have previously loaded onto the board.
We were able to find a solution to this problem: repeating step 2 multiple times, and the memory will not be corrupted somehow.
Still, I would like to ask some questions:
1. What is the "correct" way to do this? I believe there has got to be a more reasonable solution to this problem. For instance, can we specify the address of our second loading so that it does not corrupt the memory file?
2. I initially tried to fix this program by first converting the processor.sof file to a .pof file and load it onto the board. I believed this method would allow the program to stay in a different memory location. (I assume this because it has got to be some sort of non-volatile memory structure as opposed to SRAM, is it FLASH?) But then to load the .ram file I will have to load the "DE2_115_ControlPanel.sof". So how can I return to the processor code I have programmed? Is there some sort of soft-reset that preserves the SRAM data and returns me to the pof file?
3. This is more of a minor question but I think it's quite interesting: why did our solution worked? What is special about writing the SRAM with the same file at the same location multiple times?
Board we used:
DE2115 CYCLONE IV DEVICE : EP4CE115F297CN
Thanks in advance.