デジタル回路設計において、レジスタ転送レベル( RTL ) は、ハードウェア レジスタ間のデジタル信号 (データ)の流れと、それらの信号に対して実行される論理演算の観点から同期 デジタル回路をモデル化する設計抽象化です。
レジスタ転送レベルの抽象化は、VerilogやVHDLなどのハードウェア記述言語(HDL)で使用され、回路の高レベル表現を作成します。この表現から、より低レベルの表現と最終的には実際の配線を導き出すことができます。RTLレベルでの設計は、現代のデジタル設計では一般的な方法です。[1]
レジスタ転送レベルが中間表現であり、最下位レベルであるソフトウェアコンパイラ設計とは異なり、RTLレベルは回路設計者が操作する通常の入力です。実際、回路合成では、入力レジスタ転送レベル表現とターゲットネットリスト間の中間言語が使用されることがあります。ネットリストとは異なり、セル、関数、マルチビットレジスタなどの構造が利用できます。[2]例としては、FIRRTLやRTLILなどがあります。
トランザクション レベル モデリングは、電子システム設計のより高次のレベルです。
RTL記述

同期回路は、レジスタ (順次ロジック) と組み合わせロジックの 2 種類の要素で構成されます。レジスタ (通常はD フリップフロップとして実装) は、回路の動作をクロック信号のエッジに同期させます。また、回路内でメモリ特性を持つ唯一の要素です。組み合わせロジックは、回路内のすべての論理機能を実行し、通常はロジック ゲートで構成されます。
たとえば、非常に単純な同期回路が図に示されています。インバータはレジスタの出力 Q からレジスタの入力 D に接続され、クロック clk の立ち上がりエッジごとに状態が変化する回路を作成します。この回路では、組み合わせロジックはインバータで構成されています。
ハードウェア記述言語(HDL)を使用してデジタル集積回路を設計する場合、設計は通常、トランジスタ レベル (ロジック ファミリ) やロジック ゲート レベルよりも高い抽象レベルで行われます。HDL では、設計者はレジスタ (コンピュータ プログラミング言語の変数にほぼ相当) を宣言し、if-then-else や算術演算などのプログラミング言語でよく知られている構造を使用して組み合わせロジックを記述します。このレベルはレジスタ転送レベルと呼ばれます。この用語は、RTL がレジスタ間の信号の流れの記述に重点を置いていることに由来しています。
たとえば、上記の回路は VHDL で次のように記述できます。
D <= not Q ; process ( clk ) begin if rising_edge ( clk ) then Q <= D ; end if ; end process ;
EDAツールを使用して合成すると、この記述は通常、 ASICまたはFPGAの同等のハードウェア実装ファイルに直接変換できます。合成ツールはロジックの最適化も実行します。
レジスタ転送レベルでは、いくつかの種類の回路を認識できます。レジスタの出力からその入力へ (またはレジスタの出力セットからその入力へ) の論理の循環パスがある場合、その回路はステート マシンと呼ばれ、シーケンシャル ロジックであると言えます。レジスタから別のレジスタへ循環のない論理パスがある場合、それはパイプラインと呼ばれます。
回路設計サイクルにおけるRTL
RTL は、集積回路設計サイクルのロジック設計フェーズで使用されます。
RTL 記述は通常、論理合成ツールによって回路のゲートレベル記述に変換され、その合成結果は配置配線ツールによって物理レイアウトの作成に使用されます。
ロジック シミュレーションツールは、設計の RTL 記述を使用してその正確性を検証する場合があります。
RTLの電力推定技術
最も正確な電力解析ツールは回路レベルで利用可能ですが、残念ながら、デバイスレベルではなくスイッチレベルのモデリングであっても、回路レベルのツールには、速度が遅すぎたり、メモリを大量に必要としたりして大規模なチップの処理を妨げるなどの欠点があります。これらのほとんどはSPICEなどのシミュレーターであり、設計者によってパフォーマンス解析ツールとして長年使用されてきました。これらの欠点により、ゲートレベルの電力推定ツールは、より高速で確率的な手法が定着し始めた場所では、ある程度受け入れられ始めています。しかし、相関信号がある場合には特に、精度を犠牲にして高速化が達成されるため、トレードオフもあります。長年にわたり、低電力設計における最大の成果は回路レベルとゲートレベルの最適化からは得られず、アーキテクチャ、システム、アルゴリズムの最適化が電力消費に最も大きな影響を与える傾向があることが認識されてきました。そのため、ツール開発者は、電力用の高レベルの解析および最適化ツールへと傾倒しています。
モチベーション
回路やゲートレベルよりも高いアーキテクチャレベルやアルゴリズムレベルなどの抽象化レベルで最適化を行うと、大幅な電力削減が可能になることはよく知られています[3]。これにより、開発者は新しいアーキテクチャレベルの電力解析ツールの開発に集中する動機が得られます。これは、下位レベルのツールが重要でないことを意味するものではありません。むしろ、ツールの各レイヤーは、次のレベルを構築するための基盤を提供します。下位レベルでの推定手法の抽象化は、わずかな変更を加えることで上位レベルで使用できます。
RTLまたはアーキテクチャレベルで電力見積りを行う利点
- 設計者は、設計のレジスタ転送レベル (RTL) 記述を使用して、設計フローの非常に早い段階で最適化とトレードオフを行います。
- RTL 記述に機能ブロックが存在すると、RTL の粒度がゲートレベルや回路レベルの記述よりも十分に大きいため、大規模なチップであってもアーキテクチャ設計の複雑さをはるかに管理しやすくなります。
ゲート相当物[4]
これはゲート等価の概念に基づく手法です。チップ アーキテクチャの複雑さは、ゲート等価で概算できます。ゲート等価数は、特定の機能を実装するために必要な参照ゲートの平均数を指定します。特定の機能に必要な総電力は、ゲート等価数の概算値とゲートあたりの平均消費電力を掛け合わせることで推定されます。参照ゲートは、2 入力 NAND ゲートなど、任意のゲートにすることができます。
ゲート等価技術の例
- クラスに依存しない電力モデリング:ゲート相当物の観点から見た設計の複雑さに関する情報に基づいて、チップの面積、速度、および消費電力を見積もる手法です。機能は異なるブロックに分割されますが、ブロックの機能については区別されません。つまり、基本的にクラスに依存しません。これは、チップ推定システム (CES) で使用される手法です。
- 手順:
- カウンター、デコーダー、乗算器、メモリなどの機能ブロックを識別します。
- ゲート等価物の観点から複雑さを割り当てます。各ユニット タイプの GE の数は、ユーザーからの入力として直接取得されるか、ライブラリから供給されます。
- 手順:
- ここで、E typ は、アクティブなときにゲート相当物によって消費される平均エネルギーと想定されます。アクティビティ係数 A int は、クロック サイクルあたりのゲート スイッチングの平均パーセンテージを示し、機能ごとに異なる場合があります。容量性負荷 C Lは、ファンアウト負荷と配線の組み合わせです。平均配線長の推定値を使用して、配線容量を計算できます。これはユーザーによって提供され、レントの法則の導関数を使用してクロスチェックされます。
- 前提:
- さまざまな回路スタイル、クロッキング戦略、またはレイアウト手法を考慮せずに、単一のリファレンス ゲートをすべての電力見積りの基礎として使用します。
- アクティビティ係数によって示されるクロック サイクルあたりのゲート スイッチングの割合は、入力パターンに関係なく固定されていると想定されます。
- 典型的なゲートスイッチングエネルギーは、入力データの完全にランダムな均一ホワイトノイズ(UWN)分布によって特徴付けられます。これは、このUWNモデルがさまざまな入力分布がゲートとモジュールの電力消費にどのように影響するかを無視するため、回路がアイドル状態か最大負荷かに関係なく、電力推定が同じであることを意味します。[5]
- 前提:
- クラス依存の電力モデリング:このアプローチは、ロジック、メモリ、相互接続、クロックなど、以前の手法では実現できなかったモデリング精度の向上を試みるため、以前のアプローチよりもわずかに優れています。電力の推定は、独立したケースと非常によく似た方法で行われます。基本的なスイッチング エネルギーは、3 入力 AND ゲートに基づいており、ユーザーが提供するゲート幅、tox、メタル幅などのテクノロジ パラメータから計算されます。
- ここで、C wire は単位長さあたりのビット ライン配線容量を示し、C cell はビット ラインから外れた単一セルによる負荷を示します。クロック容量は、H ツリー分散ネットワークの仮定に基づいています。アクティビティは、UWN モデルを使用してモデル化されます。式からわかるように、各コンポーネントの電力消費は、メモリ アレイの列数 (N col ) と行数 (N row ) に関連しています。
- デメリット:
- 全体的なアクティビティ係数はチップ全体に対して想定されており、ユーザーが提供するものも信頼できないため、回路アクティビティは正確にモデル化されていません。実際には、アクティビティ係数はチップ全体で異なるため、あまり正確ではなく、エラーが発生しやすくなります。これにより、モデルがチップによる総電力消費量を正しく推定したとしても、モジュールごとの電力配分はかなり不正確になるという問題が生じます。
- 選択されたアクティビティ係数は正確な総電力を提供しますが、ロジック、クロック、メモリなどへの電力の内訳は正確ではありません。したがって、このツールは CES と比較してそれほど違いはなく、改善もされていません。
- デメリット:
特性評価済み細胞ライブラリ
この技術は、ロジック、メモリ、相互接続に個別の電力モデルを用意することで、さまざまな機能ブロックの電力見積もりをさらにカスタマイズします。これは、「ロジック」ブロックの単一のゲート等価モデルの代わりに、乗算器、加算器などの機能ブロックのライブラリ全体を個別に特性評価するための力率近似 (PFA) 手法を提案します。
チップ全体の電力は、次の式で近似されます。
ここで、K i はi番目の機能要素を特徴付ける PFA 比例定数であり、ハードウェアの複雑さの尺度であり、アクティブ化頻度を表します。
例
乗算器のハードウェア複雑度を表すG i は、入力ワード長の 2 乗、つまり N 2に関係します。ここで N はワード長です。アクティベーション周波数は、 で表されるアルゴリズムによって乗算が実行される速度です。PFA定数は、過去の乗算器設計から経験的に抽出され、5V で 1.2 μm テクノロジの場合、約 15 fW/bit2-Hz であることが示されています。上記の仮定に基づく乗算器の電力モデルは次のようになります。
利点:
- そのブロックに適した複雑さのパラメータであれば、どのようなものでもカスタマイズが可能です。たとえば、乗算器の場合はワード長の 2 乗が適切です。メモリの場合はビット単位のストレージ容量が使用され、I/O ドライバの場合はワード長だけで十分です。
弱点:
- 入力は乗算器の動作に影響を与えないという暗黙の仮定がありますが、これは、PFA 定数が定数として扱われるため、乗算演算に関連する固有の内部動作を捕捉することを意図しているという事実と矛盾しています。
16x16 乗算器の推定誤差 (スイッチ レベルのシミュレーションと比較) を実験したところ、入力のダイナミック レンジが乗算器のワード長を完全に占めていない場合、UWN モデルは極めて不正確になることが分かりました。[6]確かに、優れた設計者はワード長の利用率を最大化しようとします。それでも、50 ~ 100% の範囲の誤差は珍しくありません。この図は、UWN モデルに欠陥があることを明らかに示しています。
参照
電力推定
参考文献
- ^ Frank Vahid (2010)。RTL 設計、Verilog、VHDL によるデジタル設計 (第 2 版)。John Wiley and Sons。p. 247。ISBN 978-0-470-53108-2。
- ^ Yosys マニュアル (RTLIL)
- ^ 「集積回路の電力推定技術」
- ^ 「低電力アーキテクチャ設計方法論」
- ^ 「スイッチングアクティビティと消費電力のレジスタ転送レベル推定手法」
- ^ 「高レベル電力見積りのための電力マクロモデリング」
