Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
Need Forum Guidance? Click here

Search our FPGA Knowledge Articles here.
19188 Discussions

MAX 10 CFM0 not programed

Honored Contributor II

Hi there, 

I conceived and validated a project on Max10 dev kit. 

Now that the project is OK, we are in the process of developing a dedicated board, using 10M50SCE144 device which appeared good enough for that project. 

The board has just been manufactured, and using JTAG header with a USB blaster, I'm able to program, run and debug the project. 


However, when I power cycle the board, it does not start. 

There is no time limited IPs or such things who could prevent me from running the devices detached. 


After further investigations and many many different configurations tested, it appears that UFM is programed correctly into the flash, but not CFM0? 


I programed .pof file into the device and it started correctly. 

With Quartus programmer, I verified UFM: 100 % OK 

I thus verified CFM0: it jumped to 54% (I guess skipping UFM) and then Failed!!! :( 

I powered off/on the board: UFM is still there (meaning the flash is able to retain data!), but no track of CFM0 and the board did not start... 


I may be foolishly missing something, but no way to figure out what... 

Any advice? 



0 Kudos
2 Replies
Honored Contributor II

Just a quick update: Running examine to get what's inside the FPGA and using WinMerge to compare the content of the files (not the best tool because of binary content... anyway), it shows that the content is vastly the same except for a slight difference at roughly a third of the file, where some data seem to be missing in the file read back from the FPGA (difficult to tell precisely, because WinMerge does not show the offset from the beginning where the difference occurs). Anyway, this seems to confirm that something has effectively been programmed in the FPGA, but maybe not at the right location... 


Honored Contributor II

Well, not proud of me... 

I solved the issue.  

Actually, the CFM0 was properly programed, but the project was using a UFM block to save parameters. 

It seems that the location was not well set for this particular device. 

So when preventing the application to write over CFM block, CFM block keeps its integrity... 


Sorry for this dummy post