I'm not an FPGA expert, but I'm responsible for maintaining several FPGA designs (mainly for MAX10), using Quartus prime Lite. The number one nuisance I encounter is that when I make substantial changes to a design, finding all the stupid syntax errors takes forever because the Quartus synthesis proceeds until it finds one error, reports the file/line with the error, then stops. It generally only reports one line, even if the same type of error is made numerous times in the same file. So I have to run synthesis many times before I can even get to the more interesting issues.
There's one other factor that makes this much worse. My designs on MAX10 always have a remote update (rsu) IP block, along with a flash controller, and Quartus always chooses to synthesize that part of the design first, which takes about 25 seconds. Those parts of the design never change and never have errors, but this means that synthesis always runs for 25-30 seconds before encountering an actual error.
1. Put the design in a simulator (modelsim?) which could be much faster than quartus. I would have to build a testbench file containing the top level entity. Not a big deal so long as I'm not making changes to the ports of the top level entity. But what about all the IP entities in the design?
2. Somehow get quartus to not build the rsu stuff first. Or not build it at all. Commenting its instances and components out of the design is an option I guess, but quite tedious. Would be great if I could switch it on/off in a more convenient way.
3. Incremental compilation. Sounds ideal, but seems like a big can of worms. From what I read, it would probably require a total refactoring of the entire design.
Are there any other simple things I could try to get around this issue?