スライド 1 - 高知大学 理学部 情報科学教室

Download Report

Transcript スライド 1 - 高知大学 理学部 情報科学教室

ハードウェア記述言語による
論理回路設計とFPGAへの実装
1
SPP
2009.8.24
高知大学
高知大学理学部 本田理恵、三好康夫
はじめに
• FPGAとハードウェア記述言語HDLを用いると、
自分の目的にあった専用の論理回路を手軽
に実装できる
– あたかもコンピュータを使ってソフトウェアをプロ
グラミングする感覚でできる(書き換え可能)
– 現在では数千円ぐらいの安価なものも
専用の論理回
路を試作したい
HDL記述
module test(A,B,C)
……
Endmodule
論理合成,
シミュレーション、
書き込み
書き換え可能
FPGA
論理回路の実装形式
IC, LSIに実装されるが、通常は書き換えできない
フィールドプログラマブル
ゲートアレイ
ASIC、ゲートアレイ
• ASIC(Application Specific Integrated
Circuit)
– 特定用途向けに複数機能の回路を1つに
まとめた集積回路の総称。セミカスタムIC
– ゲートアレイ、セルベース、エンベッデドア
レイ、ストラクチャードASICなどがある。
– セルベース (cell base):
• 設計済みの機能ブロックを配置し、それ以外の
ロジック回路とこれらの間の配線層を用途に応
じて追加。
– ゲートアレイ (gate array)
• 汎用的な回路素子を基板上に配置しておき、
顧客の注文を受けてから用途や要望に応じて
配線(メーカー側で実施)
FPGAとは
• FPGA: Field Programmable Gate Array
• Field Programmable :現場でプログラムできる
• Gate Array:ゲートアレイ
–
–
–
–
あらかじめ論理素子が配置されたLSI
配線をプログラムして論理回路を実装
書き換えも可能
これらの操作がコンピュータで簡単
にできる→自由設計、試行錯誤可能
– 書き込み可能な回路規模
>約1,000ロジックエレメント(約20,000
ゲート)以上
– Xilinx(ザイリンクス)社、Altera社など
• 現在では安価に(1個30—100ドル)
歴史
• 1985年 Xilinx(ザイリンクス)社「XC2000」が世
界初のFPGA
• マイコン、ASIC(組み込み回路)の設計シミュ
レーションに使用
• 当初は、コストや使い勝手の問題から一般に
は普及せず
• 最近では低価格化し、操作性も向上
• マイコンやASICを置き換えることが期待される
FPGA、カスタムIC、ゲートアレイ比較
ASIC
(セミカスタムIC)
カスタムIC
FPGA
ゲートアレイ
実装方式
書き換え
パフォーマンス
ロジックエレメント
+配線
不可
小型、省電力、高
集積度、高速
開発期間
長
開発単位
多
カスタマイズ性
市場のシェア
◎
大
ロジックエレメント+配
ロジックエレメント+
線用チャネル
配線用チャネル(ユー
(顧客の要望に応じて
ザーがコンピュータで
メタル配線)
配線を書き込める)
困難
いずれもやや劣る
容易
やや短い(ただしベン
ダー側で製作)
1個から
短(ユーザーが試行
錯誤できる)
○
大
△
普及しつつある
劣る
1個から
HDLとは
• HDL (Hardware Description Language):ハードウェア
記述言語
• 論理回路の機能を記述する言語
• 回路の動作を記述するシステム仕様書のようなものと
考えてもよい
• ゲート化された回路を意識することなく、より高い機能
に応じたレベルでの設計を行うことができる
• C言語に似た部分もある。
• Verilog-HDL, VHDLの2つが主流
• 今回はVerilog-HDL
HDL記述例
HDLによる論理回路実装の流れ
この過程は、PCと
専用のソフトウェア
でできる。
あたかも、
ソフトウェアを
プログラムする
感覚でできる。
書き込み
本授業の目的
• HDLによる論理回路の記述法の基礎を学ぶ
• PCとソフトウェアを用いて、記述したHDLを
FPGA開発キットに書き込む過程を体験する
• 簡単なデジタル回路の実装の練習問題と自
由課題を実施する
予定
1
8/24 13:00−13:50
FPGAとHDL(講義)
2
8/24 14:00−14:50
Quartus II 利用方法の説明
3
8/24 15:00−15:50
課題 組み合わせ回路の作成
4
8/27 13:00−13:50
フリップフロップ
5
8/27 14:00−14:50
メッセージの表示
6
8/27 15:00−15:50
自由課題
実験
• 使用機器
–
–
–
–
ノートPC(windows XP, パラレルポートつき)
RS232Cケーブル1本
PowerMedusa
PowerMedusa用電源アダプタ
• 準備
–
–
–
–
“電源OFFの状態で“PCとPowerMedusaをRS232Cケーブルで接続する。
PCの電源を入れる。
実験室のPCの場合 adminでログインする。
Quatusを起動する(画面デスクトップにあるQuatusのアイコンをダブ
ルクリックする)。
– PowerMedusaは、使用する際に電源を入れる(電源用スイッチはない
ので、電源アダプタコードを接続することが電源を入れることに相当
する)。
Power Medusa取扱い注意
• 落下させたりすることのないよう、慎重に扱う
• キーやスイッチの操作をするとき以外は、ほこりが入
らないようにプラスチックケースのふたを閉める
• 電源ONのまま、Power Medusaケーブル類の抜き差
しを行わない
• ケーブルの抜き差しを乱暴に行わない
• 7SEGディスプレイやLEDはスイッチ周辺にあるディップ
スイッチをONにしないと動かない。動作確認前にON
にする(ディップスイッチの位置は口頭で説明します)
• HDLの変数を7SEGやスイッチなどと関連付けて動作さ
せるには、別途、変数名と実際のFPGAのピンへの割
り当て作業が必要(説明する)
Power Medusaブロック図
LED
正論理(1で点灯)
SW
負論理(スイッチを押
すと0)←注意
7セグ 正論理(1で点灯)
課題1
• 次のような条件の回路図を作成する
– SW1が‘1’の時→ LED1 点灯・LED2 消灯
– SW1が‘0’の時→ LED1 消灯・LED2 点灯
• (LEDは‘1’の時 点灯、 ‘0’の時 消灯とする)
SW1
LED1 LED2
1
1
0
0
0
1
//LED module
LED(SW1,LED1,LED2);
input SW1;
output LED1,LED2;
assign LED1=SW1;
assign LED2=~SW1;
endmodule
実装
• 設計した回路をQuartusⅡでコンパイル、シ
ミュレー ション、MU200-EC6Sで実機確認する
• 実機動作では、 SW1はSW_A0 LED1はLED0、
LED2はLED7に割り当てることとする
• ピンアサインはMU200-EC6Sピンアサイン表
1.1.xls参照すること。)
• 資料QuartusⅡで回路設計 参照
課題2
• 7SEGLEDに学籍番号やメッセージを点灯しよ
う
– SW1が‘0’の時、学籍番号が点灯する(1は無表
示)
– SW1はSW_A0 (2番ピン)に割り当てる
– ヒント 学籍番号「00000000」の場合
• 7SEGLEDは下図のように表示
ピンアサインメントは
アサインメント表
(EXCEL)を参照
A0
表示する番号、メッセージの決定(例)
文字
0
0
0
0
0
0
0
7SEG表示
2進表示 16進表示
FC
1111 1100
FC
1111 1100
FC
1111 1100
FC
1111 1100
FC
1111 1100
FC
1111 1100
FC
1111 1100
表示する番号、メッセージの決定
文字
7SEG表示 2進表示
16進表示
課題3(余裕のある人)
• 5者の多数決回路を作成せよ。
– 5者の意見はSWから入力し、結果はLEDに表示
クロック