MENU

FPGA初心者のためのHDL入門 〜VHDLとVerilogの違いを理解しよう〜

FPGAを学び始めると、まず最初に「HDL(Hardware Description Language)」という言葉に出会います。しかし、いざVivadoやQuartusといった開発ツールを使ってみると、VHDLVerilogという2種類のHDLが混在していることに気づきます。

「HDLって一つじゃないの?」 「どっちを使えばいいの?」 「なぜ2種類もあるの?」

こういった疑問に答えるため、本記事ではVHDLとVerilogの歴史、違い、そして実際の開発環境での扱いについて解説していきます。


目次

1. HDLは大きく分けて2系統ある

HDLには大きく分けて以下の2つの系統があります。

  • VHDL(Very High Speed Integrated Circuit Hardware Description Language)
  • Verilog HDL(Verilog Hardware Description Language)

それぞれの歴史を簡単に振り返ってみましょう。

VHDLの歴史

VHDLは1980年代に米国防総省(DoD)が中心となり、軍事・航空宇宙用途の電子機器の標準化を目的として開発されました。1987年にIEEE 1076として標準化され、現在も改訂が続いています。

特徴として、厳格な型付けと強力な並行処理サポートがあり、安全性が求められるシステムに適しています。

Verilogの歴史

Verilogは1984年にGateway Design Automation(後にCadenceが買収)によって開発されました。元々はICのシミュレーションを目的として作られましたが、1995年にIEEE 1364として標準化され、ASIC(特定用途向けIC)設計の分野で広く普及しました。

VerilogはC言語に似たシンプルな文法を持ち、学習が容易なため、商業用途で広く使われています。


2. なぜ2種類のHDLがあるのか?

VHDLとVerilogは、それぞれ異なる背景を持つため、開発思想や用途が異なります

HDL主な開発背景特徴
VHDL米国防総省による軍事・航空宇宙用途の標準化型が厳格、エラーを防ぎやすい、記述が冗長
VerilogICシミュレーションのために開発C言語に似ていて記述が簡単、設計スピードが速い

使い分けとしては、

  • FPGA設計(特にXilinx製)ではVHDLがよく使われる
  • ASIC設計ではVerilogが一般的
  • Intel(旧Altera)系のFPGAではVerilogのサポートが強い

特定の用途によって向き・不向きがあるため、どちらを選んでもツールで対応可能です。


3. 実際の開発環境での扱い

HDLの違いは、拡張子や開発ツールでの設定にも影響を与えます。

拡張子の違い

言語拡張子
VHDL.vhd or .vhdl
Verilog.v
SystemVerilog.sv

Vivadoなどのツールでは「Mixed Language」設定が可能

FPGA設計では、VHDLとVerilogが混在したプロジェクトを扱うことがよくあります。VivadoやQuartusなどの開発環境では、「Mixed Language」設定を有効にすることで、VHDLとVerilogを同時に使用できます。

VHDLとVerilogを混在させる方法

Vivadoで混在プロジェクトを作成する際の基本ルール:

  • VHDLからVerilogを呼び出す場合
    • VerilogモジュールをVHDLのコンポーネントとして宣言し、ラッピングする
  • VerilogからVHDLを呼び出す場合
    • VHDLモジュールをブラックボックス(blackbox)として扱う
  • Block Design(BD)を活用
    • VivadoのIP Integratorを使うと、VHDL・Verilogの違いを意識せずに統合可能

4. まとめ:VHDLとVerilogの違いをスッキリ理解

比較項目VHDLVerilog
歴史的背景米国防総省の標準化プロジェクトICシミュレーションのために開発
主な用途FPGA(特にXilinx)、航空宇宙・軍事ASIC、FPGA(特にIntel/Altera)
文法の厳格さ型が厳格でエラーが少ないC言語風で柔軟だがエラーが出やすい
学習のしやすさ記述が冗長で学習コストが高いシンプルで習得が容易
開発スピード厳密な設計が可能だが記述量が多い記述が簡潔でスピードが速い
拡張子.vhd.v or .sv
ツールでの扱いVivado/QuartusともにサポートASIC開発で主流、FPGAでも利用可

5. どちらを選ぶべきか?

FPGAを学習する上で、どちらを選んでも最終的にはツールで対応可能です。ただし、

  • Xilinx FPGAを使うならVHDLが無難
  • Intel FPGAならVerilogの方が親和性が高い
  • ASIC開発を視野に入れるならVerilog(SystemVerilog)を学ぶのが良い

初心者のうちは、プロジェクトのサンプルコードを読んでみて、自分にとって書きやすい方を選ぶのがベストです。

FPGA学習の第一歩として、まずはサンプルプロジェクトを動かしながら、少しずつHDLの記述に慣れていきましょう!

目次