VHDLと乗算
メモ。
というか、最近書いてなかったのですっかり頭から抜けていたので。
VHDL記述において、乗算は
c <= a * b
と書ける訳だが*1、冒頭のパッケージ呼び出しで
library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_unsigned.ALL; -- ココが下と違う
としてしまうと1つの乗算に対してFPGA内の3つの乗算機を使用する様に論理合成される。
一方、
library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_signed.ALL; -- ココが上と違う
とすると1つの乗算機が利用される。
std_logic_vectorを符号付きのバスとみるか否かで分かれる。ということ。