ハードウェア記述言語を使った設計
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/05/17 23:00 UTC 版)
「ハードウェア記述言語」の記事における「ハードウェア記述言語を使った設計」の解説
デジタル回路設計は、ハードウェア記述言語による記述か回路図入力によって行っている。回路図入力では、大規模な記述の確認が困難であるため、ハードウェア記述言語の記述が増えている。 設計の最初期は、紙と鉛筆で要求仕様や高水準な構造(アーキテクチャ)図を描くことから始まる。この構造が妥当であるかどうか重要である。構造の妥当性を確認する上で、ハードウェア記述言語で記述する場合もある。ハードウェア記述言語による記述を行う工程は、設計者の熟練度や回路の性質に強く依存している。次の段階として MATLAB や C++ の数学的モデル記述のような、高水準のアルゴリズムを記述することもある。制御と判断構造は、流れ図(フローチャート)描画ソフトウェアや状態遷移図編集ソフト(エディタ)で試作(プロトタイピング)することも多い。この後、ハードウェア記述言語の記述に変換を行う。 ハードウェア記述言語では、「RTL」と呼ぶ抽象度でハードウェアを記述する。この抽象度では演算器やレジスタとその間の信号伝達を用いてハードウェアを記述する。また、多くのハードウェア記述言語では入れ子構造的に、ある回路の部分回路に分けて設計する。あるいは既にある回路記述を部分回路として利用することもできる。再利用によって設計の効率化が行える。 RTL は論理回路の表現としては抽象的であるため、このままではハードウェアにする事はできない。その代わり、この抽象度に適合したシミュレータを用いて、回路の論理的な動作を確認することができる。機能としては電気的特性などの再現は限られる。シミュレータを用いて、回路の妥当性検証や性能見積もりを行う。 この後ゲート水準と呼ぶ、論理回路を記述する抽象度の記述に展開することで、集積回路を実現する。この操作を論理合成と呼ぶ。論理合成を実行するための道具を論理合成ツール と呼ぶ。 ハードウェア記述言語の記述の抽象度(水準) 構造(アーキテクチャ)- システムの構造、基本機能(アルゴリズム)を記述 動作(BL) - 回路の動作を機能面から記述 レジスタ転送(RTL) - レジスタと演算器とその間の配線(接続)を記述 ゲート(GL) - フリップフロップや論理素子:ゲート(not, and, or, xor)で回路図を表現 設計工程が次の段階に進むたびに、ハードウェア記述言語コードは常にコードレビューを行う。論理合成の前に、ハードウェア記述言語記述は一連の自動化された検査を受ける。この検査工程で、後の合成工程で解釈を間違う可能性のある曖昧な構文を検出したり、一般的なコーディング上の問題を検出する。 ここでよく用いるのが、STARC が作成した Verilog HDL スタイルガイド、VHDL スタイルガイドである。このコーディング規則に従うと、電子回路の知識がないプログラマが作成したコードの論理的な欠陥を少なくすることができる。スタイルガイドに適合しているかを検査するソフトウェアも存在している。 ハードウェア記述言語による設計は、論理合成工程で終了すると考える。合成ツールがハードウェア記述言語の記述をゲートのネットリストに変換すると、ネットリストが下工程に引き渡される。物理的なテクノロジ(FPGA、ASICゲートアレイ、ASIC標準セル)によっては、ハードウェア記述言語が下工程でも重要な役割を演じることもある。一般に工程が進んで設計が詳細化していくと、設計データベースには技術固有の情報が格納されるようになっていく。技術固有のデータが増えると汎用的なハードウェア記述言語による記述では格納しきれなくなる。 反復的な回路構造をハードウェア記述言語で記述するときに、Perlのようなスクリプト言語を使って自動生成することもある。Emacsなどのテキストエディタは、ハードウェア記述言語のソースコードについて自動字下げ(インデント)、キーワードの強調表示、各種宣言のマクロ拡張などの機能を提供しているものがある。
※この「ハードウェア記述言語を使った設計」の解説は、「ハードウェア記述言語」の解説の一部です。
「ハードウェア記述言語を使った設計」を含む「ハードウェア記述言語」の記事については、「ハードウェア記述言語」の概要を参照ください。
- ハードウェア記述言語を使った設計のページへのリンク