FPGA講座④ 論理合成とレイアウト

論理合成

図1 論理合成の工程(※1)

設計したRTL(ソースコード)からネットリストを生成する工程を論理合成といいます。ネットリストは結線情報で、ANDやORなどの論理ゲートやフリップフロップなどの論理素子などの接続関係が記されています。図1のように、RTLをゲートレベルのネットリストに置き換えられます。しかし、FPGAはルックアップテーブルを使用するため、最終的にはルックアップテーブル(LUT)に置き換えられたネットリストが生成されます。RTLからネットリストへの変換作業は、設計ツールで自動化されています。

配置配線

図2 配置配線の工程(※2)

論理合成で生成されたネットリストをFPGAの論理ブロックや配線ブロックに割り当てる工程を配置配線といいます。論理合成と同じく、設計ツールで自動化されており、1クリックで配置配線の作業が自動で行われます。ただし、回路規模が大きい場合は処理に時間が掛かり、配線できないケースがあります。そのときは、設計仕様の見直しや使用するFPGAデバイスの再選定などの対応が必要になってきます。

タイミング検証

図3 フリップフロップ回路とタイミングチャート

先程の論理合成、配置配線が完了した後にタイミング解析が実行されます。タイミング解析とは、FPGAに実装した論理ブロックや配線ブロックが、予め設定したタイミング制約によって見積った遅延の条件を満足していることを検証することです。図3のフリップフロップのタイミングチャートのように、クロックに対してデータは遅延します。クロックは専用ラインで配線されているのに対して、データはルックアップテーブルが介在しているためです。このクロックのエッジに対してセットアップ時間、ホールド時間が規定されています。このセットアップ時間やホールド時間にタイミングマージンがあることをタイミング解析で検証します。

【参考文献】(※1)FPGAの原理と構成 113ページ オーム社(2016年)
      (※2)FPGAの原理と構成 116ページ オーム社(2016年)