近藤/春のプロジェクト/第9回
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[近藤/春のプロジェクト]]
*バスと命令フェッチ回路 [#i709a650]
**keyword [#n69e256e]
-バス
--各回路がデータを交換するために使う共通の経路。~
メリット
---信号線の数を削減することができる。
---設計が用意になる。
-連結演算子
--複数のビット列を連結して一つのビット列とする場合に用いる。
--{}を用いることでビット操作を楽に行える。
**バスの設計 [#z6760bdc]
バスをVerilog HDLで設計する場合、どのデータをバスへ書き込むかを制御する必要がある。~
記述法
--マルチプレクサを用いる。
reg [15:0] sbus;
always @(a or b or c or asel or csel)
if(asel) sbus = a;
else if(bsel) sbus = b;
else if(csel) sbus = c;
else sbus = 16'hxxxx;
--3ステート・マシンを用いる。
wire[15:0] sbus;
assign sbus = (asel ? a : 16'hzzzz);
assign sbus = (bsel ? b : 16'hzzzz);
assign sbus = (csel ? c : 16'hzzzz);
---1bitの制御線: asel,bsel,csel
---A,B,Cの出力(16bit): a, b, c
**命令フェッチ回路の動作 [#k7e61e46]
|>|CENTER:命令レジスタir0| 動作 |
|上位8ビット|下位8ビット | ~ |
| 0 | 0 | IDLEに遷移 |
| A(!=0) | 0 |A番地を読み出し、obuf0に出力|
| A | B(!=0) |A番地にBを書き込み |
終了行:
[[近藤/春のプロジェクト]]
*バスと命令フェッチ回路 [#i709a650]
**keyword [#n69e256e]
-バス
--各回路がデータを交換するために使う共通の経路。~
メリット
---信号線の数を削減することができる。
---設計が用意になる。
-連結演算子
--複数のビット列を連結して一つのビット列とする場合に用いる。
--{}を用いることでビット操作を楽に行える。
**バスの設計 [#z6760bdc]
バスをVerilog HDLで設計する場合、どのデータをバスへ書き込むかを制御する必要がある。~
記述法
--マルチプレクサを用いる。
reg [15:0] sbus;
always @(a or b or c or asel or csel)
if(asel) sbus = a;
else if(bsel) sbus = b;
else if(csel) sbus = c;
else sbus = 16'hxxxx;
--3ステート・マシンを用いる。
wire[15:0] sbus;
assign sbus = (asel ? a : 16'hzzzz);
assign sbus = (bsel ? b : 16'hzzzz);
assign sbus = (csel ? c : 16'hzzzz);
---1bitの制御線: asel,bsel,csel
---A,B,Cの出力(16bit): a, b, c
**命令フェッチ回路の動作 [#k7e61e46]
|>|CENTER:命令レジスタir0| 動作 |
|上位8ビット|下位8ビット | ~ |
| 0 | 0 | IDLEに遷移 |
| A(!=0) | 0 |A番地を読み出し、obuf0に出力|
| A | B(!=0) |A番地にBを書き込み |
ページ名: