1) 上記2つのファイルを用いて、動作シミュレーションを行う。
注意事項
# run
だけ実行すると、CLKがあるような回路ではシミュレーションがとまらなくなる。
シミュレーションを止めるには
Execute -> interrupt もしくは Intrボタンを押す。
# run 時間
を使用するのが良い!
2) fsm21を最小面積、最小サイクル時間で回路合成を行う。
1) fsm21.vhdに対して、UP なるコントロール入力ピンを追加して、上記FSMをVHDLにて記述せよ。
2) test_fsm21.vhdを参考に、テストベクトルファイルを作成し、上記図のすべての矢印の遷移を確認する。
3) VSSシミュレータにて動作を確認し、動作波形を求めよ。
CLK, RESET, Control, UP, Y そして状態変数(ST1,ST0など)をモニターすること。
4) 面積最小の回路を合成し、そのサイクル時間を求めよ。
5) 最小のサイクル時間で動作する回路を合成し、その最小サイクル時間を求めよ。
以下のものを含むレポートを提出する。
1)作成した回路のVHDL記述
2)作成したテストベンチのVHDL記述
3)動作波形
4)面積最小合成時の回路図、面積、最小サイクル時間
5)最小サイクル時間合成時の回路図、面積、最小サイクル時間
上記ファイルは32ビット幅のレジスタ64個からなるレジスタファイルの記述例を示す。
すなわち、0から63の各アドレスに対して、それぞれ32ビットのデータの書き込み、読み出しができる。
Add はアドレス信号であり、0から63を指定するために、6ビットの幅を持っている。
WE は書き込み制御信号であり、’1’の時にCLOCKの立ち上がりエッジにてDIN端子のデータをその時に与えられたアドレスのレジスタに書き込む。
Din は書き込みデータ入力端子である。
Dout は読み出しデータ出力端子であり、与えられたアドレスに対応するレジスタの値を出力する。
Clock はクロック入力信号であり、立ち上がりエッジにてデータの書き込みを行う。
以下の3つのファイルをコンパイルして動作をシミュレーションで確かめよ。
1) ポートの決定
CLOCK入力、アドレス入力、WEコントロール、データ入力、データ出力の各ビット幅を決定せよ。
2) VHDL記述を作成する。
ヒント1) レジスタの宣言例
type RegType is array (0 to 8) of unsigned (3 downto 0);
signal reg : RegType;
3) Add=0からAdd=8までに適当な異なるデータを書き込み、次にAdd=0からAdd=8までのデータを読み出すテストベクトルを作成する。
4) VSSシミュレータにて動作を確認し、動作波形を求めよ。
5) 面積最小の回路を合成し、そのサイクル時間を求めよ。
6) 最小のサイクル時間で動作する回路を合成し、その最小サイクル時間を求めよ。
以下のものを含むレポートを提出する。
1)作成した回路のVHDL記述
2)作成したテストベンチのVHDL記述
3)動作波形
4)面積最小合成時の回路図、面積、最小サイクル時間
5)最小サイクル時間合成時の回路図、面積、最小サイクル時間
以上