コンピュータ エンジニアリングにおいて、ハードウェア記述言語( HDL ) は、電子回路の構造と動作を記述するために使用される特殊なコンピュータ言語であり、通常は特定用途向け集積回路( ASIC ) を設計し、フィールド プログラマブル ゲート アレイ( FPGA )をプログラムするために使用されます。
ハードウェア記述言語を使用すると、電子回路の正確で形式的な記述が可能になり、回路の自動分析とシミュレーションが可能になります。また、HDL記述をネットリスト(物理的な電子部品とそれらの接続方法の仕様) に合成し、配置と配線を行って集積回路の作成に使用するマスクのセットを作成することもできます。
ハードウェア記述言語は、 CやALGOLなどのプログラミング言語によく似ており、式、ステートメント、制御構造で構成されるテキスト記述です。ほとんどのプログラミング言語と HDL の重要な違いの 1 つは、HDL には時間の概念が明示的に含まれていることです。
HDL は、特に特定用途向け集積回路、マイクロプロセッサ、プログラマブル ロジック デバイスなどの複雑な回路において、電子設計自動化(EDA) システムの不可欠な部分を形成します。
モチベーション
1970年代以降、デジタル電子回路の複雑さが爆発的に増加したため(ムーアの法則を参照)、回路設計者は、ECL、TTL、CMOSなどの特定の電子技術に縛られることなく、高レベルでデジタルロジックを記述する必要がありました。HDLは、レジスタ転送レベルの抽象化、つまり回路のデータフローとタイミングのモデルを実装するために作成されました。 [1]
ハードウェア記述言語には、主にVHDLとVerilog の2 つがあります。これらの言語には、「データフロー、動作、構造」という異なるタイプの記述があります。VHDL のデータフローの例:
ライブラリIEEE ; IEEE.STD_LOGIC_1164を使用します。すべて;
エンティティnot1はポートです( a : IN STD_LOGIC ; b : OUT STD_LOGIC ); END not1 ;
アーキテクチャbehavioral OF not1 IS BEGIN b <= NOT a ; END behavioral ;
HDLの構造
HDL は、電子システムの構造と時間の経過に伴う動作を標準的なテキストベースで表現したものです。並行プログラミング言語と同様に、HDL の構文とセマンティクスには並行性を表現するための明示的な表記法が含まれています。ただし、ほとんどのソフトウェアプログラミング言語とは異なり、HDL にはハードウェアの主要な属性である時間の概念も明示的に含まれています。ブロックの階層間の回路接続を表現することだけが特徴の言語は、電気系コンピュータ支援設計で使用されるネットリスト言語として適切に分類されます。HDL は、同じ回路機能の構造、動作、またはレジスタ転送レベルのアーキテクチャで設計を表現するために使用できます。最後の 2 つのケースでは、シンセサイザーがアーキテクチャとロジック ゲートのレイアウトを決定します。
HDL は、ハードウェアの実行可能な仕様を記述するために使用されます。言語ステートメントの基本的なセマンティクスを実装し、時間の経過をシミュレートするように設計されたプログラムは、ハードウェア設計者に、ハードウェアを物理的に作成する前にモデル化する機能を提供します。この実行可能性により、HDL はプログラミング言語であるかのような印象を与えますが、より正確には、仕様言語またはモデリング言語に分類されます。離散イベント (デジタル) および連続時間 (アナログ) モデリングをサポートできるシミュレーターが存在し、それぞれを対象とした HDL が利用可能です。
制御フロー言語との比較
データフローではなく制御フローセマンティクスで動作するC++などの従来のプログラミング言語を使用してハードウェアセマンティクスを表現することは確かに可能ですが、そのように機能させるには、プログラムを大規模で扱いにくいクラスライブラリで拡張する必要があります。ただし、一般にソフトウェアプログラミング言語には時間を明示的に表現する機能がないため、ハードウェア記述言語として機能することはできません。2002年にSystem Verilogが導入される前は、C++ をロジックシミュレータに統合することが、ハードウェア検証でオブジェクト指向プログラミングを使用する数少ない方法の 1 つでした。System Verilog は、オブジェクト指向とガベージコレクションを提供する最初の主要な HDL です。
ハードウェア記述言語の適切なサブセットを使用すると、シンセサイザーまたは論理合成ツールと呼ばれるプログラムは、言語ステートメントからハードウェア ロジック操作を推測し、指定された動作を実装するための汎用ハードウェア プリミティブ[専門用語]の同等のネットリストを生成できます。 [引用が必要]シンセサイザーは通常、テキスト内のタイミング構造の表現を無視します。たとえば、デジタル論理シンセサイザーは通常、回路のタイミングを計る方法としてクロック エッジを使用し、タイミング構造を無視します。言語の合成可能なサブセットを持つ機能自体は、ハードウェア記述言語にはなりません。
歴史
最初のハードウェア記述言語は1960年代後半に登場し、より伝統的な言語に似ていました。[2]永続的な影響を与えた最初の言語は、1971年にC. Gordon BellとAllen Newellの著書「Computer Structures」で説明されました。[3]この著書では、レジスタ転送レベルの概念が導入され、ISP言語で初めてDigital Equipment Corporation (DEC) PDP-8の動作を記述するために使用されました。[4]
この言語は、DECのPDP-16 RTレベルモジュール(RTM)とその使用方法を説明した本の導入により、さらに普及しました。[5] 少なくとも2つの基本的なISP言語の実装(ISPLとISPS)が続きました。[6] [7] ISPSは、設計の入力と出力 の関係を記述するのに適しており、DECの商用チーム、米国および北大西洋条約機構( NATO )の同盟国のいくつかの研究チームによってすぐに採用されました。
RTM 製品は商業的に成功することはなく、超大規模集積回路(VLSI) など の新しい手法が普及したため、DEC は 1980 年代半ばに RTM 製品のマーケティングを中止しました。
1979年頃カイザースラウテルン大学で行われた別の研究で、KARL ("KAiserslautern Register Transfer Language") と呼ばれる言語が開発されました。この言語には、VLSIチップフロアプランニング[専門用語]と構造化ハードウェア設計をサポートする設計計算言語機能が含まれています。この研究は、KARLの対話型グラフィック姉妹言語であるABLの基礎でもありました。ABLの名前は「A Block diagram Language」の頭文字です。 [8] ABLは、1980年代初頭にイタリアのトリノにある Centro Studi e Laboratori Telecomunicazioni ( CSELT ) によって実装され、ABLEDグラフィックVLSI設計エディタが開発されました。1980年代半ばには、欧州連合委員会の資金提供を受けた国際コンソーシアムによって、KARLとABLを中心としたVLSI設計フレームワークが実装されました。[9]
1970 年代後半には、プログラマブル ロジック デバイス(PLD) を使用した設計が普及しましたが、これらの設計は主に有限状態マシンの設計に限定されていました。1980 年にData Generalで行われた作業では、同じデバイスを使用してData General Eclipse MV/8000を設計し、それらに適切にマッピングできる言語に対する商業的なニーズが高まり始めました。1983 年までに、Data I/O はABEL を導入してそのニーズを満たしました。
1985年に設計がVLSIに移行すると、Gateway Design AutomationはVerilogを導入し、IntermetricsはVHSICハードウェア記述言語(VHDL)の最初の完成版をリリースした。VHDLは米国国防総省の超高速集積回路プログラム(VHSIC)の要請で開発され、Adaプログラミング言語と、ISPSの初期開発で得られた経験に基づいていた。 [10]当初、VerilogとVHDLは、別の形式(回路図ファイルなど)で既にキャプチャされ記述されている回路設計を文書化およびシミュレーションするために使用されていた。HDLシミュレーションにより、エンジニアは回路図レベルのシミュレーションよりも高い抽象度で作業できるようになり、設計容量が数百のトランジスタから数千に増加した。[要出典] 1986年、米国国防総省の支援を受けて、VHDLはIEEE標準(IEEE Std 1076)として後援され、VHDLの最初のIEEE標準化バージョンであるIEEE Std 1076-1987が1987年12月に承認されました。その後、 Cadence Design Systemsは、次の10年間にVerilogシミュレータの事実上の標準となるHDLシミュレータであるVerilog-XLの権利を取得するためにGateway Design Automationを買収しました。
HDL の論理合成の導入により、HDL はデジタル設計の背景から前面に押し出されました。合成ツールは、RTL と呼ばれる制約形式で記述されたHDLソース ファイルを、ゲートとトランジスタの観点から製造可能なネットリスト記述にコンパイルしました。合成可能な RTL ファイルを作成するには、設計者の練習と訓練が必要でした。従来の回路図レイアウトと比較すると、合成された RTL ネットリストはほとんどの場合、面積が大きく、パフォーマンスが低速でした[要出典]。熟練したエンジニアによる労働集約的な回路図キャプチャ/手動レイアウトを使用した回路設計は、ほとんどの場合、論理的に合成された同等のものよりもパフォーマンスが優れていますが、合成による生産性の利点により、デジタル回路図キャプチャはすぐに、RTL 合成で問題となる領域、つまり超高速、低電力、または非同期回路に取って代わられました。
数年のうちに、VHDL と Verilog がエレクトロニクス業界で主流の HDL として登場し、旧式で機能の少ない HDL は徐々に使用されなくなりました。しかし、VHDL と Verilog は、アナログまたはミックス信号回路シミュレーションには適さないなど、多くの点で同じ制限を共有しています。Verilog と VHDL の特定の制限を修正するという明確な目標を掲げて、専用の HDL (Confluence など) が導入されましたが、これらを置き換えることを意図したものはありませんでした。
長年にわたり、HDL の改善に多大な努力が注がれてきました。正式には IEEE 1800-2005 SystemVerilog として知られる Verilog の最新版では、テストベンチのランダム化、設計階層、再利用の向上に対するニーズの高まりに対応するため、多くの新機能 (クラス、ランダム変数、プロパティ/アサーション) が導入されています。VHDL の将来の改訂版も開発中であり[いつ? ]、SystemVerilog の改善に一致することが期待されています。
HDLを使用した設計
HDL を使用することで効率が向上するため、現代のデジタル回路設計の大部分は HDL を中心に展開されています。ほとんどの設計は、一連の要件または高レベルのアーキテクチャ図から始まります。制御構造と決定構造は、多くの場合、フローチャートアプリケーションでプロトタイプ化されるか、エディターで入力されます。HDL 記述の記述プロセスは、回路の性質と設計者のコーディング スタイルの好みに大きく依存します。HDL は単なる「キャプチャ言語」であり、多くの場合、C++ 数学モデルなどの高レベルのアルゴリズム記述から始まります。設計者は、Perlなどのスクリプト言語を使用して、HDL 言語で反復的な回路構造を自動的に生成することがよくあります。専用のテキスト エディターには、自動インデント、構文依存の色付け、エンティティ/アーキテクチャ/信号宣言の マクロベースの拡張などの機能があります。
次に、HDL コードはコード レビュー、つまり監査を受けます。合成の準備として、HDL 記述は一連の自動チェッカーにかけられます。チェッカーは、標準化されたコード ガイドラインからの逸脱を報告し、誤解を招く前に潜在的なあいまいなコード構造を特定し、フローティングポートやショートした出力などの一般的な論理コーディング エラーをチェックします。このプロセスは、コードが合成される前にエラーを解決するのに役立ちます。
業界用語では、HDL 設計は一般に合成段階で終了します。合成ツールが HDL 記述をゲート ネットリストにマッピングすると、ネットリストはバックエンド段階に渡されます。物理テクノロジ ( FPGA、ASIC ゲート アレイ、ASIC標準セル) に応じて、HDL はバックエンド フローで重要な役割を果たす場合と、果たさない場合があります。一般に、設計フローが物理的に実現可能な形式に向かって進むにつれて、設計データベースには、汎用 HDL 記述では保存できないテクノロジ固有の情報が次第に多く含まれるようになります。最後に、集積回路が製造されるか、使用のためにプログラムされます。
HDLコードのシミュレーションとデバッグ
HDL 設計に不可欠なのは、HDL プログラムをシミュレートする機能です。シミュレーションにより、設計の HDL 記述 (モデルと呼ばれる) が設計検証に合格できます。設計検証は、設計の意図された機能 (仕様) を HDL 記述のコード実装に対して検証する重要なマイルストーンです。また、アーキテクチャの調査も可能になります。エンジニアは、基本設計の複数のバリエーションを作成し、シミュレーションでそれらの動作を比較することで、設計の選択肢を試すことができます。したがって、シミュレーションは HDL 設計の成功に不可欠です。
HDL モデルをシミュレートするには、エンジニアはトップレベルのシミュレーション環境 (テスト ベンチと呼ばれる) を作成します。テストベンチには、少なくとも、モデルのインスタンス化 (テスト対象デバイスまたは DUT と呼ばれる)、モデルの I/O のピン/信号宣言、およびクロック波形が含まれます。テストベンチ コードはイベント ドリブンです。エンジニアは、(テストベンチで生成された) リセット信号を実装し、インターフェイス トランザクション (ホスト バスの読み取り/書き込みなど) をモデル化し、DUT の出力を監視する HDL ステートメントを作成します。テストベンチを実行するプログラムである HDL シミュレータは、テストベンチ シミュレーションのすべてのイベントのマスター参照であるシミュレータ クロックを維持します。イベントは、テストベンチ HDL によって指定された瞬間 (テストベンチにコード化されたリセット トグルなど)、または刺激やトリガー イベントに対する反応 (モデルによる) でのみ発生します。最新の HDL シミュレータには、一連のデバッグ ツールを備えたフル機能のグラフィカル ユーザー インターフェイスがあります。これらにより、ユーザーはいつでもシミュレーションを停止および再開したり、シミュレータ ブレークポイントを挿入したり (HDL コードとは無関係)、HDL モデル階層内の任意の要素を監視または変更したりできます。最新のシミュレータでは、定義されたPLI /VHPI インターフェイスを介して、HDL 環境をユーザーがコンパイルしたライブラリにリンクすることもできます。HDL シミュレータとユーザー ライブラリは HDL 環境外でコンパイルおよびリンクされるため、リンクはシステムに依存します ( Windows / Linux / Solarisで実行されるx86、SPARCなど)。
設計検証は、デバイスの機能仕様、設計者の仕様の解釈、およびHDL 言語の不正確さ[要出典]の間の断絶が原因で、設計プロセスの中で最も時間のかかる部分になることがよくあります。設計の初期段階では回路の大幅な変更が頻繁に行われるため、初期のテスト/デバッグ サイクルの大部分は HDLシミュレータ環境で実行されます。HDL 記述はハードウェアでプロトタイプ化してテストすることもできます。この目的では、プログラマブル ロジック デバイスがよく使用されます。ハードウェア プロトタイピングは、HDL シミュレーションよりも比較的高価ですが、設計の現実的なビューを提供します。プロトタイピングは、他のハードウェア デバイスやハードウェア プロトタイプに対するインターフェイスを確認するのに最適な方法です。低速の FPGA で実行されている場合でも、純粋な HDL シミュレーションよりもシミュレーション時間が大幅に短くなります。
HDLによる設計検証
歴史的に、設計検証は、テスト対象の設計に対してシミュレーションテスト ケースを作成して実行するという面倒な繰り返しの作業でした。チップ設計が大規模かつ複雑になるにつれて、設計検証のタスクは、設計チームのスケジュールの大部分を占めるまでに拡大しました。設計の生産性を向上させる方法を模索し、電子設計自動化業界では、プロパティ仕様言語 (Property Specific Language)が開発されました。
形式検証の用語では、プロパティとは、別のオブジェクトの期待される動作または想定される動作に関する事実の記述です。理想的には、特定の HDL 記述に対して、形式的な数学的手法を使用して、1 つまたは複数のプロパティが真か偽かを証明できます。実際的には、多くのプロパティは、無制限のソリューション スペースを占有するため、証明できません。ただし、一連の動作上の仮定または制約が指定されている場合、プロパティ チェッカーは、ソリューション スペースを狭めて、特定のプロパティを証明 (または反証) できます。
アサーションは回路アクティビティをモデル化するものではなく、HDL コード内の設計者の意図をキャプチャして文書化します。シミュレーション環境では、シミュレーターは指定されたすべてのアサーションを評価し、違反の場所と重大度を報告します。合成環境では、合成ツールは通常、違反が発生すると合成を停止するポリシーで動作します。アサーション ベースの検証はまだ初期段階ですが、HDL 設計ツールセットの不可欠な部分になると予想されています。
HDLとプログラミング言語
HDL はソフトウェアプログラミング言語と非常によく似ていますが、大きな違いもあります。ほとんどのプログラミング言語は本質的に手続き型(シングル スレッド) であり、並行処理を扱うための構文とセマンティクスのサポートは限られています。一方、HDL は、互いに独立して自動的に実行される複数の並列プロセス (フリップフロップや加算器など) をモデル化する機能において並行プログラミング言語に似ています。プロセスの入力が変更されると、シミュレータのプロセス スタックの更新が自動的にトリガーされます。
プログラミング言語と HDL は両方ともコンパイラ (HDL の場合はシンセサイザーと呼ばれることが多い) によって処理されますが、その目的は異なります。HDL の場合、「コンパイル」とは論理合成、つまり HDL コード リストを物理的に実現可能なゲートネットリストに変換するプロセスを指します。ネットリストの出力は、ゲート遅延情報を含む「シミュレーション」ネットリスト、半導体ダイ上で合成後の配置と配線を行う「ハンドオフ」ネットリスト、または汎用の業界標準Electronic Design Interchange Format (EDIF) (後でJEDEC形式のファイルに変換) など、さまざまな形式を取ることができます。
一方、ソフトウェア コンパイラは、ソース コード リストをマイクロプロセッサ固有のオブジェクト コードに変換し、ターゲット マイクロプロセッサで実行します。HDL とプログラミング言語は互いに概念や機能を借用しているため、それらの境界は明確ではなくなってきています。ただし、純粋な HDL は、汎用アプリケーション ソフトウェアの開発には適していません。[なぜでしょうか? ]汎用プログラミング言語がハードウェアのモデリングに適していないのと同じです。
しかし、電子システムがますます複雑になり、再構成可能なシステムがますます一般的になるにつれて、業界ではハードウェア設計とソフトウェア プログラミングの両方のタスクを実行できる単一の言語に対する要望が高まっています。SystemCはその一例です。組み込みシステムのハードウェアは、詳細化されていないアーキテクチャ ブロック (モデル化された信号入力と出力ドライバーを持つブラック ボックス) としてモデル化できます。ターゲット アプリケーションは C または C++ で記述され、ホスト開発システム用にネイティブにコンパイルされます。組み込み CPU をターゲットにする場合は、組み込み CPU のホスト シミュレーションまたはエミュレートされた CPU が必要です。
SystemC モデルの高度な抽象化は、信号レベルの実装問題をほとんど気にせずにアーキテクチャの変更を簡単に評価できるため、初期のアーキテクチャ調査に適しています。ただし、SystemC で使用されるスレッド モデルは共有メモリに依存しているため、この言語は並列実行や低レベルのモデルを適切に処理できません。
高位合成
HDL は、その抽象化のレベルにおいて、アセンブリ言語に例えられています。[要出典] HDL でのプログラミングの複雑さを軽減するためにハードウェア設計の抽象化レベルを上げる試みがあり、高レベル合成と呼ばれるサブフィールドが作成されています。
Cadence、Synopsys、Agility Design Solutionsなどの企業は、高水準言語と並行モデルを組み合わせて、従来の HDL を使用する場合よりもFPGAの設計サイクルを高速化する方法としてSystemC を推進しています。標準CまたはC++ (並列プログラミングを可能にするライブラリまたはその他の拡張機能付き) に基づくアプローチは、 Mentor GraphicsのCatapult CツールやImpulse Accelerated Technologies の Impulse Cツールに含まれています。
Intel の同様の取り組みとして、SYCLに関連する Data Parallel C++ を高レベル合成言語として使用するというものがあります。
Annapolis Micro Systems, Inc.のCoreFire Design Suite [11]とNational Instruments LabVIEW FPGAは、高レベルの設計エントリにグラフィカルなデータフローアプローチを提供します。SystemVerilog、 SystemVHDL、Handel-Cなどの言語も同じ目標を達成しようとしていますが、FPGAを既存のソフトウェアエンジニアにとってよりアクセスしやすいものにするのではなく、既存のハードウェアエンジニアの生産性を高めることを目的としています。
また、 MathWorks HDL Coderツール[12]やIntel FPGA用のDSP Builder [13] 、 XilinxのXilinx System Generator(XSG)[14]を使用して、 MATLABとSimulinkでハードウェアモジュールを設計することも可能です。
HDLの例
アナログ回路設計のためのHDL
デジタル回路設計のための HDL
業界で最も広く使用され、十分にサポートされている 2 つの HDL の種類は、VerilogとVHDLです。
プリント基板設計用の HDL
言語ベースのテキスト入力方式を使用してプリント回路基板の接続を定義するプロジェクトはいくつかあります。その中で、可読性、再利用性、検証の向上に重点を置いた新しいアプローチが登場しました。これらの最新の方法論では、電子機器向けに特別に調整されたオープンソースの設計言語を使用し、宣言型マークアップを採用して回路が達成すべきことを指定します。この移行により、ソフトウェア開発の原則がハードウェア設計に統合され、プロセスが合理化され、自動化、再利用、検証が重視されるようになります。
参照
参考文献
- ^ Ciletti, Michael D. (2011). Verilog HDL による高度なデジタル設計(第 2 版). Prentice Hall. ISBN 9780136019282。
- ^ Barbacci, M. 「コンピュータとデジタルシステムを記述するためのレジスタ転送言語の比較」、カーネギーメロン大学、コンピュータサイエンス学部、1973 年 3 月
- ^ Bell, CG; Newell, A. (1971).コンピュータ構造: 読み物と例. McGraw-Hill. ISBN 0-07-004357-4。
- ^ Reilly, ED (2003).コンピュータサイエンスと情報技術のマイルストーン。Greenwood Press。p. 183。ISBN 1-57356-521-0。
- ^ Bell, CG; Grason, J.; Newell, A. (1972). Designing Computers and Digital Systems . Digital Press. LCCN 72-89566. OCLC 440245727.
- ^ Barbacci, MC (1976). コンピュータ記述の記号操作: ISPL コンパイラとシミュレータ (レポート). カーネギーメロン大学コンピュータサイエンス学部. doi :10.1184/R1/6610790.v1.
- ^ Barbacci, MC; Barnes, GE; Cattell, RGG; Siewiorek, DP (1977). ISPS コンピュータ記述言語 (レポート). カーネギーメロン大学コンピュータサイエンス学部. doi :10.1184/R1/6610637.v1.
- ^ ジラルディ、G.ハルテンスタイン、R. (1983)。 ABL仕様(レポート)。CSELTとカイザースラウテルン大学。
- ^ ab Hartenstein, Reiner W. (2012) [1993]、「KARL と ABL」、Mermet, J. (ed.)、ハードウェア記述言語の基礎と標準、NATO サイエンス シリーズ E、vol. 249、Springer、pp. 447–、ISBN 9789401119146
- ^ Barbacci, MC; Grout, S.; Lindstrom, G.; Maloney, MP (1984). ハードウェア記述言語としての Ada: 初期レポート (レポート). カーネギーメロン大学コンピュータサイエンス学部. CiteSeerX 10.1.1.938.8003 . doi :10.1184/R1/6602984.v1.
- ^ 「VHDL ベースの FPGA プログラミング アプリケーション ソフトウェア ツール」。Annapolis Micro Systems, Inc. 2018 年 12 月 1 日閲覧。
- ^ 「VHDL コード - HDL Coder - MATLAB & Simulink」。Mathworks.com。2011 年 4 月 30 日。2012 年 8 月 11 日閲覧。
- ^ 「デジタル信号処理 (DSP) ビルダー - Intel® FPGA」。Intel 。2021年9月20日閲覧。
- ^ 「System Generator for DSP」。Xilinx.com。2012年7月12日時点のオリジナルよりアーカイブ。2012年8月11日閲覧。
- ^ Haskell の歴史: クラスを怠惰にする§12.4.2
- ^ 「Chisel/FIRRTL ハードウェア コンパイラ フレームワーク」。
- ^ COLAMO [永久リンク切れ]
- ^ "高水準言語 COLAMO – НИЦ супер-ЭВМ и нейрокомпьютеров".
- ^ Eurich, JP; Roth, G. (1990). 「EDIF の成長」. IEEE Spectrum . 27 (11): 68–72. doi :10.1109/6.62219. S2CID 381119.
- ^ ハードカムル
- ^ Li, Yanbing; Leeser, M. (1995). 「HML: 革新的なハードウェア記述言語と VHDL への翻訳」ASP-DAC'95/CHDL'95/VLSI'95 の EDA Technofair との会議録。pp. 691–696。doi : 10.1109 / ASPDAC.1995.486388。ISBN 4-930813-67-0.S2CID 14198160 。
- ^ チャルマーズ溶岩
- ^ ザイリンクス ラバ
- ^ カンザス溶岩
- ^ ヨーク ラバ
- ^ 「Rapid Open Hardware Development (ROHD) Framework」. GitHub . 2021年11月17日。
- ^ TL-Verilog
外部リンク
- HCT - 設計の複雑さを判断するために使用される HDL 複雑度ツール。
