HOME Corporate Product Verilog VHDL Link Contact Site map


*加算器の記述
 以下のソースは4ビットの加算器の記述です。
 この回路は以前紹介したフルアダーを4個並べて記述することもできます。
 しかし、算術演算子(+, -, *, /, mod, rem)を使用することにより1行で簡単に記述できます。

   library IEEE;
   use IEEE std_logic_1164.all;

   entity ADDER4 is
     port(
       A :in   std_logic_vector(3 downto 0);
       B :in   std_logic_vector(3 downto 0);
       Z :out  std_logic_vector(3 downto 0)
     );
   end ADDER4;

   architecture DATAFLOW of ADDER is
   begin
     Z <= A + B;
   end DATAFLOW;

実際にロジック回路を生成できる算術演算子は“+”, “-”, “*”だけです。
算術演算子は、ビット長が長い場合、単純な記述で大量のロジックを生成するので、慎重に使用する必要があります。
特に掛け算を使用した場合は、16ビットで2000ゲートを超える回路を生成してしまいます。

“/”, “mod”, “rem”は、分母側が2のべき乗の定数の場合のみロジック生成が可能です。
この場合は、ビットシフト演算になります。

“std_logic_vector”で算術演算を行う際、“+”, “-”の場合は左辺と右辺のどちらかと、代入させる値が同じビット長でないと文法エラーになります。

また、“*”は、左辺と右辺のビット長を足した値が、代入される値のビット長と同じでないと文法エラーになります。



Back

HOME Corporate Product Verilog VHDL Link Contact Site map