KUMICO

COLUMN

[FPGA開発工程のちょっとしたこだわり] インプリメント工程のタイミングエラー

KUMICOをご覧の皆さまこんにちは!
さて、今回も“初めてFPGA開発をします!”という新人さんに向けて、
前回の掲載「インプリメントの基本」に引き続き、
インプリメント(論理合成/Fitting)工程のタイミングエラーについてお話しようと思います。

■タイミング解析とは

インプリメントの工程では、タイミングエラー確認も重要になります。
タイミングエラーといっても、FPGA内部のF/F(フリップフロップ)間のタイミング、TOP端子のACタイミングなど色々あるのですが、今回は代表的な例として、F/F間のタイミング解析についてお話しします。

RTLコーディングする時に “ always @( posedge CLK_100M ,negedge I_RESET_N )begin ”といったF/Fをコーディングすると思います。このF/Fは、CLK_100M(100MHz)に同期して動作するという回路ですよね。
F/F間のタイミング解析とは、このF/FがCLK_100M(10ns)を基に、安定したSetup/Hold時間で信号を取り込めているか?を解析することです。

■NGのケース

1
2
Setup/Hold・・・の話は理解が難しくなってくるので、簡単なイメージをお伝えします。
RTLコードをインプリメントツールで論理合成/Fittingすると、インプリメントツールはF/Fを自由に配置します。
自由に配置されるので、F/F①からF/F②までの配線遅延が大きくなることがあります。
なぜなら、インプリメントツールはF/FがCLK_100M(10ns)で動作することを知らないからです。

これらのF/FはCLK_100M(10ns)に同期しているので、F/F①からの出力された信号は、10ns以内にF/F②に到達しないと、F/F②は次のCLK_100Mで取り込めなくなります。
設計した時のタイミングチャートと異なるタイミングになっていますよね。
これがタイミングエラーです!実機で動作させた場合、設計通りに動作しません。

■OKのケース

それでは、配線遅延を10ns以内にする為にはどうすればよいか。
インプリメントツールに、F/FがCLK_100M(10ns)で動作することをタイミング制約で教えてあげる必要があります。
インテル® FPGAをインプリするときに使用する合成ツール「インテル® Quartus® Prime」を例に挙げますと、タイミング制約(SDCファイル)に以下の制約を記述します。※タイミング制約の記述方法はツールに依存するため、各ベンダーの資料等をご確認下さい。

create_clock -period “100 MHz” -name CLK_100M [get_ports CLK_100M]

3
4
この記述は、CLK_100Mという端子は、100MHz(10ns)のクロックです。という制約をインプリメントツールに与えています。インプリメントツールはこの与えられた制約に従い、CLK_100Mで動作するF/Fの配置場所を変えてくれます。

F/F①からの出力された信号は、10ns以内にF/F②に到達しているので、F/F②は次のCLK_100Mで取り込むことができます。
設計した時のタイミングチャートと同じタイミングになっていますよね。
実機で動作させた場合、設計通りに動作します。

■タイミングエラー有無を確認

タイミング制約を与えたからといっても、例えば回路規模が大きい場合などF/Fを配置できる場所も限られてくるので、全てのF/Fがタイミング制約内に収まるとは限りません。
インプリメントツールにて、タイミングエラーが起きていないか結果確認をする必要があります。

インテル® Quartus® Primeでは、コンパイル後に以下の結果レポートが表示されます。
ここに赤字があったら・・・タイミングエラーがあります。

5タイミングエラーを消し込む方法は、ツールオプションや、制約を追加するなど様々な方法があるので、ベンダーの資料等を参考にして、タイミングエラーを無くしましょう!
このようにインプリメントの工程では、全てのクロックに対してタイミング制約を与え、タイミングエラーを無くす作業が必要になります。1件でもタイミングエラーが有る場合、設計通りに動作しない場合があります。

■まとめ

さて、5回にわたり「FPGA開発工程のちょっとしたこだわり」をご紹介させて頂きましたが、今回のコラムが最終回となります。
“初めてFPGA開発をします!”という新人さんに、一つでもお役に立つ内容があったら嬉しいです。
ベテランさんに成長した時は、当社が販売するFPGAボードをぜひ使っていただけると嬉しいです(^o^)/
ありがとうございました!

▼FPGA開発に欠かせないFPGAボードはこちら▼
FPGAボード特集

<記者プロフィール>
ザミ
2002年から約15年間FPGA開発業務に従事。
その後、海外ベンダーのFPGAボード販売/FAEを担当している。
趣味はブラックバス釣り。とうとうロッドが10本に・・・

個別相談も承っております。下記よりお申し込みください。

個別相談会申し込み

シリーズ記事

関連記事

OTHER COLUMN

MORE  

まこちゃんブログ

NEWS

MORE  

PARTNER

  • Intel
  • Xilinx

お探しの組み込み製品はキーワードで検索!