Forum Discussion

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

big design uses few resources

I compiled a design a few days ago with a Compilation Report like this:

Combinational ALUTs 52,437

Memory ALUTs 0

dedicated logic registers 31,310

Total registers 31,310

...

Total block memory bits 456,312

Today, I compiled a similar one with some IPs added. When I finished the compilation successfully, I got a Compilation Report like this:

Combinational ALUTs 671/650,440(< 1%)

Memory ALUTs 0/325,220(0%)

dedicated logic registers 1187/650,440(<1%)

Total registers 1187

...

Total block memory bits 6,200/23,685,120(<1%)

I don't know why this happened. The design occupied too few resources. Can anyone tell me? Thanks a lot!

12 Replies

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

    Add a one bit output PIO to your system and assign the output to a virtual pin using the assignment editor. If you need to configure your design into a device then you'll need to assign that PIO to a real pin (cut the output path since this is a dummy connection as far as you are concerned)

    There are preserve attributes that Quartus uses to preserve logic instead of optimizing nets away however this won't work in your case because Nios II is encrypted (plus it would be a lot of work too:))
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    The debugger runs through jtag and is an output, so the logic that drives it should not be synthesized out. Quartus removes logic when it doesn't drive anything at all. The other thing that happens is things can get synthesized out due to something not hooked up right or something like that.

    One trick is to use Design Partitions if you have a license for them. Put on a hierarchy, they keep all the inputs and outputs and therefore the internal logic. (You actually have to have one output of the partition drive logic or a top-level output, otherwise it will get removed). But that is probably not going to to work, as Quartus is removing the logic for a reason, i.e. it doesn't affect the output of your debugger. Keeping the logic through partitions probably won't fix the problem.