Device Family: Arria 10 GT, Arria 10 GX, Arria 10 SX
Type: Answers
Area: Tools


Last Modified: March 09, 2015
Version Found: v14.0 Arria 10 Edition

How to close timing on competing hold and setup violations in Arria 10?

Description

In Arria® 10 devices, the Quartus® II fitter automatically packs registers into an Adaptive Logic Module (ALM) in order to optimize area. If a hold-critical register gets packed in the same ALM as its driving LUT, the router will add wire in front of the LUT to avoid hold time violations. This can negatively affect a setup critical path going through the same LUT and it becomes difficult to fix both setup and hold time violations around this structure.

Workaround/Fix

A new Quartus Settings File (.QSF) assignment is available that prevents the automatic packing of the register and its driving LUT into the same ALM. This allows the router to add the necessary hold fixing wire directly in front of the register and does not negatively affect the setup critical path through the LUT itself.

In order to prevent register/LUT packing, use the following assignment:

set_instance_assignment -name QII_AUTO_PACKED_REGISTERS OFF -to <inst_name>

This assignment is available in the Quartus II software version 14.0 Arria 10 edition and later. Future releases of the Quartus II software are scheduled to handle this automatically.