Forum Discussion
Altera_Forum
Honored Contributor
12 years agoYou said it, but I kind of missed that it errored out. I'm kind of surprised, as that usually shouldn't occur.
Launch TimeQuest, and go to Netlist pulldown, Create Timing Netlist. Then choose the Post-Synthesis Netlist. This is basically the netlist after synthesis that was passed to the fitter. Ignore the actual timing numbers, as the design hasn't been fit, but you can use report_timing to trace forward/back from a destination. Note that you would want to also open an old design that fit and probably do the same thing. For example, in the old design do a report_timing -from {*register_name_that_disappear*}. That report will show the destinations it feeds. Then take one of those destination registers and do a "report_timing -to {*destination_register_name*}. It should come back and show the registers that feed that one, including the one you want. After that, run the same command in the failing design, and you shouldn't see the source register anymore. The question is, where did it go? (This may not be obvious, but basically the design is able to do the same functionality without that register/s, so it's somehow doing something else.) Note that you could do a similar analysis in the Tools -> Netlist Viewers -> Post Map Technology Viewer. The problem is that this is purely a GUI tracing tool, so it can be a little cumbersome, but if you're not familiar with TimeQuest it may be easier. Taking a stab in the dark, the register in question may get merged with another register that has identical behavior. In the working design the other register takes on the name of the one you're interested in, but in the failing design the register you're interested in gets merged into the other register. You could try Assignments -> Settings -> Analysis & Synthesis -> More Settings -> Remove Duplicate Registers and set it to Off. (Synthesis shouldn't merge two registers if one has a multicycle and the other does not, so I didn't think this was it, but maybe because you're using collections something went wrong...)