SFL演習問題/第2回
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[SFL演習問題]]
*加減算器への拡張[#g1849add]
4ビット加算器を拡張して4ビット加減算器を作成する。
----
#contents
**ダウンロード [#xe32b6c9]
&ref(ex02.tar.gz);
**目的 [#ncff86f2]
-any構文を使う。減算の仕組みを理解する
**仕様 [#kf8bfbdf]
-ファイル名はaddsub4.sflとする。
declare fadder {
/* 内容を記述 */
}
module addsub4 {
input ina<4>; /* データ入力 a */
input inb<4>; /* データ入力 b */
input sub; /* 加算減算のセレクタ (1:減算, 0:加算) */
output s<4>; /* 出力結果 */
instrin do; /* 制御端子 */
/* 以下に内容を記述 */
}
module fadder {
/* 内容を記述 */
}
**手順 [#j38eaf33]
+加算と減算を選択するセレクタを入力端子として記述する。
--ここではセレクタの入力をsubとして0のとき加算。1のとき減算とする。
+any構文と内部端子(sel)を利用してマルチプレクサを作成して減算のときには一方の入力をビット反転したものにする。
+セレクタsubを最下位ビットのキャリーインに接続する。
+制御端子doが起動したとき(1になったとき)inaとinbを演算した結果をsに出力する。
**シミュレーション [#q03dd543]
-seconds用シミュレーションスクリプト(addsub4.sim)
--このスクリプトは上記の仕様を満たすモジュール用に作成されてます。
-Makefileとaddsub4.sflとaddsub4.simを同じディレクトリに置いたことを確認し、そのディレクトリで
% make sim
-回路が正しければ以下のような出力を得ます。
(中略)
!! local stack 0% used, global stack 0% used, trail stack 0% used !!
sub:1 ina:0101 inb:0011 s:0010
sub:0 ina:0101 inb:0011 s:1000
sub:0 ina:1001 inb:0110 s:1111
sub:1 ina:1001 inb:0110 s:0011
-sがsubが1のとき減算、subが0のとき加算であることを確認してください。
-各信号(ina, inb, sub)の値は自由に変えることが出来ます。スクリプトファイルを参照してください。
**設計例 [#sa88350d]
&ref(ex02_answer.tar.gz);
終了行:
[[SFL演習問題]]
*加減算器への拡張[#g1849add]
4ビット加算器を拡張して4ビット加減算器を作成する。
----
#contents
**ダウンロード [#xe32b6c9]
&ref(ex02.tar.gz);
**目的 [#ncff86f2]
-any構文を使う。減算の仕組みを理解する
**仕様 [#kf8bfbdf]
-ファイル名はaddsub4.sflとする。
declare fadder {
/* 内容を記述 */
}
module addsub4 {
input ina<4>; /* データ入力 a */
input inb<4>; /* データ入力 b */
input sub; /* 加算減算のセレクタ (1:減算, 0:加算) */
output s<4>; /* 出力結果 */
instrin do; /* 制御端子 */
/* 以下に内容を記述 */
}
module fadder {
/* 内容を記述 */
}
**手順 [#j38eaf33]
+加算と減算を選択するセレクタを入力端子として記述する。
--ここではセレクタの入力をsubとして0のとき加算。1のとき減算とする。
+any構文と内部端子(sel)を利用してマルチプレクサを作成して減算のときには一方の入力をビット反転したものにする。
+セレクタsubを最下位ビットのキャリーインに接続する。
+制御端子doが起動したとき(1になったとき)inaとinbを演算した結果をsに出力する。
**シミュレーション [#q03dd543]
-seconds用シミュレーションスクリプト(addsub4.sim)
--このスクリプトは上記の仕様を満たすモジュール用に作成されてます。
-Makefileとaddsub4.sflとaddsub4.simを同じディレクトリに置いたことを確認し、そのディレクトリで
% make sim
-回路が正しければ以下のような出力を得ます。
(中略)
!! local stack 0% used, global stack 0% used, trail stack 0% used !!
sub:1 ina:0101 inb:0011 s:0010
sub:0 ina:0101 inb:0011 s:1000
sub:0 ina:1001 inb:0110 s:1111
sub:1 ina:1001 inb:0110 s:0011
-sがsubが1のとき減算、subが0のとき加算であることを確認してください。
-各信号(ina, inb, sub)の値は自由に変えることが出来ます。スクリプトファイルを参照してください。
**設計例 [#sa88350d]
&ref(ex02_answer.tar.gz);
ページ名: