2015CPU構築設計第2章
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2015 CPU構築設計]]
*概要 [#yfa136ad]
-組み合わせ回路について
--第1回(6/17)加算機まで
--第2回(6/24)ALUを改良する形でfuncを利用
*演習 [#fa4ec461]
**環境構築 [#p8099769]
+演習ファイルをDLする [[第2章演習ファイル>http://aslweb.u-aizu.ac.jp/aslint/index.php?plugin=attach&pcmd=open&file=EX2.zip&refer=Mitsuhiro%20Nakamura]]
+DLしたzipを解凍し、C:\Users\ユーザー名\cyg_froot\home\にコピーする
+LiveCygwin20150210のstartup.batを実行する
+OKを押す
+コピーしたEX2に移動する
**NSLコンパイル、回路合成、シミュレーション、波形 [#l1953f6a]
-NSLコンパイル
nsl2vl ファイル名.nsl -verisim2 -target トップ名
-回路合成
iverilog -o ファイル名.vvp ファイル名.v
-シミュレーション
vvp ファイル名.vvp
-波形表示
gtkwave トップ名.vcd
-簡単化のためMakefileを用意した~
ただしファイル名によっては上手く機能しないので、そのときはMakefileを修正するか上の方法で実行して下さい
make TARGET=ファイル名
でシミュレーションまでを行う
make TARGET=ファイル名 wave
で波形表示まで行う
*会得したNSL構文 [#je2a666a]
+declare,module
declare 回路名{
input 入力端子名[bit幅];
output 出力端子名[bit幅];
fucn_in 入力制御端子名(引数1、引数2、…):返り値;
fucn_out 出力制御端子名(引数1、引数2、…):返り値;
}
module 回路名{
動作
}
+any(条件分岐に使用)
any{
条件1:動作1;
条件2:動作2;
…
条件n:動作n;
}
+func_in(子モジュールを起動するときなどに使用)~
func_out(結果を知ったり、タイミングを合わせるときなどに使用)
module 回路名{
func 端子名{
端子が呼ばれているときの動作
}
}
*課題 [#b62b3e42]
+多機能ALU設計~
以下のNSLチュートリアルの9ページと6ページを参考に多機能のALUを設計し、シミュレーションをしてください。~
[[NSLチュートリアル>http://nshimizu.com/parthenon/NSLTUTORIAL.pdf]]
終了行:
[[2015 CPU構築設計]]
*概要 [#yfa136ad]
-組み合わせ回路について
--第1回(6/17)加算機まで
--第2回(6/24)ALUを改良する形でfuncを利用
*演習 [#fa4ec461]
**環境構築 [#p8099769]
+演習ファイルをDLする [[第2章演習ファイル>http://aslweb.u-aizu.ac.jp/aslint/index.php?plugin=attach&pcmd=open&file=EX2.zip&refer=Mitsuhiro%20Nakamura]]
+DLしたzipを解凍し、C:\Users\ユーザー名\cyg_froot\home\にコピーする
+LiveCygwin20150210のstartup.batを実行する
+OKを押す
+コピーしたEX2に移動する
**NSLコンパイル、回路合成、シミュレーション、波形 [#l1953f6a]
-NSLコンパイル
nsl2vl ファイル名.nsl -verisim2 -target トップ名
-回路合成
iverilog -o ファイル名.vvp ファイル名.v
-シミュレーション
vvp ファイル名.vvp
-波形表示
gtkwave トップ名.vcd
-簡単化のためMakefileを用意した~
ただしファイル名によっては上手く機能しないので、そのときはMakefileを修正するか上の方法で実行して下さい
make TARGET=ファイル名
でシミュレーションまでを行う
make TARGET=ファイル名 wave
で波形表示まで行う
*会得したNSL構文 [#je2a666a]
+declare,module
declare 回路名{
input 入力端子名[bit幅];
output 出力端子名[bit幅];
fucn_in 入力制御端子名(引数1、引数2、…):返り値;
fucn_out 出力制御端子名(引数1、引数2、…):返り値;
}
module 回路名{
動作
}
+any(条件分岐に使用)
any{
条件1:動作1;
条件2:動作2;
…
条件n:動作n;
}
+func_in(子モジュールを起動するときなどに使用)~
func_out(結果を知ったり、タイミングを合わせるときなどに使用)
module 回路名{
func 端子名{
端子が呼ばれているときの動作
}
}
*課題 [#b62b3e42]
+多機能ALU設計~
以下のNSLチュートリアルの9ページと6ページを参考に多機能のALUを設計し、シミュレーションをしてください。~
[[NSLチュートリアル>http://nshimizu.com/parthenon/NSLTUTORIAL.pdf]]
ページ名: