命令デコーダとシーケンサのシミュレーション結果のサンプル
先に示したサンプルテストベクタを用いたシミュレーション結果を以下に示します。
- 時間0〜2500までは初期状態であり、プロセッサがホルト状態にあ
ることを示しています("H0"状態)。
- 時間2500〜5500までは、リセットが入力されています。ステー
トマシンは "H1" 状態です。
- 時間6000において、"MREQ" が "1" になっています、ここからがベ
クトルスタートであり、"V1" 状態を意味します。
- 時間8000において、命令フェッチが開始します。"F1" 状態を意味します。
- 時間10000〜11000は "F3"状態です。このとき命令レジスタに
書き込まれた値が、次に実行すべき命令を意味します。ここでは、"0000"
でり "ld 000" を意味します。
- 時間11000〜14000は LD 直接命令の "E1 〜 E3"状態にあたり
ます。制御信号が正しく動作していることが確認できますね。
- 時間14000から、次の命令の命令フェッチが始まります。
- 時間19000は、LD 直接命令の状態が "E2" から "E3" に変化する所
です。しかしながら、メモリアクノリッジ信号が "0" であるために、もう一
度 "E2" 状態を繰り返していることが判ります。次のサイクルでは、メモリア
クノリッジが "1" になっているため、"E3" 状態へ遷移していますね。
- 時間21000から再び命令フェッチが始まります。命令レジスタの値
が"1000"に変化したように見せかけているため、時間24000からは
ST 直接命令の "E1" 状態となります。
- ストア直接命令は "E1〜E4" の4サイクルで終了しますが、ここでは5サ
イクルかかっています。これは、時間27000において、メモリアクノリッ
ジが "0" であるため、状態 "E3" が再び繰り返されたためです。
では、LD直接や ST直接以外の命令についても、制御信号が正しく生成されて
いるか、確認して見ましょう。また、命令の実行途中でもリセットが入力され
たら、"H1" 状態へ変化し、リセット解除後再びベクトルスタートから再実行
するどうかなどについても確認しましょう。
| Back |
CAD Home |
Our mail address is
kite@arch.cs.kumamoto-u.ac.jp .
Last modified on