RTLとは
RTLとは、回路を図で描く代わりに、レジスタとレジスタの間の動きとして記述する抽象度です。 ハードウェア記述言語でハードウェアを記述する抽象レベルの一つで、論理回路をレジスタ間の動作として表現します1。
RTLとして通るのは論理合成できる書き方だけで、その書き方が、実現できる動作周波数を左右します。
大規模なチップの設計は、回路図より文章を書く作業に近い
Section titled “大規模なチップの設計は、回路図より文章を書く作業に近い”いまの大規模なチップの設計は、文章を書く作業に近いところから始まります。設計作業の成果物は機能記述プログラムで、RTLというフォーマットで出力できたら、コンピュータによる自動的な論理合成作業で論理回路に変換します2。回路になるのはそのあとです。書く作業はもはやプログラミングに近く、HDL(Hardware Description Language)あるいはVerilogという名前の言語でプログラムしていきます。記述言語には、Verilog HDLまたはVHDLを使うことが多くあります。
RTLは回路がどう動くかを書いたもので、図面というより指示書に近いものです。
RTLは、ゲートレベルより上でESLより下の段
Section titled “RTLは、ゲートレベルより上でESLより下の段”RTLは、記述の抽象度に並ぶ段の1つです。ICの設計階層の中ではゲートレベルよりも上位の記述レベルにあたり、上にはRTLよりも抽象度が高いビヘイビアレベルが、下には回路情報に近いゲートレベルがあります。
ESL(電子システムレベル)は、RTLよりも抽象度の高いレベルで、C/C++などの高級言語を使って設計します。ネットリストは、ゲート情報およびゲート間のつながりの情報が記述された回路データで、これを用いてASICのマスクパターン設計やFPGAへの回路形成を行います。
段と段の間には、変換する道具がいます。論理合成は、HDLで表現したRTL記述などを入力すると、所望の半導体製造技術(プロセステクノロジ)の下で最適なゲートレベル論理回路(ネットリスト)を自動生成する技術です。
レジスタ間の演算の配分が、動作周波数の上限を決める
Section titled “レジスタ間の演算の配分が、動作周波数の上限を決める”RTLという名前の中身は「レジスタ間の動作」です。回路の中には、値を一時的にためておくレジスタ(フリップフロップ、F/F)が並び、その間に足し算や比較といった演算のかたまりが挟まっています。クロックが1回進むたびに、値は前のレジスタから演算を通り抜け、次のレジスタへ移ります。RTLで書くのはこの移り方で、どのレジスタからどのレジスタへ、途中で何をして値が移るかを書きます。
ルネサス エレクトロニクスのCMOSセルベースIC(CB-40 LRタイプ)では、実際に実現できる周波数が、RTLの記述内容とF/F間の組み合わせ回路に依存します3。書き方が、チップの速さを決めます。クロック1回のあいだに演算を通り抜けられる速さまでが、そのチップの動作の上限です。演算を1回に詰め込みすぎれば遅くなり、分ければ速くなるかわりに段数が増えます。RTLを書くとは、この配分を選ぶ作業でもあります。
記述言語で書いたうち、合成できるものだけがRTLとして通る
Section titled “記述言語で書いたうち、合成できるものだけがRTLとして通る”Verilog HDLで書いたもののうち、RTLとして通るのは論理合成できる書き方に限られます。セイコーエプソンは、提出するRTLデータを論理合成可能な記述のみにするよう求め、論理合成にかけられるのはビヘイビア・レベルの記述を除いたRTLデータだけとしています4。同じ言語で書いていても、動きを確かめる用途に留まる書き方があり、それが混ざったRTLデータは論理合成の手前で止まります。
RTLが指すのは、言語の名前より、「合成できる書き方」という条件のついた抽象度です。
RTLとネットリストは、等価性を確かめ合う別の成果物
Section titled “RTLとネットリストは、等価性を確かめ合う別の成果物”RTLと、そこから生成されるネットリストは別の成果物です。セイコーエプソンは工程として、顧客のRTL記述と論理合成後のネットリストとのフォーマル・ベリフィケーション(等価性チェック)を行います。同じものであれば一致を確かめる工程は不要なので、この工程があること自体が、両者が別物である証拠です。
RTLの段階でも規模の見当はつきます。セイコーエプソンは、顧客から受領した仮RTLデータから概略のゲート規模を見積もれるとしています。まだ回路になっていなくても、どのくらいの大きさになるかは読めます。
RTLを書く主体は、人からツールへ移りつつある
Section titled “RTLを書く主体は、人からツールへ移りつつある”RTLは長く「人が書くもの」でした。NEDO5は2025年5月30日、シャープと共同で高位合成ツールを開発したと発表しました。このツールは、映像データ向けのAIアルゴリズムをPython(パイソン)で書いたコードを入力として、FPGAなどのハードウェア向けのRTLコードを短時間で自動生成します。
パラメータ数7779でConv2Dが6層のネットワーク構造を持つAI超解像モデルのRTLコード生成という課題では、生成期間が専門技術者による開発で6週間かかるのに対し、このツールでは約5分で完了したとしています。
RTLの上位とされるC/C++の層から、RTLへ自動で下ろす道具が実用の場に出てきています。RTLは設計の受け渡し単位でありつづける一方で、それを書く主体が変わりつつあります。
訳語は「レジスタ伝送レベル」と「レジスタ転送レベル」
Section titled “訳語は「レジスタ伝送レベル」と「レジスタ転送レベル」”JEITAの半導体用語集はRTLをレジスタ伝送レベルと訳し、「レジスタ転送レベル」という表記も広く使われます。どちらもRegister Transfer Levelのことで、同じ概念を指します。
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”RTLとは何ですか?
「レジスタ伝送レベル」とも訳され、ハードウェア記述言語でハードウェアを記述する抽象レベルの一つです。論理回路をレジスタ間の動作として表現します。
RTLで書いた時点で回路になっているのですか?
回路になるのは、RTLを書いたあとの論理合成からです。設計作業の成果物は機能記述プログラムで、RTLというフォーマットで出力できたら、コンピュータによる自動的な論理合成作業で論理回路に変換します。
どんな言語で書くのですか?
Verilog HDLまたはVHDLを使うことが多く、作業はもはやプログラミングに近いものです。
抽象度にはどんな段階があるのですか?
RTLはゲートレベルよりも上位の記述レベルです。RTLよりも抽象度が高いビヘイビアレベルと、回路情報に近いゲートレベルがあります。
ハードウェア記述言語で書けば、すべてRTLになるのですか?
論理合成できる書き方に限ります。セイコーエプソンは、提出するRTLデータを論理合成可能な記述のみにするよう求め、論理合成にかけられるのはビヘイビア・レベルの記述を除いたRTLデータだけとしています。
RTLの書き方でチップの性能は左右されますか?
変わります。ルネサス エレクトロニクスのCMOSセルベースICでは、実際に実現できる周波数が、RTLの記述内容とフリップフロップ間の組み合わせ回路に依存します。
RTLは人が書くものですか?
人が書くものでしたが、変わりつつあります。NEDOは2025年5月30日、シャープと共同で、AIアルゴリズムをPythonで書いたコードからRTLコードを短時間で自動生成する高位合成ツールを開発したと発表しました。
比較・違いを学ぶ
Section titled “比較・違いを学ぶ”5件を表示
- 1JEITA(電子情報技術産業協会)半導体部会:半導体用語集semicon.jeita.or.jp ↩
- 2
- 3
- 4
- 5