仁木/春のプロジェクト2009/第5回
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[仁木/春のプロジェクト2009]]
*第5回 ステートマシンの設計 [#r19773a3]
**1 CPUの基本動作 [#cf555aa5]
-基本的なCPUの動作は?
--命令フェッチ
メモリに格納されてる機械語を取り出す。
--命令実行
取り出した機械語命令を実行
-状態遷移図とは?
状態遷移規則を矢印で表したもの。
-ステートマシンとは?
--命令フェッチと実行、待機などの状態を出力する。
&ref(pro1.jpg);
**ステートマシンの設計 [#td3e71a2]
-入力は5入力(clk,reset,run,cont,halt)
-出力は1つ(cs)
-状態はいくつか?
Idle(待機)-FETCHA(フェッチ1)-FETCHB(フェッチ2)-EXECA(命令実行1)-EXECB(命令実行2)の5つ。
-流れ
Idle(待機)-FETCHA(フェッチ1)-FETCHB(フェッチ2)-EXECA(命令実行1)-EXECB(命令実行2)
フェッチ、命令実行ともに2サイクル必要。(命令完了できなかったときの延長の為など
-主な動作
--resetが0になると非同期でIdle(待機)に遷移
--Idleのときrunが1ならばFETCHA(命令フェッチ1)に遷移
--EXECAのときhaltが1ならIdleに遷移(CPU動作終了)
--EXECAのときcontが1なEXECBに遷移(命令が終わりきらなかった時用
--EXECBに遷移した後、FETCHAに戻る。
&ref(pro2.jpg);
**3 ステートマシンのverilog記述 [#uc884206]
-状態を保持するレジスタは何ビット必要か?
状態は5つなので3bit必要。1bitで2つの状態、2bitで4つ、3bitで8つまで状態を表せる。
-記述方法を知る
--define
以前の回を参照
--case
上に同じ
**4 シミュレーションして動作確認 [#jd358ad6]
検証済み。問題なし
終了行:
[[仁木/春のプロジェクト2009]]
*第5回 ステートマシンの設計 [#r19773a3]
**1 CPUの基本動作 [#cf555aa5]
-基本的なCPUの動作は?
--命令フェッチ
メモリに格納されてる機械語を取り出す。
--命令実行
取り出した機械語命令を実行
-状態遷移図とは?
状態遷移規則を矢印で表したもの。
-ステートマシンとは?
--命令フェッチと実行、待機などの状態を出力する。
&ref(pro1.jpg);
**ステートマシンの設計 [#td3e71a2]
-入力は5入力(clk,reset,run,cont,halt)
-出力は1つ(cs)
-状態はいくつか?
Idle(待機)-FETCHA(フェッチ1)-FETCHB(フェッチ2)-EXECA(命令実行1)-EXECB(命令実行2)の5つ。
-流れ
Idle(待機)-FETCHA(フェッチ1)-FETCHB(フェッチ2)-EXECA(命令実行1)-EXECB(命令実行2)
フェッチ、命令実行ともに2サイクル必要。(命令完了できなかったときの延長の為など
-主な動作
--resetが0になると非同期でIdle(待機)に遷移
--Idleのときrunが1ならばFETCHA(命令フェッチ1)に遷移
--EXECAのときhaltが1ならIdleに遷移(CPU動作終了)
--EXECAのときcontが1なEXECBに遷移(命令が終わりきらなかった時用
--EXECBに遷移した後、FETCHAに戻る。
&ref(pro2.jpg);
**3 ステートマシンのverilog記述 [#uc884206]
-状態を保持するレジスタは何ビット必要か?
状態は5つなので3bit必要。1bitで2つの状態、2bitで4つ、3bitで8つまで状態を表せる。
-記述方法を知る
--define
以前の回を参照
--case
上に同じ
**4 シミュレーションして動作確認 [#jd358ad6]
検証済み。問題なし
ページ名: