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 ファイルを示しま す。bdf 1 とbdf2は同じ回路です。 bdf1 bd f2
作成した tdf ファイルの bdf ファイル上におけるシンボルの作り方 作成したtdfファイルにカーソルをあわせ、 File→Create/Update…→Create Symbol Files for Current File で、tdfで作成したプログラムのbdfファイル上でのシンボ ルファイルを作成できます。 また、 tdf ファイルを変更した場合は、シンボルをアップデート しなければなりません。 また、例のように簡単な回路であれば、bdfファイル内のロ ジックのみでのプログラムも可能です。 bdf1 tdfファイルより作成したシンボルを使用して作成 bdf2 bdfファイルのみで作成
シミュレーション例 a1a0out b out input output
② Declaring Nodes ノードの宣言 ノードは変数で、 Variable 以外の場所で宣言されていない信号を 示すために使用されます。 例 ( boole2.tdf ) ノードの宣言
Nodes この部分が、ノードで宣言された a_equals_2 にあたる。 a_equals_2 は a1 、 a0 により以下のように変化する。 a1a0 a_equals_ 回路における信号ラインのようなイメージ
③ 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ビットで定義してある ため、各ビットにおいて値をきめてシミュレーションをか けることができる。 a2a d2d1 ① ② ③ ④ ① ② ③ ④
シミュレーション方法 File→New… より Vector Waveform File を選んでください。以下のような画面が表示さ れます。 このあたりをクリック ここをクリック ココをクリックすると左にピンなどがでるので、 中央のカーソルにより見たいピンなどを移動さ せる。 ここで何を見るかを選択する。
ここは、出力なので、シミュレーションを行わないと表示され ません。 ここの部分にどのような信号を入力させたいかを入力 する。 例
END