CRITICAL_SIG_OPT optimizes sequential loops by restructuring
feedback-path logic so timing-critical signals travel through the fewest logic levels.
Place attributes on sequential objects like registers that drive their own critical
paths.
The optimization improves critical path timing, but at the expense of increased logic usage as it involves Shannon decomposition. Avoid using this attribute on paths with many logic levels. It can cause resource overhead due to logic replication.