工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> VHDL

マスター VHDL:FPGA および ASIC 設計の包括的な入門

チュートリアル – VHDL の概要

VHDL とは恐ろしい頭字語です。 V の略です。 HSIC H アードウェアD 説明L 言語。頭字語の中の頭字語、すごいですね! VHSIC はV の略です。 エリ ああ のおしっこ 統合されたC 回路。したがって、VHDL を展開するとVとなります。 ery 高速集積回路 H アードウェアD 説明L 言語。ふー、それは一口です。 VHDL は、FPGA と ASIC を設計するために教育やビジネスで使用される 2 つの言語のうちの 1 つです。これらの魅力的な回路に慣れていない場合は、まず FPGA と ASIC の概要から恩恵を受けるかもしれません。 VHDL と Verilog は、デジタル設計者が回路を記述するために使用する 2 つの言語であり、C や Java などの従来のソフトウェア言語とは設計上異なります。

以下の例では、 を説明する VHDL ファイルを作成します。 アンドゲート。復習として、単純な And ゲートには 2 つの入力と 1 つの出力があります。出力は、両方の入力が 1 に等しい場合にのみ 1 に等しくなります。以下は、VHDL で説明する And ゲートの図です。

アンアンドゲート

さあ、始めましょう! VHDL の基本単位は信号と呼ばれます。 。ここでは、信号が 0 または 1 のいずれかであると仮定しましょう (実際には他の可能性もありますが、それについては後で説明します)。基本的な VHDL ロジックをいくつか示します。

signal and_gate : std_logic;
and_gate <= input_1 and input_2;

コードの最初の行は、std_logic タイプの信号を定義しており、それは and_gate と呼ばれます。 Std_logic は信号を定義するために最も一般的に使用されるタイプですが、他にも学習する必要があるタイプがあります。このコードは、1 つの出力 (and_gate) と 2 つの入力 (input_1 と input_2) を持つ AND ゲートを生成します。キーワード「and」は VHDL で予約されています。 <=演算子は代入演算子として知られています。上記のコードを口頭で解析するときは、「信号 and_gate が input_1 を取得し、input_2 と結合します。」と声に出して言うことができます。

ここで、input_1 と input_2 がどこから来たのか疑問に思われるかもしれません。名前が示すとおり、これらはこのファイルへの入力であるため、ツールにそれらについて伝える必要があります。ファイルへの入力と出力はエンティティで定義されます。 。エンティティには、ファイルへのすべての入力と出力を定義するポートが含まれています。単純なエンティティを作成しましょう。

entity example_and is
 port (
 input_1 : in std_logic;
 input_2 : in std_logic;
 and_result : out std_logic
 );
end example_and;

これがあなたの基本的なエンティティです。これは、example_and というエンティティと 3 つの信号、2 つの入力と 1 つの出力を定義しており、これらはすべて std_logic タイプです。これを完了するには、もう 1 つの VHDL キーワードが必要です。それはアーキテクチャです。 。アーキテクチャは、特定のエンティティの機能を記述するために使用されます。これを論文と考えてください。エンティティは目次であり、アーキテクチャは内容です。このエンティティのアーキテクチャを作成しましょう。

architecture rtl of example_and is 
 signal and_gate : std_logic;
begin
 and_gate <= input_1 and input_2;
 and_result <= and_gate;
end rtl;

上記のコードは、エンティティ example_and の rtl と呼ばれるアーキテクチャを定義します。アーキテクチャによって使用されるすべての信号は、「is」キーワードと「begin」キーワードの間に定義する必要があります。実際のアーキテクチャ ロジックは、「begin」キーワードと「end」キーワードの間にあります。このファイルの作成はほぼ完了です。最後に、どのライブラリを使用するかをツールに指示する必要があります。ライブラリは、ファイル内で特定のキーワードがどのように動作するかを定義します。現時点では、ファイルの先頭に次の 2 行が必要であることを当然のこととして考えてください。

library ieee;
use ieee.std_logic_1164.all;

おめでとうございます!最初の VHDL ファイルが作成されました。完成したファイルはここで見ることができます:

library ieee;
use ieee.std_logic_1164.all;
entity example_and is
 port (
 input_1 : in std_logic;
 input_2 : in std_logic;
 and_result : out std_logic
 );
end example_and;
architecture rtl of example_and is
 signal and_gate : std_logic;
begin
 and_gate <= input_1 and input_2;
 and_result <= and_gate;
end rtl;

バカとゲートを作成するためだけに大量のコードを書かなければならなかったように思えますか?まず第一に、ゲートは愚かではありません。第二に、あなたは正しいです。 VHDL は非常に冗長な言語です。ソフトウェアでは非常に簡単に実行できることを、Verilog や VHDL などの HDL では大幅に時間がかかるという事実に慣れてください。しかし、ソフトウェア担当者に、コンウェイのライフ ゲームを表示する VGA モニターに画像を生成してみてもらい、彼らが驚いて頭が回転するのを見てください。ちなみにその動画はVHDLとFPGAで作成されています。それはすぐにできるようになります!

次に、もう 1 つの基本的な VHDL キーワードであるプロセスについて説明します。


VHDL

  1. VHDL での符号付きと符号なし
  2. ステートメントデバウンサーの例を生成する
  3. Tcl を使用したインタラクティブなテストベンチ
  4. Quartus Prime IP ライブラリを VUnit にリンクする方法
  5. VHDL のプロセスでプロシージャを使用する方法
  6. Pmod SSD 用 VHDL デュアル 7 セグメント ディスプレイ コントローラー – 簡単な FPGA 統合
  7. VHDL で同時実行ステートメントを作成する方法
  8. VHDL で信号ベクトルを作成する方法:std_logic_vector
  9. VHDL 変換の例
  10. 最も一般的な VHDL タイプ std_logic の使用方法
  11. VHDL でループと終了を使用する方法