Namaste FPGA Technologies reposted this
Choosing the Right STA Violation Correction Technique for FPGAs: Small, Medium, and Large Fixes Explained Numerous violation correction techniques have been discovered over time, each suited to specific requirements. Let us go over a simple cheat sheet that helps decide which technique to use under different situations. Violation correction techniques can be classified into three categories: small violations, medium violations, and large violations. A violation of less than 1 ns can be considered small, a medium violation occurs when the range is between 1 ns and 3 ns, and a large violation is anything above 3 ns. Small violations are usually corrected with inbuilt tool strategies or simple manual techniques. Medium violations require more aggressive strategies, while large violations often need structural changes. This also means that small violations can be corrected quickly, whereas large violations significantly increase development time. Small setup violations (less than 1 ns) can be corrected in two ways: automatic correction using inbuilt optimization strategies in tools like phys_opt_design, or manual methods such as forward or backward retiming, logic replication to reduce fan-out, using faster primitives, and manually optimizing physical placement. These techniques can help correct setup violations in the range of 0.3 ns to 1 ns without major structural changes. Medium violations (1 ns to 3 ns) can be corrected using tool-based phys_opt_design optimization, as well as manual methods such as logic optimization by replacing critical logic with dedicated DSP blocks or carry chains, or using forward or backward retiming. These techniques can typically correct setup violations in the range of 1 ns to 3 ns, but may require structural changes. For large violations beyond 3 ns, tool-based optimization techniques are usually insufficient, and we mostly rely on adding pipeline registers or reducing the operating frequency to correct them. Similarly, there are techniques to correct hold violations, which we can explore another day. If you wish to build a strong foundation in STA for the Vivado Design Suite, explore our beginner-friendly STA course : https://lnkd.in/dWB-Y9B8