VHDLによるアーキテクチャ学習支援ソフトの開発

VHDLによるアーキテクチャ
学習支援ソフトの開発
研究者名
サデック
指導教官
青山
義弘
モハメド
ハニフ
研究の背景
❐ CPUアーキテクチャは机上で考えるだ
けでは分かりにくい
研究の背景
❐ CPUアーキテクチャは机上で考えるだ
けでは分かりにくい
❐ VHDLツールを使用して理解を深める
ための教材開発


シミュレーション
論理合成 → 実装実験
VHDLとは
❐集積回路設計用ハードウェア記述言語
VHDLとは
❐集積回路設計用ハードウェア記述言語
ブール代数やゲートレベル設計
VHDLとは
❐集積回路設計用ハードウェア記述言語
ブール代数やゲートレベル設計
❐動作に注目した設計
VHDLでの回路設計過程
プログラム入力
シミュレーション
NO
Results OK?
YES
論理合成
NO
Results OK ?
YES
FPGAへの実装
教材としてVHDL
❐ 高級言語
解しやすい
記述から回路の動作が理
❐ 難しい論理式を考えず動作に注目
❐ 記述上の変数名を実際の素子や信号に合わせ
てやるとその動作や構成が直感的に分かる。
教材としてVHDL
❐ 高級言語
解しやすい
記述から回路の動作が理
❐ 難しい論理式を考えず動作に注目
❐ 記述上の変数名を実際の素子や信号に合わせ
てやるとその動作や構成が直感的に分かる
教材としてVHDL
❐ 高級言語
解しやすい
記述から回路の動作が理
❐ 難しい論理式を考えず動作に注目
❐ 記述上の変数名を実際の素子や信号に合わせ
てやるとその動作や構成が直感的に分かる
教材としてVHDL
❐ 高級言語
解しやすい
記述から回路の動作が理
❐ 難しい論理式を考えず動作に注目
❐ 記述上の変数名を実際の素子や信号に合わせ
てやるとその動作や構成が直感的に分かる
CPUアーキテクチャと動作
CPUアーキテクチャと動作
HTML
VHDLで設計した
CPUのシミュレーション
や論理合成
学生に分かりやすく説明
教材構成
前書き
FPGAとは
VHDLとは
VHDLの基礎
HOME
VHDLの応用例
演習問題
VHDLの演算子リスト
VHDLシミュレーション
とFPGAマニュアル
CPUアーキテクチャ学習
ヘルプ
ヘルプ
教材用回路作成
❐ VHDL学習用教材
❐ CPU設計とアーキテクチャ
学習用教材
各種論理回路と学習用CPU設計
教材用回路作成
❐ VHDL学習用教材
❐ CPU設計とアーキテクチャ
学習用教材
各種論理回路と学習用CPU設計
教材用回路作成
❐ VHDL学習用教材
❐ CPU設計とアーキテクチャ
学習用教材
各種論理回路と学習用CPU設計
教材用回路作成
❐ VHDL学習用教材
❐ CPU設計とアーキテクチャ
学習用教材
各種論理回路と学習用CPU設計
VHDL学習用教材
1.組み合わせ回路:
16ビット加減算器、4ビット比較器。
2.順序回路:
D二安定回路、プッシュボタン回路、
2ビット16進カウンタ。
3.VHDL応用例:
60進カウンタ、自動販売機。
VHDL学習用教材
1.組み合わせ回路:
16ビット加減算器、4ビット比較器。
2.順序回路:
D二安定回路、プッシュボタン回路、
2ビット16進カウンタ。
3.VHDL応用例:
60進カウンタ、自動販売機。
VHDL学習用教材
1.組み合わせ回路:
16ビット加減算器、4ビット比較器。
2.順序回路:
D二安定回路、プッシュボタン回路、
2ビット16進カウンタ。
3.VHDL応用例:
60進カウンタ、自動販売機。
VHDL学習用教材
1.組み合わせ回路:
16ビット加減算器、4ビット比較器。
2.順序回路:
D二安定回路、プッシュボタン回路、
2ビット16進カウンタ。
3.VHDL応用例:
60進カウンタ、自動販売機。
教材用CPUの仕様
❐ 命令長:命令コード(4bit)+オペランド
(12bit)
OP(4) reserved(4 (1 reg2(3 (1 reg1(3)
)
) )
)
OP(4) Address or Immediate (12)
❐ アドレス長:12bit
❐データ長: 16bit
❐ レジスタ(16bit×8)
教材用CPUの仕様
❐ 命令長:命令コード(4bit)+オペランド
(12bit)
OP(4) reserved(4 (1 reg2(3 (1 reg1(3)
)
) )
)
OP(4) Address or Immediate (12)
❐ アドレス長:12bit
❐データ長: 16bit
❐ レジスタ(16bit×8)
教材用CPUの仕様
❐ 命令長:命令コード(4bit)+オペランド
(12bit)
OP(4) reserved(4 (1 reg2(3 (1 reg1(3)
)
) )
)
OP(4) Address or Immediate (12)
❐ アドレス長:12bit
❐データ長: 16bit
❐ レジスタ(16bit×8)
教材用CPUの仕様
❐ 命令長:命令コード(4bit)+オペランド
(12bit)
OP(4) reserved(4 (1 reg2(3 (1 reg1(3)
)
) )
)
OP(4) Address or Immediate (12)
❐ アドレス長:12bit
❐データ長: 16bit
❐ レジスタ(16bit×8)
教材用CPUの仕様
❐ 命令長:命令コード(4bit)+オペランド
(12bit)
OP(4) reserved(4 (1 reg2(3 (1 reg1(3)
)
) )
)
OP(4) Address or Immediate (12)
❐ アドレス長:12bit
❐データ長: 16bit
❐ レジスタ(16bit×8)
命令仕様
❐ 16(24)個の命令
a. 転送命令
LD, ST ,MV, SET
b.制御命令
JMP, JNZ,JPZ
c.演算命令
ADD, SUB, AND, OR,
XOR,NOT,SRL, SLL, NOP
命令仕様
❐ 16(24)個の命令
a. 転送命令
LD, ST ,MV, SET
b.制御命令
JMP, JNZ,JPZ
c.演算命令
ADD, SUB, AND, OR,
XOR,NOT,SRL, SLL, NOP
命令仕様
❐ 16(24)個の命令
a. 転送命令
LD, ST ,MV, SET
b.制御命令
JMP, JNZ,JPZ
c.演算命令
ADD, SUB, AND, OR,
XOR,NOT,SRL, SLL, NOP
命令仕様
❐ 16(24)個の命令
a. 転送命令
LD, ST ,MV, SET
b.制御命令
JMP, JNZ,JPZ
c.演算命令
ADD, SUB, AND, OR,
XOR,NOT,SRL, SLL, NOP
CPU設計上工夫した点
❐構造のわかり易さを最重視
❐信号のやり取りとその順番の明確な表示
CPU設計上工夫した点
❐構造のわかり易さを最重視
各コンポネントを独立に設計 [階層設計]
❐信号のやり取りとその順番の明確な表示
CPU設計上工夫した点
❐構造のわかり易さを最重視
各コンポネントを独立に設計 [階層設計]
その動作を個別に確認
❐信号のやり取りとその順番の明確な表示
CPU設計上工夫した点
❐構造のわかり易さを最重視
各コンポネントを独立に設計 [階層設計]
その動作を個別に確認
❐信号のやり取りとその順番の明確な表示
CPUの構成図
メモリ
プログラムカウンタ
制御回路
命令レジスタ
データレジスタ
デコーダ
制御信号
フラッグレジスタ
演算とシフト
データ又は
アドレス
教材による学習の流れ
1.VHDLの学習
「 VHDL の 基 礎 」 ~ 「 演 習 問
題」
その他、 VHDL、ツール等の解説
2.CPUの各モジュールの動作と構成の
学習
3.CPU全体の構成の学習
4.シミュレーションによりCPU動作の
学習
教材による学習の流れ
1.VHDLの学習
「 VHDL の 基 礎 」 ~ 「 演 習 問
題」
その他、 VHDL、ツール等の解説
2.CPUの各モジュールの動作と構成の
学習
3.CPU全体の構成の学習
4.シミュレーションによりCPU動作の
学習
教材による学習の流れ
1.VHDLの学習
「 VHDL の 基 礎 」 ~ 「 演 習 問
題」
その他、 VHDL、ツール等の解説
2.CPUの各モジュールの動作と構成の
学習
3.CPU全体の構成の学習
4.シミュレーションによりCPU動作の
学習
教材による学習の流れ
1.VHDLの学習
「 VHDL の 基 礎 」 ~ 「 演 習 問
題」
その他、 VHDL、ツール等の解説
2.CPUの各モジュールの動作と構成の
学習
3.CPU全体の構成の学習
4.シミュレーションによりCPU動作の
学習
教材による学習の流れ
1.VHDLの学習
「 VHDL の 基 礎 」 ~ 「 演 習 問
題」
その他、 VHDL、ツール等の解説
2.CPUの各モジュールの動作と構成の
学習
3.CPU全体の構成の学習
4.シミュレーションによりCPU動作の
学習
まとめ
シミュレーションと論理合成によって
1.CPUの各モジュールの
a.入出力 b.動作 c.構成
の理解を助けることができる
2.CPU全体の
a.回路構成の明示
b.命令実行サイクルの動作観察
c.信号とデータのやり取りの観察
により、理解を助けることができる
以上のような特徴をもつ学習支援ソフトを開発した
まとめ
シミュレーションと論理合成によって
1.CPUの各モジュールの
a.入出力 b.動作 c.構成
の理解を助けることができる
2.CPU全体の
a.回路構成の明示
b.命令実行サイクルの動作観察
c.信号とデータのやり取りの観察
により、理解を助けることができる
以上のような特徴をもつ学習支援ソフトを開発した
まとめ
シミュレーションと論理合成によって
1.CPUの各モジュールの
a.入出力 b.動作 c.構成
の理解を助けることができる
2.CPU全体の
a.回路構成の明示
b.命令実行サイクルの動作観察
c.信号とデータのやり取りの観察
により、理解を助けることができる
以上のような特徴をもつ学習支援ソフトを開発した
まとめ
シミュレーションと論理合成によって
1.CPUの各モジュールの
a.入出力 b.動作 c.構成
の理解を助けることができる
2.CPU全体の
a.回路構成の明示
b.命令実行サイクルの動作観察
c.信号とデータのやり取りの観察
により、理解を助けることができる
以上のような特徴をもつ学習支援ソフトを開発した
今後の課題
1.現在のメモリ部分はFPGAボードへ実装不可能
:インタフェース部を改良し、実部品で確認要
2. 乗算や多ビットシフト、ローテート等の命令
:モジュールを新たに設計し
接続とタイミング制御をやり直し
今後の課題
1.現在のメモリ部分はFPGAボードへ実装不可能
:インタフェース部を改良し、実部品で確認要
2. 乗算や多ビットシフト、ローテート等の命令
:モジュールを新たに設計し
接続とタイミング制御をやり直し
今後の課題
1.現在のメモリ部分はFPGAボードへ実装不可能
:インタフェース部を改良し、実部品で確認要
2. 乗算や多ビットシフト、ローテート等の命令
:モジュールを新たに設計し
接続とタイミング制御をやり直し
教材概要
(1)FPGAやVHDLの紹介、
(2)VHDL例題、
(3)合成ツールやFPGAの使い方、
(4)CPUアーキテクチャの学習。
教材概要
(1)FPGAやVHDLの紹介、
(2)VHDL例題、
(3)合成ツールやFPGAの使い方、
(4)CPUアーキテクチャの学習。
教材概要
(1)FPGAやVHDLの紹介、
(2)VHDL例題、
(3)合成ツールやFPGAの使い方、
(4)CPUアーキテクチャの学習。
教材概要
(1)FPGAやVHDLの紹介、
(2)VHDL例題、
(3)合成ツールやFPGAの使い方、
(4)CPUアーキテクチャの学習。
教材概要
(1)FPGAやVHDLの紹介、
(2)VHDL例題、
(3)合成ツールやFPGAの使い方、
(4)CPUアーキテクチャの学習。