h30年度 vlsi設計 final 課題 まず昨年度の課題説明...
TRANSCRIPT
H30年度 VLSI設計Final課題
まず昨年度の課題説明&宿題1
www.lsi-contest.com/
LSIコンテスト2019のニューラルネットワーク回路 の設計
1
フルーツの甘味・酸味から好き嫌いを予想する
ニューラルネットワークの構築
2
入力K1(甘味)、K2(酸味)から好き・嫌いを示すニューラルネットワークを作る。
3
例えば、パラメータを以下初期値にした場合
4
初期値パラメータでは
K1=8
K2=8
K1=8
K2=5
K1=5
K2=5
K1=5
K2=8
5
以下のようなオレンジが好きで、レモン・パイン・梨は嫌いな予測をしたい
甘味 酸味 教師データ
初期パラメータでの出力
6
10000回のバックプロパゲーションという学習にて、パラメータを更新した後
7
学習後のパラメータでは
K1=8
K2=8
K1=8
K2=5
K1=5
K2=5
K1=5
K2=8
8
学習後のパラメータではオレンジが好きで、レモン・パイン・梨は嫌いという予測ができる
甘味 酸味教師データ
学習後パラメータでの出力
学習アルゴリズム(バックプロパゲーション)はNeural Network and optimization of calculation_ver11.pdfを参照してください。 9
10
2017のVLSIデザイン最終課題で作った回路
1
3
5
8
PUSH_N, PUSH_Eボタンで2ビットを設定し、その2ビットで上記マルチプレクサを選択して、K1の値を選ぶ。その2ビットはLED_N, LED_Eの点灯で示す。
00
01
10
11
1
3
5
8
00
01
10
11
PUSH_W, PUSH_Sボタンで2ビットを設定し、その2ビットで上記マルチプレクサを選択して、K1の値を選ぶ。その2ビットはLED_W, LED_Sの点灯で示す。
K1
K2
X
X
X
W211
W212
W213
X
X
X
W221
W222
W223
+
+
+
B21
B22
B23
Z21
Z22
Z23
1+e-X
1
1+e-X
1
1+e-X
1 A21
A22
A23
X
X
W331
W332
X
X
W321
W322
X
X
W311
W312
+
B31
Z31
1+e-X
1A31
+
B32
Z32
1+e-X
1A32
1bitに四捨五入 OUTPUT(1)
1bitに四捨五入 OUTPUT(0)
11
W211
W212
W213
W221
W222
W223
B21
B22
B23
W331
W332
W321
W322
W311
W312
B31
B32
01
01
01
01
01
01
01
01
01
01
01
01
01
01
01
01
01
PUSH_Cボタンで1ビットを設定し、その1ビットで上記マルチプレクサを選択して、各パラメータの値を選ぶ。その1ビットはLED_C点灯で示す。
0.1
1.37900.3
0.77970.6
1.05090.4
1.37900.5
0.97800.1
0.6478
-1
-19.8802-1
-0.9089-1
-0.8988
0.7
7.11720.2
-7.10850.2
-1.31660.5
1,63981.3
0.08311.1
1.9725
-1
-2.5904-1
0.2074
12
1) 適当ですが、内部の信号は16ビットで、図の位置に小数点があるとします。
Msbは符号ビット、2の補数表現
すなわち、2^8=256倍すると小数点以下はなくなります。表現範囲は-128以上128未満で、最小単位は1/256です。
2) 16ビットの掛け算
16ビットと16ビットをかけると以下のように32ビットの結果がでます。しかし、ディジタル回路には小数点を示すものはありません。したがって、結果の32ビットの点線の部分を取り出すことで同じフォーマットにできます。
小数点はこの位置にくるべき
3) シグモイド関数の回路化
1+e-X
1
入力Xは-128以上128未満で、出力Yは最小0、最大1となる関数です。入力Xが-8未満では出力Yは0、入力Xが8以上では出力Yは1、入力Xが 8以上8未満で、ほぼ0からほぼ1に以下のように変化します。
1111 1000 000000001111 0111 11111111
1000 0000 00000000-128X=10進 X=2進数(2の補数表現)
-8-8-(1/256)
0 00000000 00000000
Y=10進 Y=2進数(2の補数表現)
8-(1/256)8
01111 1111 111111110-(1/256)0000 0000 00000000
0000 0111 111111110000 1000 00000000
ほぼ0
ほぼ1
0.5
0111 1111 11111111128-(1/256)1 00000001 00000000
00000000
00000000
00000000
11111111
すなわち、黄色の部分の対応をROMで実装し、全体が動くようにする。すなわち、入力Xの下位12ビットから、8ビットの
Home Work 2
• 2017コンテストのVHDL設計データの3段ニューラルネットワークを用いて、
• 学習前パラメータに対応するP6の赤枠の出力値と、
• 学習後パラメータに対応するP9の赤枠の出力値
• A31,A32をVHDLシミュレーションで求めて、
• 以下の内容を含むレポートを提出せよ1. 修正したテストベンチ
2. P6の値と、VHDLシミュレーションのA31、A32の比較表
3. P9の値と、VHDLシミュレーションのA31、A32の比較表
• 締め切り1月15日(火曜)WEBCLASSにPDFで提出13