[FPGA,Vivado] Implementationがなかなか終わらないのはタイミング制約が原因だった

非同期クロックドメイン間の遅延解析をfalthにしたらimplementationがすぐに終わりました。非同期間は遅延解析などさせる必要はなく、メタステーブルが発生しないように上手に回路を設計、デザインすることが大事です(二段FFやハンドシェイキングなど)。

report_timing_summeryを実行して、エラーの出ている箇所について、右クリックで信号を、もしくはクロック間をfalthにすればよいです。それでxdcに書き込むだけ、たとえば、次のような一文が追加されます。

set_false_path -from [get_clocks gtx/gtx12lines_i/inst/gtx12lines_i/gt0_gtx12lines_i/gtxe2_i/TXOUTCLK] -to [get_clocks clk_out1_mmcm40et160]

ぼくの周りにはFPGAおよびVivadoによるデザインに優れた人がいなくて、先輩はいつもimplementationに一時間近くかけてました。そんな先輩から引き継いだプロジェクトファイルはクリティカルエラーが100個以上。この環境で気づくのは苦労した。

コメント