- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am working on a project which uses arria V version and I want to update RAM memory content just by replacing .mif files. I have a demo which contains .qip and .v files generated by MegaWizard Plug-In Manager[/B][/B]. If I keep the name of .mif file same with changed the content and compile the program, I am able to load new data in memory.
I just want to keep changing data in the memory. Is there any way that I can compile only .qip file and .v file? After-all I have changed only these files. When I try to use In-system Memory content editor, it says 'no instance found'. Can I create instance bsed on the information in .qip and .v files? Or if there is any command so that I can compile only needed portion. I am a beginner, so I would appreciate if you could elaborate steps. Thanks a lot!Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In theory if you only change the contents of the mif file, you should only have to run the assembler to get an updated fpga image and shouldn't need to run a full compilation. In practise, from the tests I made a few years ago, sometimes it works, sometimes it doesn't (the FPGA image is regenerated with the old data).
If you enable smart compilation, the compilation should be a lot faster if you only change the .mif file, as Quartus should detect that it doesn't need to recompile the rest. To use the memory content editor, you need to enable its support explicitly in the Megawizard, and it will only work with single port memories (the memory editor feature uses the second port). But please note that contrary to modifying the mif file, any editing through the memory content editor is temporary. It only modifies the memory contents in the FPGA. As soon as you reconfigure the FPGA through JTAG or cycle the power, your modifications will be lost.- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Interesting thread,
--- Quote Start --- you should only have to run the assembler to get an updated fpga image and shouldn't need to run a full compilation. In practise, from the tests I made a few years ago, sometimes it works, sometimes it doesn't (the FPGA image is regenerated with the old data). If you enable smart compilation, the compilation should be a lot faster if you only change the .mif file, as Quartus should detect that it doesn't need to recompile the rest. --- Quote End --- For "In system memory content editor" lpm_const component, how do you write the .mif file so as to point to that component ? I have for example a "In system memory content editor" lpm_const called const_l2. After "debugging", I found that 0x20 is the best value. I would like to regenerate the .POF and .SOF file with this good value. You say that you only just run the assembler and not the whole compilation. How do you write the .mif file (http://quartushelp.altera.com/13.0/master.htm#mergedprojects/reference/glossary/def_mif.htm?gsa_pos=1&wt.oss_r=1&wt.oss=memory%20initialization%20file%20in%20system%20memory%20content%20editor) : how do you know at which address correspond to my "const_l2" ? I found in "compilation report > analysis and synthesis > Debug settings summary > in system memory content editor settings summary" the "instance index of my "const_L2". Do I Have to calculate the address by adding width*depth of precedent instances ?- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- In theory if you only change the contents of the mif file, you should only have to run the assembler to get an updated fpga image and shouldn't need to run a full compilation. In practise, from the tests I made a few years ago, sometimes it works, sometimes it doesn't (the FPGA image is regenerated with the old data). If you enable smart compilation, the compilation should be a lot faster if you only change the .mif file, as Quartus should detect that it doesn't need to recompile the rest. To use the memory content editor, you need to enable its support explicitly in the Megawizard, and it will only work with single port memories (the memory editor feature uses the second port). But please note that contrary to modifying the mif file, any editing through the memory content editor is temporary. It only modifies the memory contents in the FPGA. As soon as you reconfigure the FPGA through JTAG or cycle the power, your modifications will be lost. --- Quote End --- Thanks for showing various options. I am just wondering, can't we make some.tcl file which will compile only these two files. I would prefer if I could control the timing of this partial compilation with MATLAB when I can put these command in a loop. did you ever tried anything like it? Thanks
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- How do you write the .mif file (http://quartushelp.altera.com/13.0/master.htm#mergedprojects/reference/glossary/def_mif.htm?gsa_pos=1&wt.oss_r=1&wt.oss=memory%20initialization%20file%20in%20system%20memory%20content%20editor) : how do you know at which address correspond to my "const_l2" ? I found in "compilation report > analysis and synthesis > Debug settings summary > in system memory content editor settings summary" the "instance index of my "const_L2". Do I Have to calculate the address by adding width*depth of precedent instances ? --- Quote End --- I'm not sure I understand your question. Each .mif file with the edit option set will create a separate instance for the memory content editor. So when you change a value in the content editor, you can change the same value at the same place in the .mif file. No need to take into account the sizes of the other instances. --- Quote Start --- Thanks for showing various options. I am just wondering, can't we make some.tcl file which will compile only these two files. I would prefer if I could control the timing of this partial compilation with MATLAB when I can put these command in a loop. did you ever tried anything like it? Thanks --- Quote End --- I've never tried something like that. In fact I don't trust Quartus' smart compilation feature and always do a full recompile, even for a minor change. I've had too many bugs with partial recompilations, so I'm not the right person to ask ;) I just know from personal experience on the projects I worked on that if you use the "Update Memory Initialization File" option in Quartus and run the assembler, sometimes it works and sometimes (or most often) it doesn't. I don't really know the reason why.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- Interesting thread, For "In system memory content editor" lpm_const component, how do you write the .mif file so as to point to that component ? I have for example a "In system memory content editor" lpm_const called const_l2. After "debugging", I found that 0x20 is the best value. I would like to regenerate the .POF and .SOF file with this good value. You say that you only just run the assembler and not the whole compilation. How do you write the .mif file (http://quartushelp.altera.com/13.0/master.htm#mergedprojects/reference/glossary/def_mif.htm?gsa_pos=1&wt.oss_r=1&wt.oss=memory%20initialization%20file%20in%20system%20memory%20content%20editor) : how do you know at which address correspond to my "const_l2" ? I found in "compilation report > analysis and synthesis > Debug settings summary > in system memory content editor settings summary" the "instance index of my "const_L2". Do I Have to calculate the address by adding width*depth of precedent instances ? --- Quote End --- Hi I am looking for another options, not megafunction wizard. Suggested options like 'Smart compilation' and using only assembler is not working for me. I do not understand why update memory initialization and running assembler is not working for me. Daixiwen also seem to notice that sometimes it works and sometimes not. Their is no post which discusses how to make this work for what are the conditions. I have opened new threads with these specific questions to get attention of experienced users. I have to know, is there something i am doing wrong? Because if I am not doing anything wrong, then previous posts are somehow misleading (may be they work for older versions, not anymore). Users like me will use them without any result. Smart compilation option is mentioned in many threads. Mine is disabled for some reasons. As a Quartus user, I am just interested in knowing why?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
in the past i've used Processing > Update Memory Initialization File to update .mif and .hex in the .sof. i can't recall if it automatically runs the Assembler or if you have to do it, but it should be easy to figure out
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- in the past i've used Processing > Update Memory Initialization File to update .mif and .hex in the .sof. i can't recall if it automatically runs the Assembler or if you have to do it, but it should be easy to figure out --- Quote End --- It is working now. after updating memory initialization files, I run assembler and then run programmer with new .sof file. I do not know why it was not working before!!
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page