この文書はVerilog-2001の文法ではなく、FPGAを用いてデジタル信号処理を行う際に使用される各種演算のアルゴリズムとHDLによる記述方法を解説するものです。
符号付整数と符号なし整数の加算と減算について解説します。オーバーフローの検出と、オーバーフロー、アンダーフローした際のクリッピング処理の手法についても解説します。
シフトは、定数2±nを乗じる演算です。定数シフトと任意の数だけシフトするバレルシフタについて解説します。また、シフタを利用した定数乗算についても解説します。
除算器の構成について説明します。一般的な「引き戻し法」です。
高速化が期待できる除算アルゴリズム「引き放し法」です。
演算処理を高速に行うためのパイプライン化と論理資源を節約するためのステートマシンについて解説します。
マルチプレクサ(セレクタ、デコーダーともいう)について、各種の構成方法を比較検討します。
乗算器は、FPGAベンダーの提供するIP(メガファンクション)を利用します。ここでは、QualtusIIでメガファンクションを利用して乗算器を構成する手法と、これをロジックエレメントで構成する手法について解説し、特性の比較を行います。
固定小数点数はVerilogの言語仕様がサポートするものではなく、利用者がその型を意識して使用する必要があります。ここでは、固定小数点数の利用例として小数部まで演算する除算器をとりあげ、固定小数点数の利用のしかたについて解説します。
シリアルポート経由でPCと通信する方法について解説します。