1) nirai 上のシミュレータを用い動作シミュレーションを行う。このとき、グラフィカルウインドウを自分の使用しているローカルなディスプレイに表示する必要があるので、以下の設定が必要である。
ローカルなウインドウで
% xhost nirai
% xhost nirai-1nirai は負荷分散のために、nirai, nirai-1に分割されているので、どちらのコマンドも必要。
nirai に rlogin したウインドウで
% setenv DISPLAY hostname:0.0
以上の設定をしないと、VHDLデバッガ(vhdldbx)は使用できない。
2) 作業ディレクトリに、上記2つのファイルをコピーする。
% cd ~/vhdl
% cp /home/teacher/wada/public_html/cad00/work2/comb.vhd .
% cp /home/teacher/wada/public_html/cad00/work2/test_comb.vhd .
3) VHDLアナライザ(vhdlan)で組み合わせ回路をコンパイルする。
% vhdlan comb.vhd
エラーメッセージ等があればエラーを修正して、再コンパイルする。
コンパイル後に、.sim, .mra 等のファイルができるので確認する。
4) テストベンチファイル test_comb.vhdの内容を理解し、コンパイルする。
% vhdlan test_comb.vhd
このファイルの後部にコンフィギュレーションも含まれている。
****** 以上でシミュレーションの準備は終了 *****
5) VHDLシステムシミュレータ(VSS)を起動する。(最上位のコンフィギュレーション名を入力する)
% vhdldbx CFG_COMB
グラフィカルなツールが起動される。
9) モニターしたい波形を選択する。
U0 (combのインスタンス名)をダブルクリックで選択
cdボタンを押して、下位のレベルのvhdlファイルを表示させる。(comb.vhdを表示する。)
A をダブルクリックして選択し、Trace -> signal
B をダブルクリックして選択し、Trace -> signal
C をダブルクリックして選択し、Trace -> signal
F をダブルクリックして選択し、Trace -> signal
G をダブルクリックして選択し、Trace -> signal
波形表示ウインドウが表示されるので、適当なサイズにする。
10) シミュレーションを実行する。
runボタンの横の箱に 10 を入力する。
runボタンを10回ほど押して100 ns 程度までシミュレーションする。
11) シミュレーションの結果が正しいことを確かめる。
12) 以下のVSSのよく使うコマンドの使用方法を確かめる。
1) シミュレーションの実行と停止
# run 時間
でその時間だけシミュレーションが進む。
# run
だけ実行すると、CLKがあるような回路ではシミュレーションがとまらなくなる。
シミュレーションを止めるには
Execute -> interrupt もしくは Intrボタンを押す。
2) 好きな場所でシミュレーションを一時停止したい
カーソルをその停止したいラインに移動し、
Break points -> sourceline -> stop at
3) 任意の信号の選択をしたい
信号名をダブルクリックで選択し、
Trace -> signal
4) 下位のレベルの記述にある信号を選択したい
下位のレベルの名前がU1であれば、
# cd U1
で下位のレベルに移動して、3)を実行する。
上位のレベルに戻るのは、
# cd ..
下記の内容を含むレポートを提出する。
1) comb.vhdのディレクトリに移動し、デザインアナライザーを起動する。
% design_analyzer &
デザインアナライザのウインドウが開く。このメニューを使って、回路を合成する。
2) ライブラリを確認する。
Setup -> Defaultsでターゲットライブラリがclass.dbであることを確認する。
3) VHDLファイルを読み込む。
File -> Read
comb.vhd を選択し、OKをクリック。
4) 入出力ピンを確認する。
ウインドウ中央の COMB をクリックし、左の下向き矢印ボタンを押す。
(もしくは、COMB をダブルクリックする。)
5) 合成前の回路を確認する。
回路シンボルをダブルクリックしてさらに下位レベルへ移動する。
(もしくは、左のANDのボタンを押す。)
6) 面積最小で回路を合成する。
Attributes -> Optimization Constraints -> Design Constraints
Max Area を 0.00 として、Apply
Tool -> Design Optimization
デフォルトの設定でOK
これで、回路が合成される。
7) クリティカルパス(最大遅延パス)をハイライトする。
Analysis -> Highlight -> Critical Path
8) 合成された回路の、面積、クリテイカルパスの遅延時間とその経路を調べる。
Analysis -> Report
Timing, Reference, Areaをチェックして、Apply
リストより、
Combinational Area:
Total Cell Area:
クリティカルパス遅延:(data arrival time)
Start point:
End point:を調べる。
9) 再度、VHDLファイルを読み込む。
File -> Read
comb.vhd を選択し、OKをクリック。
10)速度最小で合成する。
COMBをダブルクリックして下位のレベルに移動する。
Attributes -> Optimization Constraints -> Design Constraints
Max Area の設定を消し、Apply
回路図上の出力ピンをクリックして選択する。
Attributes -> Optimization Constraints -> Timing Constraints
Maximum Delay の Rise Fall ともに 0.00 とし、Apply
Tool -> Design Optimization
デフォルトの設定でOK
これで、回路が合成される。
10) 7−8)を繰り返す。
今回の場合、回路が簡単で、上記2種類の合成結果が同じになることを確かめる。
inputs | outputs | ||||||||
En | A2 | A1 | A0 | Y5 | Y4 | Y3 | Y2 | Y1 | Y0 |
0 | X | X | X | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
1 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 |
1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
% cp /home/teacher/wada/public_html/cad00/work2/3_6dec.vhd .
% cp /home/teacher/wada/public_html/cad00/work2/test_3_6dec.vhd .
でファイルをコピーできる。
1) デザインアナライザーを起動する。
% design_analyzer &
デザインアナライザのウインドウが開く。このメニューを使って、回路を合成する。
2) ライブラリを確認する。
Setup -> Defaultsでターゲットライブラリがclass.dbであることを確認する。
3) VHDLファイルを読み込む。
File -> Read
3_6_dec.vhd を選択し、OKをクリック。
4) 入出力ピンを確認する。
ウインドウ中央の DECODER3_6 をクリックし、左の下向き矢印ボタンを押す。
(もしくは、DECODER3_6 をダブルクリックする。)
5) 合成前の回路を確認する。
回路シンボルをダブルクリックしてさらに下位レベルへ移動する。
(もしくは、左のANDのボタンを押す。)
6) 面積最小で回路を合成する。
Attributes -> Optimization Constraints -> Design Constraints
Max Area を 0.00 として、Apply
Tool -> Design Optimization
デフォルトの設定でOK
これで、回路が合成される。
7) クリティカルパス(最大遅延パス)をハイライトする。
Analysis -> Highlight -> Critical Path
8) 合成された回路図をプリントする。
File -> Plot
File 出力をチェックし、適当なポストスクリプトファイル名を入力し、OK
後は、ftp等でポストスクリプトプリンタへ送れば、プリントできる。
9) 合成された回路の、面積、クリテイカルパスの遅延時間とその経路を調べる。
Analysis -> Report
Timing, Reference, Areaをチェックして、Apply
リストより、
Combinational Area:
Total Cell Area:
クリティカルパス遅延:
Start point:
End point:を調べる。
10) 速度最小で合成する。
Attributes -> Optimization Constraints -> Design Constraints
Max Area の設定を消し、Apply
回路図上の出力ピンをクリックして選択する。
Attributes -> Optimization Constraints -> Timing Constraints
Maximum Delay の Rise Fall ともに 0.00 とし、Apply
Tool -> Design Optimization
デフォルトの設定でOK
これで、回路が合成される。
11) 7−9)を繰り返す。
下記の内容を含むレポートを提出する。