Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
10 years ago

Registers remover During synthesis

Hello;

I have some Registers remover During synthesis because a lost fan out. But Iam sure that these registers followed by a compinational logic then another registers(system pipeline), here are my questions:

1- Does the synthesis fail to know those logics that follow these registers, so it mark them as lost fan-out?

2- During the simulation(with modelsim-altera-edition), I found these registers and it have an effect on the system latency. How was it removed and still simulated?

4 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Do any of your device output signals (pins) depend on these registers or the combinational logic they drive? I suspect not. They may be part of a pipeline. However, if none of the FPGA's output signals depend on them, Quartus will remove them. Quartus will only remove registers whose output signals are not used - and it's very good at determining whether or not they are used - i.e. whether they're required.

    ModelSim may well show you the latency. However, ModelSim won't remove any registers. What ModelSim shows you isn't necessarily representative of the behaviour of the code you've run through Quartus.

    So, I suggest you revisit your code and how you've connected it up at your top level.

    Cheers,

    Alex
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Thanks Mr Alex for ur reply;

    The removed registers located in a pipeline. It feed a combinational logic of at minimum (3 xor + 1 And ) operations in cascade then the destination register. Is these loads are not enough to make fan-out signals, so that it is removed.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    ouh... you can try use vhdl "keep" synthesis attribute if you project in vhdl/try find template in quatus text editor.

    also you can locate your removed register and make "preserve" assignment for it.