入出力インタフェースの定義


では,まず皆さんが使用できる エディタ を起動してください.ここでは,起動したエディタを用いて実際に算術論理演 算回路の設計を行っていきます.ファイル名は, alu.vhdとしてください.


ライブラリの宣言

一般的に市販のVHDLシミュレータや論理合成ツールには,有益なパッケージが 数種類用意されています.ですから,このパッケージを用いて設計していきま しょう.

算術論理演算回路で使用するパッケージは, std_logic_1164std_logic_arith の2種類です. std_logic_1164 では std_logicstd_logic_vector といったデータタイプを使用するための定義が行われており, std_logic_arith では std_logicstd_logic_vector を使用して演算を行うための定義がしてあります.


パッケージを利用するための宣言には,コンテキスト文節(library,use)を 用いて行います.コンテキスト文節とは,パッケージと設計データ(デザイン ユニット)を関連付けるために用います.ここでは詳細の説明は省きますが, 上記のような機能を使用するために,今回は以下のように宣言してください.
    library	IEEE;
    use IEEE.std_logic_1164.all;
    library ARITHMETIC;
    use ARITHMETIC.std_logic_arith.all;
    

パッケージ名は,CADツールによって異なることがあります.


エンティティの宣言

VHDLでは,設計対象の入出力インタフェースを エンティティ で,実際の動作を アーキテクチャ で宣言します.ここでは,算術論理演算回路の入出力ポートをentityで宣言し てみましょう.

KITE-1マイクロプロセッサの算術論理演算回路(ALU)の構成を下図に示しま す.算術論理演算回路の入出力ポートは全部5つ(データ:3,制御:1,状態フ ラグ: 1)あります.ビット幅は,データが16ビット,制御が4ビット,状態フ ラグが4ビットです.


では,実際に記述してみましょう.ただし, エンティティ 名はALU,入出力ポート名と順番は下図のサンプ ルに準拠して下さい.信号線のデータタイプはbitではなく std_logic を使用しましょう.
  1. BUF1からのデータ入力(DATA_A[16-bit])
  2. データ・バスからのデータ入力(DATA_B[16-bit])
  3. ALUの制御信号入力(S_ALU[4-bit])
  4. BUF2への演算結果の出力(ALU_OUT[16-bit])
  5. フラグ情報の出力(FLAG_OUT[4-bit])

完成しましたか? では,次に算術論理演算回路の命令定義を行いましょう.

算術論理演算回路用命令の定義



ホーム シミュレーション 辞書
This is my e-mail address:
arch_www < www@cs.kumamoto-u.ac.jp >
Copyright (C) KITE Microprocessor Project, 1996