hello.
My name is Intel F. Hanako and I provide technical support for Intel® FPGA products at Macnica.
Even if you create a register in a logic circuit, it may be merged and removed by optimization when compiling with Quartus ® Prime.
This is the result of the Quartus Prime compiler aggressively minimizing resources while reducing wasted resources, so it 's basically a good thing.
★ Click here for information on how to check deleted or merged register information due to compiler optimization.
However, depending on the user, there may be situations or reasons for wanting to keep the registers that were deleted by optimization.
for example,
・ I want to keep the self-made duplicate register (because it is related to the setting of options and timing constraints, etc.)
or
・ I want to leave registers connected to unused ports of lower modules (for debugging during design, etc.)
There are various situations and reasons.
In such cases, use the logic option in Quartus Prime.
How to set logic options
The logic options used here are:
[A]Disable Register Merging option = On or Preserve Registers option = On
or
[B]Preserve Fan-out Free Register Node Option = On
both, Assignment Editor and for the desired register set.
And the point of using [A] and [B] is whether or not the signal of the register finally affects (outputs) the output pin of the device.
|
If the signal in the register is to the output pin of the device... |
option name used to hold the register (Assignment Name) |
set value (Value) |
| Influenced (output) |
[A]Disable Register Merging or Preserve Registers |
On |
| Not affected (no output) | [B] Preserve Fan-out Free Register Node |
On |
Also, since all of them are nodes deleted by compilation, when selecting nodes (To column) in Assignment Editor, you can find them by selecting "Registers: pre-synthesis" in Filter of Node Finder. (If you enter a keyword + wildcard in the Named field, the hit rate will increase even more!)
After that, select the option name in the Assignment Name column of the Assignment Editor, and select the setting value in the Value.
How to check deleted or merged register information
Registers removed or merged by the Quartus Prime compiler can be found in the compilation report below.
I also understand why it was removed.
In Compilation Report Analysis & Synthesis folder > Optimization Results folder > Register Statistics folder > Registers Removed During Synthesis
The above is a method to retain registers that have been deleted during compilation.
Please use it as needed.
See this page for how to embed options directly in the HDL code instead of logic options.
Reference: Quartus Prime Online Help
・ Disable Register Merging Option
・ Preserve Fan-out Free Register Node option
Click here for recommended articles/materials
How to preserve registers deleted by compilation (attribute edition)