初回講義スライド

初めに・・・
寝てしまう前に・・・
実験ホームページ
計算機科学実験及演習 3A
SIMPLEアーキテクチャ
のプロセッサの実装
http://www.kuis.kyoto-u.ac.jp/ecs/isle/
実験を進めるのに必要な資料があります
教官/TA等の連絡先もあります
京都大学 工学部情報学科 計算機科学コース
計算機科学実験及演習3
HW 担当グループ
2015/04
2
座学の概要
座学の概要
1.
2.
3.
4.
1.
2.
3.
4.
ハードウェア実験
SIMPLEアーキテクチャ
PowerMedusaボード
実験の進め方
3
ハードウェア実験
SIMPLEアーキテクチャ
PowerMedusaボード
実験の進め方
4
ハードウェア実験
ハードウェア実験
- 内容と目的 -
ソフト/ハード両方の知識を生かした最適化
内容
プロセッサの内部構造を意識したプログラムの最適化
プログラムを効率よく実行できるアーキテクチャ
マイクロプロセッサの方式設計、論理設計
FPGA上で応用プログラムを動作
ソフト/ハードを統合したシステム全体の設計
一昔前
目的
ハードウェア:デバイス技術で汎用プロセッサが高速化
ソフトウェア:汎用システム上での新しい情報処理技術を開発
プロセッサの動作原理を理解する
回路設計、最適化、動作テストの方法を知る
現在
クロック高速化の限界 ⇒ マルチコア、メニーコアへ
モバイル、組込みシステムの普及 ⇒ 専用プロセッサ、専用回路
ハードウェア設計環境の進展
• ソフトと同じように「コンパイル」
• 何をソフトで、何をハードで実現するか選択
参考書
富田眞治、中島浩: コンピュータハードウェア
D.A.パターソン、J.L.ヘネシー著、成田光彰訳: コ
ンピュータの構成と設計(上),(下) 第3or4版
5
ハードウェア実験の概要
アセンブリ
add R1, R2, R3
ハード/ソフト両方の知識があるとこの業界では有利
京大計算機コースを出てたらハードもソフトもできて当然
6
SIMPLEの概要
Sixteen-bit Microprocessor for Laboratory Experiment
実験3ソフトウェアでは高級言語のコードを機
械語(ビット列)に変換するものを作る
C言語
a = b + c;
- コースでの位置付け -
簡単な命令セット
☺基本機能は1通り備えられている
機械語
01101010…
実験3ハードウェアでは機械語(ビット列)を解
釈して実行する論理回路(の塊)を作る
特徴
16bit固定長命令
8本の汎用レジスタ
16bit×64K語の主記憶
ロード/ストア・アーキテクチャ
2オペランド形式の命令セット(Rd op Rs -> Rd)
機械語
01101010…
基本的に、実験2ハードウェアの順序回路の延長
7
8
アーキテクチャの説明
主記憶とレジスタ
アーキテクチャ
コンピュータの状態を表すもの
1. 主記憶
コンピュータ全体の構成
16bit×64K語 (語アドレス方式)
プロセッサ、メモリ、I/Oなど
ただし、実験で使用するFPGAでは約5K語(旧)、33K語)
(新)が最大
主記憶とレジスタの構成ここに含む
2. 汎用レジスタ
命令セット・アーキテクチャ
16bit×8語
命令の構成
前述のロード/ストア・アーキテクチャは命令セット
の形式の1つ
3. プログラム・カウンタ (PC)
16bit
4. 条件コード
S サイン
Z ゼロ
C キャリー
V オーバーフロー
マイクロ・アーキテクチャ
アーキテクチャの回路レベルでの実装
9
命令セット
10
演算命令
コンピュータの状態を変えるもの
1. 演算命令
算術論理演算命令
r[Rd] = r[Rd] op3 r[Rs]
算術論理演算命令
シフト命令
シフト命令
r[Rd] = shift_op3(r[Rs], d)
2. ロード/ストア命令
3. 分岐命令
注:実行後に条件コードをセットする
無条件分岐命令
条件分岐命令
11
4. その他
15
入出力命令
停止命令
11
Rs
13
Rd
10
op3
7
d
3
0
12
ロード/ストア命令(1)
ロード/ストア命令(2)
ロード命令 (op1 : 00)
即値ロード命令
r[Ra] = *(r[Rb] + sign_ext(d))
r[Rb] = sign_ext(d)
即値ロード命令2つとシフト命令で任意の16bitの
値をレジスタ格納できる
ストア命令 (op1 : 01)
*(r[Rb] + sign_ext(d)) = r[Ra]
op1
15
Ra
13
Rb
10
10
d
7
15
0
001
13
Rb
10
d
7
0
13
分岐命令(1)
14
分岐命令(2)
無条件分岐命令(B: Branch)
条件分岐命令
PC = PC + 1 + sign_ext(d)
if (cond) PC = PC + 1 + sign_ext(d)
条件コードの値に従って分岐
10
15
110
13
条件コードは演算命令の実行時にセットされる
d
10
7
0
10
15
15
111
13
cond
10
d
7
0
16
その他の命令
基本的な実装 SIMPLE/B
停止命令(op3: 1111)
入力命令(op3: 1100)
次スライドに示すように演算器/レジスタ/データ・
パスを配置
5つのフェーズを逐次活性化: 実験2の順序回路と同じ
r[Rd] = input
P1
P2
P3
P4
P5
入力先はボード上のスイッチ
出力命令(op3: 1101)
output = r[Rs]
出力先はボードのLED/7SEG LED
命令フェッチ
命令デコード、レジスタ読み出し
演算
主記憶アクセス
レジスタ書き込み/PC更新
フェーズの活性化: 制御部が担当
11
15
Rs
13
Rd
10
op3
d
7
3
(フェーズへ入力されるデータを保持するレジスタを更新)
フェーズ内のセレクタを適切に切り替える
フェーズから出力されるデータを保持するレジスタを更新
0
17
PC
P1
100
100
実行のサンプルの命令
+
IR
レジスタ
00
11
P2
22
18
0 0 1 10 100
3 2 0 0 - 101
2 6 - -5 102
200
5
33
ロード命令: プログラム・カウンタ100
P3
P4
P5
+
データ・バス
データ・バス
BR
アドレス・バス
アドレス・バス
15
AR
1000
210
MDR
19
10
d
(00001010)
7
ADD R0, R2
15
主記憶
13
0 0 1 10
0
加算命令: プログラム・カウンタ101
11
DR
略記
略記
LD R0, 10(R1)
Ra
Rb
00
(000) (001)
略記
略記
Rs
Rd
op3
(010) (000) (0000)
13
10
7
32 0 0 -
d
3
0
20
実行のサンプルの命令
PC
P1
+
略記
略記
P2
d
(11111011)
10
7
11
22
0 0 1 10 100
3 2 0 0 - 101
2 6 - -5 102
200
5
33
0
AR
BR
P3
+
P1
0 0 1 10
22
0 0 1 10 100
3 2 0 0 - 101
2 6 - -5 102
200
5
P4
P5
IR
00
11
P2
22
0 0 1 10 100
3 2 0 0 - 101
2 6 - -5 102
200
5
BR
+
データ・バス
データ・バス
10
アドレス・バス
アドレス・バス
33
200
P3
0 0 1 10
レジスタ
33
AR
100
100
+
IR
00
11
PC
P1
レジスタ
P2
22
100
100
+
210
主記憶
MDR
P5
1000
AR
210
P3
DR
P4
MDR
200
200
主記憶
23
P5
10
10
BR
+
DR
データ・バス
データ・バス
PC
1000
DR
P4
21
データ・バス
データ・バス
13
-5
アドレス・バス
アドレス・バス
15
op2
(110)
26 -
IR
00
アドレス・バス
アドレス・バス
10
0 0 1 10
レジスタ
無条件分岐命令: プログラム・カウンタ102
B -5
100
100
1000
210
210
MDR
主記憶
24
P1
+
0 0 1 10
レジスタ
P2
10
10
P3
P4
BR
+
データ・バス
データ・バス
200
200
AR
1000
AR
210
1000
25
実行のサンプルの命令
DR
13
10
7
PC
15
レジスタ
00
1000
11
200
22
5
略記
略記
10
7
32 0 0 -
IR
0 0 1 10 100
3 2 0 0 - 101
2 6 - -5 102
33
0
Rs
Rd
op3
(010) (000) (0000)
13
101
101
+
P2
加算命令: プログラム・カウンタ101
ADD R0, R2
210
26
0 0 1 10
d
(00001010)
1000
主記憶
MDR
P1
略記
略記
BR
210
P5
ロード命令: プログラム・カウンタ100
LD R0, 10(R1)
Ra
Rb
00
(000) (001)
10
10
1000
主記憶
MDR
11
0 0 1 10 100
3 2 0 0 - 101
2 6 - -5 102
+
P4
P5
200
200
P3
210
DR
15
IR
33
アドレス・バス
アドレス・バス
33
0 0 1 10
データ・バス
データ・バス
22
レジスタ
00
1000
11
200
22
5
AR
32 0 0 -
P3
d
3
BR
P4
0
27
P5
+
データ・バス
データ・バス
P2
0 0 1 10 100
3 2 0 0 - 101
2 6 - -5 102
200
5
101
100
100
101
+
IR
00
11
PC
アドレス・バス
アドレス・バス
P1
100
100
アドレス・バス
アドレス・バス
PC
1000
210
DR
MDR
主記憶
28
P1
+
レジスタ
00
1000
11
200
22
5
32 0 0 -
+
IR
0 0 1 10 100
3 2 0 0 - 101
2 6 - -5 102
レジスタ
00
1000
11
200
22
5
P2
BR
+
1000
主記憶
MDR
29
32 0 0 -
P4
P5
データ・バス
データ・バス
BR
アドレス・バス
アドレス・バス
5
+
DR
210
主記憶
PC
102
101
101
102
+
レジスタ
00
1000
1005
11
200
22
5
P2
32 0 0 -
IR
0 0 1 10 100
3 2 0 0 - 101
2 6 - -5 102
33
1000
P3
1000
30
IR
0 0 1 10 100
3 2 0 0 - 101
2 6 - -5 102
BR
MDR
P5
33
AR
5
1005
DR
P1
+
P2
0 0 1 10 100
3 2 0 0 - 101
2 6 - -5 102
+
101
101
レジスタ
00
1000
11
200
22
5
1000
P3
P4
P5
P1
AR
210
DR
PC
IR
データ・バス
データ・バス
5
データ・バス
データ・バス
1000
P3
P4
32 0 0 -
33
アドレス・バス
アドレス・バス
33
AR
101
101
1000
AR
210
P3
1005
P4
MDR
1000
主記憶
31
P5
5
BR
+
DR
データ・バス
データ・バス
P2
PC
アドレス・バス
アドレス・バス
P1
101
101
アドレス・バス
アドレス・バス
PC
1000
210
1005
MDR
主記憶
32
実行のサンプルの命令
PC
P1
+
略記
略記
P2
d
(11111011)
10
7
0 0 1 10 100
3 2 0 0 - 101
2 6 - -5 102
33
0
AR
BR
P3
+
P1
PC
P1
レジスタ
00
1005
11
200
22
5
P2
34
102
102
+
26 -
-5
レジスタ
00
1005
11
200
22
5
P2
BR
P5
+
データ・バス
データ・バス
AR
P4
26 -
-5
IR
0 0 1 10 100
3 2 0 0 - 101
2 6 - -5 102
33
アドレス・バス
アドレス・バス
33
P3
102
102
+
IR
0 0 1 10 100
3 2 0 0 - 101
2 6 - -5 102
210
主記憶
MDR
P5
1000
AR
210
P3
DR
P4
MDR
103
103
主記憶
35
P5
-5
BR
+
データ・バス
データ・バス
PC
1000
DR
P4
33
データ・バス
データ・バス
13
-5
アドレス・バス
アドレス・バス
15
op2
(110)
00
アドレス・バス
アドレス・バス
10
26 -
IR
レジスタ
1005
11
200
22
5
無条件分岐命令: プログラム・カウンタ102
B -5
102
102
1000
210
DR
MDR
主記憶
36
P1
+
レジスタ
00
1005
11
200
22
5
26 -
-5
+
IR
0 0 1 10 100
3 2 0 0 - 101
2 6 - -5 102
レジスタ
00
1005
11
200
22
5
P2
-5
BR
+
データ・バス
データ・バス
103
103
P3
1000
主記憶
MDR
37
P1
102
98
102
98
P2
26 -
-5
IR
0 0 1 10 100
3 2 0 0 - 101
2 6 - -5 102
P3
P4
P5
-5
BR
+
DR
データ・バス
データ・バス
103
103
アドレス・バス
アドレス・バス
33
AR
-5
IR
0 0 1 10 100
3 2 0 0 - 101
2 6 - -5 102
P5
-5
BR
+
DR
1000
210
98
98
MDR
主記憶
38
制御部について
+
レジスタ
00
1005
11
200
22
5
103
103
P3
P4
P5
PC
AR
210
98
98
DR
P4
26 -
33
アドレス・バス
アドレス・バス
33
AR
102
102
1000
210
フェーズ・カウンタでフェーズを数える
フェーズと命令レジスタの内容により、必要な信号線をアサー
トする
reset信号による各部のリセット、exec信号による各部の動
作開始、等
とりあえず、フェーズを数えるフェーズ・カウンタ
があると楽なように設計してあります
各フェーズに対応した信号線をアサート
PC,AR,BR,DR等はフェーズの信号でアサート
98
98
MDR
各種レジスタの書き込み信号やセレクタの切り替え
は何がやっている? -> 制御部がやっている
P1
P1
P2
P2
P3
P3
P4
P4
P5
P5
P2
PC
データ・バス
データ・バス
P1
102
102
アドレス・バス
アドレス・バス
PC
主記憶
39
40
制御信号の例:
MDRレジスタ書き込み信号
フェーズ・
フェーズ・
カウンタの出力
カウンタの出力
IRの出力
IRの出力
P1
P1
P2
P2
P3
P3
P4
P4
P5
P5
IR15
15
IR
IR14
14
IR
IR77
IR
IR66
IR
IR55
IR
IR44
IR
IRの出力
IRの出力
P1
P1
P2
P2
P3
P3
P4
P4
P5
P5
IR15
15
IR
IR14
14
IR
IR77
IR
IR66
IR
IR55
IR
IR44
IR
フェーズ・
フェーズ・
カウンタの出力
カウンタの出力
MDRレジスタ
書き込み信号 (IN命令)
フェーズ信号を用いて
必要なときのみレジスタ更新
MDRレジスタの
MDRレジスタの
書き込み信号へ
書き込み信号へ
MDRレジスタの
MDRレジスタの
書き込み信号へ
書き込み信号へ
41
42
MDRレジスタ
書き込み信号(ロード命令)
制御部の作り方
フェーズ・
フェーズ・
カウンタの出力
IRの出力w
カウンタの出力 IRの出力w
P1
P1
P2
P2
P3
P3
P4
P4
P5
P5
IR15
15
IR
IR14
14
IR
IR77
IR
IR66
IR
IR55
IR
IR44
IR
作るのに最も苦労する所だと思います
作り方
1. 1つの制御信号に対し、IR(の一部)とフェーズに対
する真理値表を作る
2. 最小化や式変形で論理関数を求める
3. 全ての制御信号に対して1,2を行う
4. 実装する
MDRレジスタの
MDRレジスタの
書き込み信号へ
書き込み信号へ
43
注意: 制御部は小さくなるように工夫する
小さいほうがミスがまぎれこむ可能性が減る
レジスタ番号や演算の指定部は、制御部を通さず
に直接必要なところに導く
制御部はできるかぎり簡単になるように命令セットは作
られている
44
セレクタの切り替え信号の例
PC
P1
レジスタ・ファイル
ほとんどのセレクタ切り替え信号は組み合わ
せ回路になります
100
100
IR
00
11
P2
IRの値に応じて切り替え信号を生成すれば良い
22
0 0 1 10 100
3 2 0 0 - 101
200
5
AR
書き込み先はまた別の制御
BR
P3
P4
45
セレクタの選択信号の例:
レジスタ書き込み値選択信号
データ・バス
データ・バス
MDRの値を選択: IN命令、ロード命令
DRの値を選択: その他の命令
アドレス・バス
アドレス・バス
33
例:結果値選択信号
1000
210
DR
MDR
P5
主記憶
46
結果値選択信号: 組み合わせ論理
以下のor
IRの出力
IRの出力
11
15
Rs
13
Rd
10
IR15
15
IR
IR14
14
IR
IR77
IR
IR66
IR
IR55
IR
IR44
IR
命令がIN命令: IRの上位2bitが11かつop3が1100
op3
(1100)
d
7
3
0
命令がロード命令: IRの上位2bitが00
00
15
Ra
13
Rb
10
d
7
P5のセレクタの選択信号へ
P5のセレクタの選択信号へ
0
47
48
結果値選択信号:
組み合わせ論理(IN命令)
結果値選択信号:
組み合わせ論理(ロード命令)
IR15
15
IR
IR14
14
IR
IR77
IR
IR66
IR
IR55
IR
IR44
IR
IRの出力
IRの出力
IR15
15
IR
IR14
14
IR
IR77
IR
IR66
IR
IR55
IR
IR44
IR
IRの出力
IRの出力
P5のセレクタの選択信号へ
P5のセレクタの選択信号へ
P5のセレクタの選択信号へ
P5のセレクタの選択信号へ
49
論理設計の例 PC周辺
50
PC
P1
+
レジスタ
00
1000
1005
11
200
22
5
PCの動作
リセットで0に初期化
マルチプレクサで以下の更新値を切り替え
102
101
101
102
P2
PC+1
DR
32 0 0 -
IR
0 0 1 10 100
3 2 0 0 - 101
2 6 - -5 102
AR
1000
P3
P4
51
P5
5
BR
+
DR
データ・バス
データ・バス
切替条件は分岐命令&分岐が成立したか
P5で書き込み
アドレス・バス
アドレス・バス
33
1000
210
1005
MDR
主記憶
52
PC
P1
102
98
102
98
論理設計の例 PC周辺
+
26 -
レジスタ
00
1005
11
200
22
5
P2
-5
IR
0 0 1 10 100
3 2 0 0 - 101
2 6 - -5 102
加算器
アドレス・バス, p2
branch
33
+
マルチプレクサ
PC
•D-FF(フリップ・フロップ)で作成
•1bitのD-FFを16個並べる
1
-5
P3
BR
+
DR
P4
データ・バス
データ・バス
103
103
AR
アドレス・バス
アドレス・バス
S
0
1000
210
D Q
1
PC
98
98
CLR
P5
DR
主記憶
MDR
branch
+
PC周辺(p5, !branchの動作)
アドレス・バス, p2
加算器
branch
reset
1
•ボードからのリセット信号
•他にもフェーズ・カウンタ等をク
リア
S
p5
0
D Q
1
DR
reset
+
アドレス・バス, p2
reset
1
•ボードからのリセット信号
•他にもフェーズ・カウンタ等をク
リア
S
p5
101
D Q
1
branch
CLR
p5
101
マルチプレクサ
0
•フェーズ・カウンタのp5
PC
54
論理設計の例
論理設計の例 PC周辺
加算器
マルチプレクサ
•1bitマルチプレクサを16個並べ
る
reset
p5
53
マルチプレクサ
加算器
•1bit加算器を16個並べてキャリ
ーを繋ぐ
•別にCLAとかCSAとかでもOK
•フェーズ・カウンタのp5
101
100
branch
PC
•IRの上位2bitが10
•op2が100
•op2が111かつ条件分岐が
成立条件する条件を満たす
CLR
DR
55
p5
reset
•IRの上位2bitが10
•op2が100
•op2が111かつ条件分岐が
成立条件する条件を満たす
56
論理設計の例
改良
PC周辺(p5, branchの動作)
加算器
branch
+
マルチプレクサ
reset
1
•ボードからのリセット信号
•他にもフェーズ・カウンタ等をク
リア
S
0
命令セット・アーキテクチャの改良
アドレス・バス, p2
p5
98
D Q
1
CLR
p5
reset
フェーズの並列実行(パイプライン化)
branch
PC
98
マイクロ・アーキテクチャの改良
•フェーズ・カウンタのp5
102
98
DR
即値オペランドの強化
入出力命令の強化
割り込みのサポート
オリジナルの命令の追加
何らかの拡張を行って、拡張前と比較する
•IRの上位2bitが10
•op2が100
•op2が111かつ条件分岐が
成立条件する条件を満たす
プログラムの実行がどれだけ高速化したか?
追加で必要となったハードウェアは?
57
座学の概要
58
CADによる設計
Altera社のQuartus IIを使います
1. ハードウェア実験の意味
2. SIMPLEアーキテクチャ
3. PowerMedusaボード
CADによる設計
FPGAとは
PowerMedusaボードの概要
4. その他
59
60
CADによるハードウェア設計の
概要
CADの機能
設計
基本的にC言語によるプログラミングと同じ
基本はブロック・ダイヤグラム・エディタによる
設計
HDL(Hardware Description Language)も使
用可
ハードウェアを機能ごとにブロックに分割する
(=プログラムを機能ごとに関数に分割する)
ブロックへの入力/出力が煩雑にならないように分割
グループ内で合意をとること
一部のモジュールをHDLで設計、など
各ブロックの回路を組み、入出力を設定
必要があれば、シミュレータでテスト
検証
作成したブロックを組み合わせて新たなブロックを組む
最上位のブロックの入出力にFPGAのピンを割り当てる
論理シミュレーション
タイミング・シミュレーション
その他
…
メモリ・エディタなど
61
CADによるハードウェア設計の
概要
62
FPGAとは
FPGA (Field Programmable Gate Array)
プログラム可能な LSI の一種
簡単な論理回路を実現できる論理ブロックとそれを
つなぐ配線がつめこまれている
CADで作成した接続情報をダウンロードして任意の
論理回路を実現する
…
設計の例: 16bit桁上げ伝播加算器
AND/OR/XORゲートで半加算器を作る
半加算器とANDゲートで全加算器を作る
全加算器を16個ならべ、キャリーを繋げる
論理
論理
ブロック
ブロック
論理
論理
ブロック
ブロック
論理
論理
ブロック
ブロック
論理
論理
ブロック
ブロック
論理
論理
ブロック
ブロック
論理
論理
ブロック
ブロック
スライド説明の後に、実際にCADを使って回路を作るデモを
見せます
論理
論理
ブロック
ブロック
論理
論理
ブロック
ブロック
論理
論理
ブロック
ブロック
論理
論理
ブロック
ブロック
論理
論理
ブロック
ブロック
論理
論理
ブロック
ブロック
回路作成∼論理シミュレーション∼FPGAボードへのダウンロード
論理
論理
ブロック
ブロック
論理
論理
ブロック
ブロック
論理
論理
ブロック
ブロック
論理
論理
ブロック
ブロック
論理
論理
ブロック
ブロック
論理
論理
ブロック
ブロック
配線
63
64
FPGA内部での論理回路の実現
実験で使うFPGA
(旧ボード)Altera EP1C6Q240C8
FPGA内部での論理回路実現方法は様々
5980ロジック・エレメント
n入力ルックアップ・テーブル(LUT)
積項型
各LEは4入力LUTとレジスタで構成
92160bitのRAM
240ピンPQFPパッケージ
現在はLUTが主流
任意のn入力に対して任意の出力関数を設定可能
論理回路のLUTへの割り付けはコンパイラが行う
out
0
0
?
?
0
0
0
0
0
1
1 1 1 1
28848ロジック・エレメント
540672bitのRAM
66個の18x18マルチプライヤ
484ピンFBGAパッケージ
…
4入力
LUT
out
…
a
b
c
d
a b c d
(新ボード)Altera EP4C30F23I7N
?
65
PowerMedusaボード(MU200-EC6S)
66
PowerMedusaボード(MU200-EC6S)
トレーニング用FPGAボード
FPGA Altera社 Cyclone EP1C6Q240C8
メモリはFPGA内部にSRAMブロックで構成
I/O
入力
• テンキー 20個
• ロータリースイッチ 2個
出力
• LED 8個
• 7SEG LED 8個
• ブザー
その他
クロック発振器、クロックパルス発生スイッチ
リセットスイッチ
67
68
PowerMedusaボード(MU200-EC6S)
PowerMedusaボード(MU200-7SEG)
結果出力用ボード
8個の7SEG LED
が8セット
64個のLEDが1セッ
ト
一度に1セットの
み書き換え可能
書き換えない場合、
値はホールドされ
る
ブザー
クロック周波数切り替え用
クロック周波数切り替え用
ロータリースイッチ
ロータリースイッチ
FPGA
FPGA
EP1C6
EP1C6
7SEG
7SEG LED
LED
ロータリー
スイッチ
クロックパルス発生用
クロックパルス発生用
スイッチ
スイッチ
LED
LED
設計が込み入って
きたら使うと便利
テンキー
コンフィギュレーション用
コンフィギュレーション用
インタフェース
インタフェース
69
70
ボードの詳しい情報
PowerMedusaボード
(MU500-RX/RK/7SEG)
PowerMedusaボード(MU500
実験Web上のマニュアル参照(印刷したのも少
し用意あり)
FPGAの各ピンと入出力装置がどうつながっているか
ピンとLEDやブザーの間にはon/offスイッチがあります
各スイッチの諸元はどうなっているか
負論理のスイッチもあります
確かどこか間違ってたと思いますので注意
0,1,…7が1,2,…8になってたような気がします
71
72
座学の概要
1.
2.
3.
4.
提出課題(1/2)
ハードウェア実験の意味
SIMPLEアーキテクチャ
PowerMedusaボード
実験の進め方
初回レポート:
個人単位, 4/16(木) 17:00締切
1桁の16進数を7SEG LED上で0-Fで表示させる
組み合わせ論理回路、及び、カウンタ回路の設計
と実装
中間報告:
グループ単位
レポート: 5/7(木) 17:00締切
各種仕様書、考察等
設計データを別途提出
デモ: 5/8(金) 8:45–12:00
何らかの命令が動作している所を見せる
一部の命令だけでも動作できる実装で間に合わせるのも
あり
73
提出課題 (2/2)
最終報告:
74
課題とツールについて
HDLで設計してよいか
グループ単位
(最初の課題を除き) Verilog-HDL, VHDL 使用OK。
相方とよく打ち合わせること。
デモ: 5/28(木) 13:00-16:15
Megafunction (演算器等)を使ってよいか
設計したプロセッサの特徴の説明
「 SIMPLE/Bに比べてこんな点がすぐれているんで
すよ」というセールストークをして下さい
応用プログラムの実行
OK。ただし部品を呼び出して使っただけの部分は評価対象外なので、
他のところで工夫してそれなりにすごいものを作ること。
いずれの場合も、どう設計したか、何を使ったか、レポートに明
記すること。
単に動くだけではなく、スピード、回路規模、消費電力の最適化
を目指すこと。
レポート: 6/11(木) 17:00締切
最終成果物のユーザーズマニュアル
SIMPLE/B基本仕様からの拡張および性能評価
各コンポーネントの仕様書(最終版)、性能評価
考察、感想
設計データを別途提出
自宅で設計できる?
QuartusII Web Edition (ユーザ登録無料)を入れて使えます。
最新版は旧ボードのCycloneに対応していないので注意。
シミュレータはどこ?
75
QuartusII Ver.10からは別ツール(ModelSim)を使います。
76
コンテスト
実験ホームページ
http://www.kuis.kyoto-u.ac.jp/ecs/isle/ の実験及演
習3A
「俺のプロセッサはすごいぜ!」ということ
を証明したいあなたに…
データをソートする時間を競うコンテスト
カレンダー
大まかな作業内容
3回の報告の日程、報告内容
データ
16bitの符号付整数1024個
ランダム、昇順ソート済み、降順ソート済みの3種類
資料
時間の定義
完了までのクロック・サイクル数×クロック周波数
3種類のデータ各々の処理時間の平均値
ぜひ参加して、昨年度の記録を破って下さい。
(過去の記録と比較するなら旧ボードでの動作が必要。)
初回講義スライド、SIMPLE仕様書、Power Medusa取扱説明書、CADのチュートリアル
よくある質問とその答え(FAQ)
Altera社のQuartusIIの資料へのリンク
教員/TAの連絡先
77
78