PowerPoint プレゼンテーション

計算機工学論
QuartusⅡの簡単な使い方
Combinatorial Logic(組み合わせ論理回路)(P.19~23)
①Implementing Boolean Expressions&Equations
(ブール表現とブール式の書き方)
②Declaring Nodes(ノードの宣言)
③Defining Groups(グループの定義)
修士1年
藤原 洋子
QuartusⅡの使い方
① QuartusⅡを立ち上げると以下のような画面になります。
新しいプロジェクトを立ち上げる場合
②プログラムを新しく作る場合、新しいプロジェクトを作ります。
まず、日本語ではない場所にフォルダを作成します。このとき、フォルダ名も、
日本語では動作しないので、注意してください。
また、フォルダ名はtdfファイルでSUBDESIGNのあとと同じ名前にしなければ
なりません。
例.C:\user\HDLなど。デスクトップはダメ!
③File…→New Project Wizard…で以下のようなウインドウが開きます。
指示に従ってNEXTで進んでいってください。
④以下のような画面になりましたら、プログラムファイルを保存するためのフォルダを
選んでください。
ここを押すと、オープンダイアログが開きます。
⑤すでにあるファイルを追加する場合は、
ここでファイルを選んで追加してください。
⑥この画面でデバイスを選択します。デバ
イスや、ファミリによって細かな機能が異
なるので、実際に使用するFPGAを選択し
てください。
ファイルを作る
File→New…より、
①tdfファイルを作成する場合は AHDL File
②bdfファイルを作成する場合は Block Diagram/Schematic File
③simファイルを作成する場合は Vector Waveform File
を選んでください。
なお、
①tdfファイルはAHDLのプログラムを書くときに使用します。
②bdfファイルはtdfファイルで作ったプログラムのシンボルや、論
理記号で書けるようなプログラムについて、INPUT、OUTPUTなど
を割り当てた、ブロックデザインファイルです。大きなシンボルを実
際に線(ノード)でつなげるなどの処理をおこなったり、全体の構成
を見ることができます。
③simファイルはシミュレーションを行うときに使用します。
Combinatorial Logic
組み合わせ論理回路
ブール表現、ブール関数、真理値表、さまざまな
マクロファンクションでAHDLに実装される。
Ex.可算器など
・Implementing Boolean Expressions&Equations
・Declaring Nodes
・Defining Groups
・Implementing Conditional Logic
・Creating Decoders
・Using Default Values for Variables
・Implementing Active-Low Logic
・ Implementing Bidirectional Pins
①Implementing Boolean Expressions&Equations
ブール表現とブール式の書き方
ブール表現とブール式は、ノード、数字、定数、ブール表現の集合は、演算
子や、比較演算子で区切られカッコによってグループ化されます。
演算子、論理演算子、比較演算子については、資料P.80~を参考にしてくださ
い。
例(boole1.tdf)
この部分とファイルのフォルダ名を
同じにしておかなければ、エラーが
でるので注意してください。
a1とa0のNOTをとってout1とし、さらに
out1とbのORをとったものをout2とします。
例(boole1.bdf)
以下にこのプログラムのbdfファイルを示します。
bdf1とbdf2は同じ回路です。
bdf1
bdf2
作成したtdfファイルのbdfファイル上におけるシンボルの作り方
作成したtdfファイルにカーソルをあわせ、
File→Create/Update…→Create Symbol Files for Current File
で、tdfで作成したプログラムのbdfファイル上でのシンボルファイルを作
成できます。
また、tdfファイルを変更した場合は、シンボルをアップデートしなけれ
ばなりません。
また、例のように簡単な回路であれば、bdfファイル内のロジックのみ
でのプログラムも可能です。
bdf1 tdfファイルより作成したシンボルを使用して作成
bdf2 bdfファイルのみで作成
シミュレーション例
input
output
a0
a1
out1
b
out1
out2
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
②Declaring Nodes
ノードの宣言
ノードは変数で、Variable以外の場所で宣言されていない信号を示すた
めに使用されます。
例(boole2.tdf)
ノードの宣言
Nodes
回路における信号ラインのようなイメージ
この部分が、ノードで宣言されたa_equals_2にあたる。
a_equals_2はa1、a0により以下のように変化する。
a0
a1
1
1
0
0
1
0
1
0
a_equals_2
0
0
1
0
③Defining Groups
グループの定義
グループは256ビットまでのノードの集合として扱われます。以下に例を示します。
d[2..0] = q[8..6]
あるグループとあるグループを接続する場合は、両方同じ
ビット数を持っていなければなりません。
この場合、3ビットの信号がd2→q8 d1 →q7 d0 →q6のよう
に接続されます。
d[2..0] = n
この場合は、すべてのビットがnに接続されます。
d[2..0] = VCC
VCCや、GNDにセットされた場合はグループのすべてのビット
はVCC,GNDに接続されます。
この場合は、すべてVCCに接続されます。
d[2..0] = 1
グループが1にセットされた場合は、最下位ビットがVCCに接
続されます。
この場合は、B001となります。
例
(group1.tdf)
aは2ビットのインプット、
dは二進数で「10」をaに加算した結果を
返す2ビットのアウトプットとなります。
二進数(Binary)で「10」となる
シミュレーション
INPUT
OUTPUT
①
③
②
④
INPUT、OUTPUTはそれぞれ、2ビットで定義してあるため、各
ビットにおいて値をきめてシミュレーションをかけることができる。
②
①
④
③
a2a1
+ 10
00
+ 10
01
+ 10
10
+ 10
11
+ 01
d2d1
01
11
100
110
シミュレーション方法
File→New…よりVector Waveform Fileを選んでください。以下のような画面が表示されます。
ここで何を見るかを選択する。
このあたりをクリック
ココをクリックすると左にピンなどがでるので、中央
のカーソルにより見たいピンなどを移動させる。
ここをクリック
ここの部分にどのような信号を入力させたいかを入力する。
ここは、出力なので、シミュレーションを行わないと表示されません。
例
END