FPGA 設計では、タイミング制約の設定は回路のパフォーマンスと信頼性にとって重要です。前回の記事では、FPGA タイミング制約の基本について詳しく紹介しました。
この記事では、メイン クロック制約の設定に焦点を当て、詳細な制約コマンドを示し、Vivado でメイン クロック制約を記述する方法を紹介します。
1. マスタークロックの制約
マスタークロックはFPGA回路の最も基本的なクロックであり、その安定性と精度は回路の安定動作に重要な役割を果たします。タイミング制約では、回路のタイミング制約が確実に達成されるように、メイン クロックのクロック制約を正確に定義する必要があります。
Vivado では、create_ Clock コマンドを使用してメイン クロックのクロック制約を定義できます。構文は次のとおりです。
create_clock -name <クロック名> -period <clk_period> [ -waveform {<rise_time> <fall_time>} ] [get_ports <input_port>]
パラメータ |
意味 |
---|---|
-名前 |
時計の名前に使われる |
-期間 |
クロックサイクルを定義するために使用されます |
-波形 |
波形パラメータはデューティ サイクルとして理解でき、1 サイクル内で、rise_time は最初の立ち上がりエッジの瞬間を示し、fall_time は最初の立ち下がりエッジの瞬間を示します。 |
get_ports |
プロジェクト内のモジュールクロック信号名を指定します |
ここで、create_ Clock を使用して作成されたクロックはプライマリ クロックである必要があることに注意してください。
通常、FPGA にはマスター クロックのソースが 2 つあります。
-
ピンを介して入力される外部クロック ソース (水晶発振器) によって提供されます。
-
高速トランシーバー (GT) を備えた FPGA チップ モデルの場合、GT クロック RXOUTCLK または TXOUTCLK があります。
ザイリンクス 7 シリーズ FPGA の場合は、両方の GT クロックに制約を追加する必要がありますが、UltraScale 以降のシリーズ FPGA の場合は、GT 入力クロックを制約するだけで済みます。
1. 外部入力シングルエンドマスタークロック信号
clk ピンからの外部クロック入力を設定し、クロック周期を 12ns、デューティ サイクルを 50%、位相シフトを 0 にすると、メイン クロックの制約は次のようになります。
create_lock -period 12 [get_ports clk]
90 の位相シフトがある場合、マスター クロックの制約は次のようになります。
create_ Clock -period 12 -waveform {3 9} [get_ports clk]
2. 外部入力差動クロック信号
PGA 差動クロックとは、クロック ピンの P 端子と N 端子を介して入力されるクロック信号を指します。通常、高周波数または高精度が要求される場合に使用され、その機能はコモンモードノイズを除去し、それによってシステムパフォーマンスを向上させることです。
差動クロックのP端子のみを拘束すればよく、P端子とN端子を同時に拘束することはできず、N端子はソフトウェアにより自動認識される。
たとえば、差動クロック sys_clk_p と sys_clk_n、クロック サイクルが 6.667ns の場合、制約は次のようになります。
create_ Clock -name sys_clk -period 6.667 [get_ports sys_clk_p]
3. 高速トランシーバー GT クロック信号
FPGA 高速トランシーバ GT クロック信号とは、FPGA 内で信号の送受信に高速トランシーバ GT (Gigabit Transceiver) を使用する場合、同期伝送にはそのレートに合わせたクロック信号を使用する必要があることを意味します。これにより、安定した信号伝送が保証され、データ伝送で発生する可能性のあるビット エラーを回避できます。
たとえば、クロック ソースは高速トランシーバー gt0 によって提供され、タイミング制約は次のとおりです。
create_ Clock -name rx0_outclk -period 3.333 [get_pins gt0/RXOUTCLK]
create_ Clock -name tx0_outclk -period 3.333 [get_pins gt0/TXOUTCLK]
2 番目に、Vivado はタイミング制約を追加します。
1. 新しい XDC ファイルを作成するか、既存の XDC ファイルを追加します
「+」記号をクリックし、「コンストラスの追加または作成」を選択して、「次へ」をクリックします。
「ファイルの作成」を選択し、タイミングファイル名を入力します。
2. タイミング制約を追加する
(1) 方法1
XDC ファイルを直接開き、タイミング制約ステートメントを記述します。
(2) 方法2
プロジェクトの合成が完了したら、[合成済みデザインを開く] をクリックし、開くのが完了するまで待ち、TCL コンソール ウィンドウにタイミング制約ステートメントを直接入力して Enter キーを押します。
(3) 方法3
プロジェクトの合成が完了したら、[タイミング制約の編集] をクリックし、GUI インターフェイスが開くまで待ちます。
「分類エリア」で作成する制約タイプを選択し、「+」記号をクリックして制約を作成すると、制約作成インターフェイスがポップアップ表示されます。
ソースオブジェクトの右側にある「...」をクリックしてモジュールインターフェース検索インターフェースを開き、検索ボタンをクリックして「sys_clk」信号を選択し、「右矢印」をクリックして最後に「設定」をクリックします。
最後に、クロック名、クロック周期、波形パラメータを入力し、「OK」をクリックして「ctrl + S」をクリックして保存します。
3. まとめ
メインクロック制約はFPGAでよく使われる操作であり、必ず習得しておく必要がありますが、この記事では操作コマンドと操作デモを詳しく紹介し、皆様にこの知識を習得していただく一助となれば幸いです。
この記事は今後も定期的に更新されます。コードワードは簡単ではありません。⭐️いいねをクリックして、⭐️を集めて非表示にしてください。迷わないようにしてください。
この記事はFPGAの入門から独創性の習得までを目的としていますが、ご質問がございましたら、コメント欄にてお問い合わせください。
学習教材の共有、github オープンソース コード:「FPGA ナレッジ ベース」
皆様のご支援が創作活動を続ける最大の原動力です!この記事が役に立った場合は、励ましをお願いします。