MENU

FPGA入門者向け:ハードマクロとソフトマクロの「マクロ」ってそもそも何?

FPGAやASICの世界でよく聞く言葉に、「ハードマクロ」や「ソフトマクロ」があります。でも、「マクロって何? マクロ定数のマクロ?」「ソフトってソフトウェアのこと?」と、初学者にとってはイメージしづらい用語の一つです。

この記事では、これらの「マクロ」が意味するものを、論理設計・物理設計・開発プロセスの観点からわかりやすく解説します。


目次

「マクロ」とは何か?

ここで言う「マクロ」は、**再利用可能な回路ブロック(モジュール)**を指します。

  • 大きめのまとまった機能単位(CPU、RAM、DSPブロック、UARTコアなど)
  • 小さなゲートや論理素子の組み合わせではなく、一つの機能として意味を持つ単位

たとえば「RISC-V CPUコア」「AXIバスインターフェース」「JPEGエンコーダ」などは、いずれも「マクロ」と呼ばれます。


ソフトマクロとは?

ソフトマクロ(Soft Macro)は、論理レベルで記述されたモジュールです。

  • 通常はHDL(VerilogやVHDL)で提供される
  • 論理合成・配置配線・レイアウト生成をユーザー側で行う
  • FPGAにもASICにも適用可能
  • 柔軟性が高く、移植性がある

特徴:

  • 構成やパラメータを設計者が変更できる
  • FPGA内のLUTやFFなどに展開される
  • デバッグやシミュレーションがしやすい

例:

  • MicroBlaze(XilinxのソフトCPU)
  • Nios II(Intel FPGA向けのソフトCPU)
  • サードパーティ製のHDL IPコア

ハードマクロとは?

ハードマクロ(Hard Macro)は、物理設計まで完了した固定構造の回路ブロックです。

  • レイアウト情報(トランジスタ配置、配線)がすでに決まっている
  • HDLでの変更はできない(ブラックボックス)
  • 特定のプロセスやデバイスに最適化されている
  • 高性能・高密度・低消費電力だが、柔軟性は低い

特徴:

  • 合成不要。すでに物理的に完成している
  • ASICやZynqのようなSoC FPGAでよく使われる
  • 利用は簡単だが、再構成性やカスタマイズ性はない

例:

  • Zynq-7000のPS部(ARM Cortex-A9)
  • PCIe PHY回路(物理層)
  • 高速トランシーバやハードウェア暗号モジュール

FPGAでの使い分け:ソフトマクロとハードマクロ

FPGAでは主にソフトマクロが使われますが、SoC型のFPGA(Zynqシリーズなど)ではハードマクロのCPUなども内蔵されています。

比較ソフトマクロハードマクロ
記述形式HDL(柔軟、再構成可能)レイアウト済み(固定)
性能中〜高(LUT次第)高速・高密度
カスタマイズ可能原則不可
主な用途FPGAロジック内の機能追加高性能・汎用部品の埋め込み

「マクロ」を理解する意味

設計が進むにつれて、個々の回路素子よりも「IP(Intellectual Property)」や「マクロ」という単位で考えることが多くなります。これは、設計を効率化し、再利用性や信頼性を高めるためです。

  • 自分で全て作るより、既存のマクロを組み合わせて使う
  • ソフトマクロなら柔軟に、ハードマクロなら確実に
  • FPGAは両者を活用できる非常に強力な設計プラットフォーム

まとめ

  • 「マクロ」とは再利用可能な機能ブロック(論理的・物理的)を指す
  • ソフトマクロ:HDL記述、柔軟で再構成可能
  • ハードマクロ:物理固定、高速・高密度・構成変更不可
  • FPGAでは設計対象によって両者を使い分けることが重要

この用語のニュアンスを理解しておくと、データシートやツールのマニュアルを読んだときにも迷わずに済みます。設計の抽象度を意識しながら、適切なモジュールを選んで設計を進めていきましょう。

目次