HOME Corporate Product Verilog VHDL Link Contact Site map


ここでは、VHDL記述の感じを知るために「エンティティ&アーキテクチャ」で使用したハーフアダーの記述をもっと細分化して説明していきます。

[例:ハーフアダー]

ライブラリ宣言とパッケージの呼び出し(std_logicを使用するために必要)
   library IEEE;
   use IEEE std_logic_1164.all;
   C言語で言うstdio.hをインクルードするようなものでIEEEで、用意されているライブラリを読みこみます。
   最初はとりあえずつけときましょう。


エンティティ エンティティ名 HARF_ADDER

   entity HALF_ADDER is
      pory(
   
信号名:A  方向指定:入力  データタイプ:std_logic
      A  : in  std_logic;
      B  : in  std_logic;
   
信号名:S  方向指定:出力  データタイプ:std_logic
      S  : out  std_logic;
      CO : out  std_logic
     );
   end HALF_ADDER;
   エンティティは回路図でいうシンボルのようなもので、回路のインタフェース信号を記述していきます。
   また、ここで信号の方向指示(入力、出力、入出力など)とデータタイプを記述します。



*方向指示
方向指示(mode) 意味
in 入力
out 出力(内部で出力を再利用できない)
inout 双方向
buffer 出力(内部で出力を再利用できる)
linkage 方向指定なし。どの方向でも結合できる。

   注)outは信号代入を許すのに対し、bufferは一つしか許さない。
   注)通常はin/out/inoutを使用します。



*データタイプ
VHDLではデータタイプの種類は豊富で、またユーザが新たにデータタイプを作ることも可能です。
ただし回路記述(RTL記述)ではstd_logic、std_logic_vectorを使用すると考えてください。

(VHDLの標準データタイプ)

データタイプ 意味
integer 整数32ビット
real 浮動小数点
bit ロジック値 “0”,“1”
bit_vector bitのベクタタイプ
boolean 論理値 FALSE, TRUE
character ASCII文字
time 時間の物理タイプ fs, ps, ns, ms, sec, min, hr
severity level メッセージレベルNOTE, WARING, ERROR, FAILURE
string characterのベクタタイプ

*アーキテクチャ
ロジック本体です。アーキテクチャの中の回路を記述します。

   アーキテクチャ  アーキテクチャ名:DATAFLOW  エンティティ名:HALF_ADDER

     architecture DATAFLOW of HALF_ADDER is

  信号宣言  信号名:C  データタイプ:std_logic

  
アーキテクチャ内で使用する信号(内部信号)をここで宣言します。
       signal  C:std_logic;
       signal  D:std_logic;
  
begin〜endの中にロジックを記述します。
       begin
          C  <= A or B;
          D  <= A nand B;
          CO  <= not D;
          S  <= C and D;
     <=は信号代入文。
     nand, not, andは論理演算子
     種類は6種類でand, or, not, nand, nor, xorがあります。

   end DATAFLOW;




Back

HOME Corporate Product Verilog VHDL Link Contact Site map