佐藤(俊)/春プロ第2回
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[佐藤(俊)/春のプロジェクト]]
*4ビット加算器の設計 [#cf659c59]
**レジスタ宣言 [#c0e1c490]
reg s, cout;
s, coutがレジスタ型変数であることを宣言。
ただし、レジスタになるとは限らず、レジスタにも信号線にもなり得る。
全加算器の場合、s,coutは信号線。
**always文とassign文 [#oeca3ed0]
always文の中で用いられる代入文の左辺は、レジスタ宣言で宣言されたレジスタ型変数
でなければならない。
assign文の中で用いられる代入文の左辺は、ネット宣言で宣言されたネット型
変数でなければならない。
**モジュール呼び出し [#nb9dabcb]
既に設計したモジュールを利用することができる。
***第一回で設計したfaを用いる場合 [#p07fe9ef]
モジュールfaをf0にインスタンス化
fa fa0(.a(a[0]), .b(b[0]), .cin(0), .s(s[0]), .cout(c[0]));
.定義側ポート名(接続信号)とする。
fa fa0(a[0], b[0], 0, s[0], c[0]);
と書くこともできるがポートリストの順序に合わせなければならない。
**算術演算子 [#ca291211]
算術演算子を用いることにより4ビット加算回路を簡単に設計することができる。
ポート宣言、assign文を以下のようにできる。
input [3:0] a, b;
output [3:0] s;
assign s = a + b; //算術演算子を用いてaとbの和を表現
終了行:
[[佐藤(俊)/春のプロジェクト]]
*4ビット加算器の設計 [#cf659c59]
**レジスタ宣言 [#c0e1c490]
reg s, cout;
s, coutがレジスタ型変数であることを宣言。
ただし、レジスタになるとは限らず、レジスタにも信号線にもなり得る。
全加算器の場合、s,coutは信号線。
**always文とassign文 [#oeca3ed0]
always文の中で用いられる代入文の左辺は、レジスタ宣言で宣言されたレジスタ型変数
でなければならない。
assign文の中で用いられる代入文の左辺は、ネット宣言で宣言されたネット型
変数でなければならない。
**モジュール呼び出し [#nb9dabcb]
既に設計したモジュールを利用することができる。
***第一回で設計したfaを用いる場合 [#p07fe9ef]
モジュールfaをf0にインスタンス化
fa fa0(.a(a[0]), .b(b[0]), .cin(0), .s(s[0]), .cout(c[0]));
.定義側ポート名(接続信号)とする。
fa fa0(a[0], b[0], 0, s[0], c[0]);
と書くこともできるがポートリストの順序に合わせなければならない。
**算術演算子 [#ca291211]
算術演算子を用いることにより4ビット加算回路を簡単に設計することができる。
ポート宣言、assign文を以下のようにできる。
input [3:0] a, b;
output [3:0] s;
assign s = a + b; //算術演算子を用いてaとbの和を表現
ページ名: