FPGAを用いた組合せ論理回路 と順序論理回路の設計

FPGAを用いた組合せ論理回路
と順序論理回路の設計
制御システム工学科
美多研
助手:池田 貴幸
[email protected]
http://runbot_www.ctrl.titech.ac.jp/Students_exp/index.html
連絡事項
• 質問はメールで行って下さい。
[email protected]
• テキスト・資料を紛失した場合はホームページ
からダウンロードして下さい。(ヘッダ参照)
• 課題レポートの提出期限(最終日から7日後、
302号室)まで
http://runbot_www.ctrl.titech.ac.jp/Students_exp/index.html
説明の内容
1. 組合せ論理回路と順序論理回路の説明(1日目)
1.
2.
3.
4.
5.
組合せ論理回路と順序論理回路の簡単な例
ブール代数などの論理数学
組合せ論理回路の設計方法
順序論理回路の設計方法
FPGAとCPLDの現状と応用
2. 組合せ論理回路と順序論理回路の設計
(2日目 ティーチングアシスタント)
1.
2.
3.
ソフトウエアの説明
使い方の説明
演習・課題の確認
http://runbot_www.ctrl.titech.ac.jp/Students_exp/index.html
実験の目標(1章)
• 組合せ論理回路と順序論理回路について理解し、実際に設計
できるようになること
組合せ論理回路・順序論理回路とは
‘0’ or ‘1’
メモリある・なし
http://runbot_www.ctrl.titech.ac.jp/Students_exp/index.html
組合せ論理回路と順序論理回路の例(2章)
• 1種類の缶ジュースを100円コインで販売する自動販売機
On : ’1’ or 5[V]
Off : ‘0’ or 0[V]
Part A:組合せ論理回路
Part B:順序論理回路(メモリがある)
8進数http://runbot_www.ctrl.titech.ac.jp/Students_exp/index.html
: ‘000’,‘001’, ‘010’,‘011’, ‘100’,‘101’, ‘110’,‘111’
基礎知識(ブール代数)(3章)
• ブール代数 : “1”か“0”かの2値変数を扱う数学
• 論理回路の変数の状態(2値)を“1”と“0”に対応させる
• ブール代数の基本演算は論理積AND、論理和OR、および否定
NOTである。
• これらの基本演算の演算子をそれぞれ
と定義し
て、
表現することができる。
http://runbot_www.ctrl.titech.ac.jp/Students_exp/index.html
真理値表
論理値関数
?
論理値関数
http://runbot_www.ctrl.titech.ac.jp/Students_exp/index.html
基礎知識(ブール代数2)
• 論理和NOR、論理積NAND、排他的論理和EXOR
http://runbot_www.ctrl.titech.ac.jp/Students_exp/index.html
論理回路記号
• 論理は式や表で表現することができるが、記号を用いて図に
よって表現することができる。
http://runbot_www.ctrl.titech.ac.jp/Students_exp/index.html
組合せ論理回路とその設計(4章)
• 組合せ論理回路の設計は、入力論理値をA,B,C,・・、
出力論理値をX,Y,Zとすると入力論理値と出力論理
値の関係をもとめることである。すなわち
A,B,C,X,Y,Zは
“0”,“1”をとる。
をみたす論理値関数を求めることである。
• 例
http://runbot_www.ctrl.titech.ac.jp/Students_exp/index.html
組合せ論理回路の設計手順
• 入力論理値と出力論理値の関係を真理値表で表現し整理する。
• 真理値表をブール代数の法則で簡略し論理値関数で表現する。
• 論理値関数を回路図にする。
http://runbot_www.ctrl.titech.ac.jp/Students_exp/index.html
カルノー図(2論理変数の場合)
• 真理値表からカルノー図へ
• カルノー図から論理値関数
http://runbot_www.ctrl.titech.ac.jp/Students_exp/index.html
演習
http://runbot_www.ctrl.titech.ac.jp/Students_exp/index.html
カルノー図(3論理変数の場合)
• 真理値表からカルノー図へ
• カルノー図から論理値関数
http://runbot_www.ctrl.titech.ac.jp/Students_exp/index.html
演習:組合せ論理回路
http://runbot_www.ctrl.titech.ac.jp/Students_exp/index.html
順序論理回路とその設計(5章)
①
②
③
(入力論理値、内部状態値)と出力論理値の関係を真理値
表で表現し整理する。
真理値表(カルノー図)をブール代数の法則で簡略し論理
値関数で表現する。
論理値関数を回路図にする。
組合せ論理回路の場合と異なる点は、
内部状態値を考慮する点だけである。
•
順序論理回路の例:フリップ・フロップ(flip-flop)
http://runbot_www.ctrl.titech.ac.jp/Students_exp/index.html
状態遷移図
内部状態の遷移を表現する図
http://runbot_www.ctrl.titech.ac.jp/Students_exp/index.html
フリップ・フロップ
http://runbot_www.ctrl.titech.ac.jp/Students_exp/index.html
カウンタ
• カウンタ(counter)は、入力端子に加えられる1の数を数えるもので、
例えば8進カウンタであれば、入力端子に1がくるたぴに、内部状態
は,"000", "001", "010", "011", "100", "101", "110", "111",
"000"と変化する回路である。この場合には8状態を内部に持つ必要が
あり、3個のFFで実現できる。
回路図
状態遷移図
http://runbot_www.ctrl.titech.ac.jp/Students_exp/index.html
プログラマブルロジックデバイス(6章)
(CPLD&FPGA)の現状
 TTL74シリーズやC-MOS74HCシリーズの基本ゲート
プログラマブル
 プログラマブルロジックデバイス
PAL(Programmable Array Logic)
GAL(Generic Array Logic)
PLD(Programmable Logic Devices)
集積度や省電力化・小型化
 プログラマブルロジックデバイス
CPLD(コンプレックスプログラマブルロジックデバイス)
FPGA(フィールドプログラマブルゲートアレイ)
http://runbot_www.ctrl.titech.ac.jp/Students_exp/index.html
設計ツール
http://runbot_www.ctrl.titech.ac.jp/Students_exp/index.html
設計ツール
(Xilinx Foundation シリーズ2.1i )
• 2日目で使用する。
http://runbot_www.ctrl.titech.ac.jp/Students_exp/index.html
課題(7章)
http://runbot_www.ctrl.titech.ac.jp/Students_exp/index.html
課題のヒント
• 補数とは:各ビットを反転させて“1”をたし
たもの
• 例:Y=“00001”の場合
Y=“11110”+”00001”=“11111”
• X=“00001”, Y=“00001”のとき
X-Y=X+ Y
X+ Y= “00001”+ “11111”= “00000”
http://runbot_www.ctrl.titech.ac.jp/Students_exp/index.html
繰り上げ桁は
無視