Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Intel Max10: configuring the FPGA in volatile mode (.sof file) affects CFM #507

Open
yacremann opened this issue Jan 10, 2025 · 2 comments

Comments

@yacremann
Copy link

Dear all,

First of all thanks for the great project, it is very valuable for me!

I think I found a strange bug: I configure the FPGA (CRAM) on my DE10-Lite board using a .sof file from Quartus (converted to a .svf file using quartus_cpf). The new design is correctly loaded into the CRAM of the FPGA. However, it also affects the CFM or some other nonvolatile memory of the FPGA: A previously stored design on the CFM does not run after a power cycle. It looks like the Flash memory of the FPGA gets erased by configuring the CRAM of the Max10 using openFPGALoader.

Here the commands:

  • Generate .svf fle: quartus_cpf -c -q 24.0MHz -g 3.3 -n p project_name.sof project_name.svf
  • configure FPGA: openFPGALoader -b de10lite project_name.svf

The reason why I care: I use the boards for my lecture. The students will try many different configurations, but the FLASH memory of the FPGA will not survive an infinite number of write cycles.

The attached .zip file contains the svf file.

Thanks a lot!

Best,
Yves
Stopwatch.zip

@trabucayre
Copy link
Owner

Hi,
I have also observed this situation.
When you use an .svf file, openFPGALoader act as a player: it read file's content line by line and execute instructions.
This issue isn't related to openFPGALoader by itself but to instructions/operations contained into the .svf.
If you read begining of the file you see DSM/ICB section is cleared and rewritten with a new content.
Since there is no documentation related to this section it's hard to know meaning of this operation.

@trabucayre
Copy link
Owner

Not your svf but another I have just produces.
It contains:

!                                                                                                                                                                                                                                                                 
!Max 10 Program ICB                                             
!                
SIR 10 TDI (203);
RUNTEST 123 TCK;                                                                                                                                                                                                                                                
SDR 23 TDI (480000);                                                                                                                                                                                                                                               
SIR 10 TDI (3F4);                                                                         
RUNTEST 123 TCK; 
SDR 32 TDI (6C48A50F);
RUNTEST 7680 TCK;
!                
!Max 10 DSM Verify
!          
SIR 10 TDI (307);
RUNTEST 123 TCK;
SDR 1 TDI (0) TDO (1) MASK (1);
!
!Max 10 Program ICB
!
SIR 10 TDI (203);
RUNTEST 123 TCK;
SDR 23 TDI (680000);
SIR 10 TDI (3F4);
RUNTEST 123 TCK;
SDR 32 TDI (6C48A50F);
RUNTEST 7680 TCK;

First Max 10 Program ICB section match Max 10 Program Done Bit and second match Max 10 ICB Program Success found in an svf produces from the pof file.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants