とある科学の備忘録

とある科学の備忘録

CやPythonのプログラミング、Arduino等を使った電子工作をメインに書いています。また、木製CNCやドローンの自作製作記も更新中です。たまに機械学習とかもやってます。

【HDL】ハードウェア記述言語とは?

VHLについて

VHLとは、「Hardware Description Language」、つまり「ハードウェア記述言語」のことです。
ハードウェアの動作仕様を記述するのに使います。

通常、論理回路を組むときは半田付けなどで物理的に回路を作成しますが、VHLを使うと、プログラミングを行うように回路の作成を行うことができます。FPGAの回路設計を行う時にも、このVHLを使用します。


VHLの種類

VHLには、主にVHDLVerilog HDLの2種類があります。

どちらも、IEEEによって標準化されており、両方ともよく使われます。
例えば、FPGAの開発ソフトウェアである、QuartusIIは、VHDLVerilog HDL 両方の回路シミュレーションソフトウェアが搭載されています。

VHDLVerilog HDLの違い

おもに、以下の表のような違いがあります。

項目 VHDL Verilog HDL
習得しやすさ ×
文法的な曖昧さ ×
記述の容易さ ×
符号OK ×

ということで、初心者の私は書きやすいVerilog HDLについて学んでいきます。

以下が、コード記述の例です。

VHDLの記述例

library IEEE;
use IEEE.std_logic_1164.all;
entity HA is
   port (
       A, B : in std_logic;
       S, C : out std_logic
    );
end HA;

architecture RTL of HA is
signal x, y : std_logic;
begin
     x <= A or B;
     y <= A nand B;
     S <= x and y;
     C <= not y;
end RTL;

このようになります。

Verilog-HDLの記述例

続いて、Verilog-HDLを使用して上記と同じ回路を作成するためのプログラムです。

module HA (S, C, A, B);
    input A, B;
    output S, C;
    wire x, y;
    assign x = A | B,
               y = ~(A & B),
               S = x & y,
               C = ~y;
endmodule

Verilog-HDLには、「モジュール」という考え方があり、そのモジュールの中に回路を書き込みます。
そして、モジュールを入れ込構造にしたり複数配置することで、回路を作成していきます。

両者を比較するとわかるように、Verilog-HDLのほうが記述量が少なくなります


ということで、初心者の私はVerilog-HDLを学ぼうと思いました。