計算機工学論 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
© Copyright 2024 ExpyDoc