組み込み機器・ハードウェアの設計開発から装置製作まで社内一貫対応!

組み込み機器・ハードウェア設計製作.com
組み込み機器・ハードウェア設計製作.com

produced by株式会社アイディアイ

設計のポイント

verilog記述のポイント:パイプライン化による動作周波数の向上

設計内容分類FPGA

実現したい仕様・課題

複数の演算を1クロックで済ませようと組み合わせ回路を長くつなぐと、信号がすべてのロジックを通過する遅延が1クロック周期に収まらず、タイミング違反により目標の動作周波数を達成できなくなります。処理内容を維持したまま動作周波数を引き上げたいというのが課題です。

設計のポイント

長い組み合わせ回路の途中にレジスタ(フリップフロップ)を挿入して処理を複数段に分割するパイプライン化により、各段の遅延を短縮し、動作周波数を向上させることができます。たとえば「乗算→加算→比較」を1クロックで行う回路は遅延が積み上がりますが、各演算の間にレジスタを挟んで3段に分ければ、1クロックあたりの遅延は最長の1段分だけになります。結果が出るまでのレイテンシは段数分増えるものの、スループット(1クロックごとに新しいデータを投入できる能力)は維持・向上され、ストリーミング処理では総合性能が大きく高まります。パイプライン化の際の注意点は、データと並走する制御信号(valid、enable、タグ情報など)も同じ段数だけ遅延させ、段間で対応関係を崩さないことです。また、分岐や合流のあるデータパスでは、経路ごとの段数を揃える遅延調整(バランシング)が必要です。合成ツールのタイミングレポートでクリティカルパス(最も遅延の大きい経路)を特定し、そこへ重点的にレジスタを挿入するのが効率的な進め方です。リタイミング最適化を備えたツールでは、出口に複数段のレジスタを置いてツールに再配置させる方法も有効です。

【コード例】
// 乗算と加算を2段に分割
reg [15:0] mul_r;
reg [16:0] add_r;
reg v1, v2; // validも同段数遅延させる
always @(posedge clk) begin
mul_r <= a * b; v1 <= vin; // 1段目
add_r <= mul_r + c; v2 <= v1; // 2段目
end

verilog記述のポイント:パイプライン化による動作周波数の向上 | 組み込み機器・ハードウェア設計製作.com

補足情報

当事例のような、FPGA設計に関するポイントをまとめた冊子の無料DLが可能です。
是非以下よりご確認ください。

FPGA設計のポイント

>>ダウンロードはこちら!

設計のポイント 一覧

FPGA設計のポイント

お問い合わせ

組み込み機器・ハードウェア 設計製作.comを運営する株式会社アイディアイは、組み込み機器・ハードウェアの設計開発代行サービスを提供しています。
試験装置や制御機器、組み込みボードなど、設計・開発委託先をお探しの皆様、お気軽に当社に御相談ください。

技術資料のダウンロードはこちらから 技術資料ダウンロ―ド メールフォームでのお問い合わせはこちらから ご相談お問合せ