仁木/春のプロジェクト2009/第3回
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[仁木/春のプロジェクト2009]]
*第3回 マルチプレクサと算術論理演算回路 [#b20076e9]
*3入力マルチプレクサ [#vf7e24b8]
-マルチプレクサとは?
1bitの入力ポートa,b,cと2bitの入力ポートf,1bitの出力ポートsを持ち、入力fは選択入力として機能。
ex.f=00-a,01-b,10-c,11-don't care
-case文の使い方
case(f) //fは引数
2'b00: s=a; //fが00のときsにaを代入
2'b01: s=b;
2'b10: s=c;
default: s=1'bx; //00,01,10以外の値をとったとき実行。xは不定値であることを示す
-default文はなぜ必要か?
省略するとfが11のときsのあたいは変更されないことになり、保持の形になるので
設計ツールが意図しない非同期ラッチを生成してしまう為。
*2. 算術論理演算回路(ALU)の設計 [#s91b8aeb]
-define文の使い方
ex.
`define ADD 5'b00000 //5'b00000 をADDに置き換え。
ただし使うときは`ADDのように「`」を忘れないこと。
-Verilogの数値表現
基数の指定はbで2進数、o-8,d-10,h-16を表す。またbit数も指定でき、指定しなければ32bitとなる。
ex.
5'b00001は5bitの2進数で00001という事
数表記部分の特殊文字としてxは不定値、zはハイインピーダンスを表す。
-大小比較
-なぜxとyに16'h8000を加算しているのか?
VerilogHDLのビット列は符号なし2進数表現として扱われるため、大小比較ではエラーが出る。(通常演算では支障は無い。以前の回参照)
そのために16'h8000を加算することで非負整数に変換する。よって符号なし2進数とみなすことができる。
つまり、大小比較のときは必ず16'h8000を加算しておく必要がある
*テストベンチ [#t9b2a8e1]
-確認済み。問題なし
終了行:
[[仁木/春のプロジェクト2009]]
*第3回 マルチプレクサと算術論理演算回路 [#b20076e9]
*3入力マルチプレクサ [#vf7e24b8]
-マルチプレクサとは?
1bitの入力ポートa,b,cと2bitの入力ポートf,1bitの出力ポートsを持ち、入力fは選択入力として機能。
ex.f=00-a,01-b,10-c,11-don't care
-case文の使い方
case(f) //fは引数
2'b00: s=a; //fが00のときsにaを代入
2'b01: s=b;
2'b10: s=c;
default: s=1'bx; //00,01,10以外の値をとったとき実行。xは不定値であることを示す
-default文はなぜ必要か?
省略するとfが11のときsのあたいは変更されないことになり、保持の形になるので
設計ツールが意図しない非同期ラッチを生成してしまう為。
*2. 算術論理演算回路(ALU)の設計 [#s91b8aeb]
-define文の使い方
ex.
`define ADD 5'b00000 //5'b00000 をADDに置き換え。
ただし使うときは`ADDのように「`」を忘れないこと。
-Verilogの数値表現
基数の指定はbで2進数、o-8,d-10,h-16を表す。またbit数も指定でき、指定しなければ32bitとなる。
ex.
5'b00001は5bitの2進数で00001という事
数表記部分の特殊文字としてxは不定値、zはハイインピーダンスを表す。
-大小比較
-なぜxとyに16'h8000を加算しているのか?
VerilogHDLのビット列は符号なし2進数表現として扱われるため、大小比較ではエラーが出る。(通常演算では支障は無い。以前の回参照)
そのために16'h8000を加算することで非負整数に変換する。よって符号なし2進数とみなすことができる。
つまり、大小比較のときは必ず16'h8000を加算しておく必要がある
*テストベンチ [#t9b2a8e1]
-確認済み。問題なし
ページ名: