000000 ランダム
 HOME | DIARY | PROFILE 【お気に入りブログ登録】 【ログイン】

CPUを作ろう ~計算機教材とマイコンと電子工作~

Quartus II入門(Verilog)

Quartus II入門 ~Verilogによる作成手順~


1.Quartus IIとは
Quartus IIとは,FPGAの主要メーカであるALTERA社の開発ツールである.Quartus II Web Editionが公開され,同社のホームページからダウンロードできる.使用にはライセンス申請が必要で,詳細は以下のサイトにある.

http://www.altera.co.jp/products/software/products/quartus2web/sof-quarwebmain.html

Quartus IIの使用法についても詳しい説明がWebにあるが,ここでは演習に必要最小限な説明を行う.Quartus IIは各種HDL(VHDL,Verilog,AHDL)に対応しているが,ここでは,Verilog-HDLによる簡単な演習手順を示す.

2.Quartus IIの起動
図1はQuartus IIの起動画面である.
HDLによる記述,論理合成,シミュレーション,実装などをサポートしているので,一連の作業はプロジェクト単位で行う.

Quartus1
図1 QuartusIIの起動画面


3.プロジェクト作成
新規にプロジェクトを作成するには,FileメニューからNewProjectWizardを選択する(図2).

Quartus2
図2 ProjectWizard


次に表示される画面はNextで進み,図3の画面に移る.例として,Cドライブにtestというフォルダが作成されており,ここで作業を行う場合は,1行目の入力でワーキングディレクトリとして指定する.
次にプロジェクト名を入力する.いま,testフォルダ内にtestという名前でVerilogによる回路記述を作成してあるとすると,そのファイルを選択すればtestがプロジェクト名として入力され,その下のトップレベルデザインエンティティ名(以下,トップエンティティと略記)もtestが自動で入力される.
 トップエンティティとは,回路が階層構造で記述されているとき,その最上位の回路のことである.(階層構造でない単独の回路を用いるときはその回路をトップエンティティにする)

Quartus3
図3 作業ディレクトリ,プロジェクト名,トップエンティティの入力


ここで演習する記述内容について説明しておく.Verilogによる回路記述はテキストエディタで作成する.拡張子は“.v”とする.test.vは,gand.vとgor.vの2つの回路を含んだ階層構造の上位階層の記述となっている.gand.vをリスト1,gor.v をリスト2,test.vをリスト3にそれぞれ示す.
 リスト1のmoduleの後のgandが回路名である.最後はendmoduleでくくる.gandはaとbの2本の入力,cの出力を持つ回路でそれぞれinputとoutput文で宣言されている.次のassign文によって入出力の関係が記述されている.“&”記号はaとbの入力の論理積(AND)を意味する.

リスト1
QuartusL1


 リスト2の回路gorは,gandと同様に2入力,1出力の回路で,aとbの論理和をcに出力する回路である.

リスト2
QuartusL2


 リスト3のtestはa,b,c,dの4本の入力,x,y,zの3本の出力をもつ回路である.先に定義されたgandとgorを呼び出してgandv,gorvの2つの回路を生成し,結線している.gandvはa,bの入力の論理積をxに出力し,gorvはc,dの入力の論理和をyに出力する.zはxとyの論理積としている.

リスト3
QuartusL3


 ProjectWizardをNextで進めると,図4の画面となる.ここで,プロジェクトへのファイルの追加を行う.いま,testは階層構造を持ち,gandとgorの記述が必要なので,3つのファイルをプロジェクトに加える.

Quartus4
図4 プロジェクトへのファイルの追加


Nextで進むと,次は使用するデバイスの設定画面(図5)となる.ここで,回路を実装しようとするデバイスを選択する.(シミュレーションのみを行う場合は選択の必要なし)
後はNextで進み,最後にFinishを押すとプロジェクト作成が完了である.

Quartus5
図5 デバイスの設定


4.コンパイル
 ProcessingメニューからStart Compilationを選択するとコンパイルが始まる(図5).

Quartus6
図6 コンパイル開始


 コンパイル中,いくつかのプロセスが行われ,エラーがなければ図7のようにコンパイル終了のメッセージが表示される.左手のStatusに途中経過,画面下に各種情報(Info)やWarninigが表示される.エラーが検出された場合は,ここにエラー表示されるとともにコンパイルが中断する.

Quartus7
図7 コンパイル終了


5.シミュレーション
Verilogではテストベンチの記述を行うことができ,テストベンチによりシミュレーションを行うのが一般的である.一方,Quartus IIではGUIを使って入力信号のテスト波形を作成し,シミュレーションを行うことができるので,ここではテスト波形によるシミュレーション手順を説明する.
まず,テスト波形の作成を行う. FileメニューのNewを選択し,表示される画面のタブのOtherFilesをクリックし,Vector WaveForm Fileを選択する.

Quartus8
図8 Vector Wave Form Fileの新規作成


論理素子には信号の遅れ(ディレイ)があるので,高速な信号変化を与えるとディレイにより信号の対応が見づらくなる.簡単な回路の動作確認をするときに十分に遅い信号変化を与えたほうが確認しやすいので,Grid size(Waveformの単位時間)を変更する.ToolsメニューのOptionsを選択し,図9の画面を表示させ,Wave Form Editorを選択した後,Default file end timeとDefault grid periodを設定する.(ここでは,Default file end timeを10 us,Default grid periodを100 nsとしている)

Quartus9
図9 オプションの設定


 続いて,Wave Form Editorで波形を入力する.Name欄で右クリックし,Insert Node or Busを選択する.

Quartus10
図10 Wave Form Editor


続いて現れる画面(図11)でNode Finderボタンを押す.

Quartus11
図11 Insert Node or Bus


すると図12のNode Finder が表示される.ここで,Listボタンを押すと左側のNodes FoundにNode(入出力端子)の一覧が表示される.すべてのNodeを選んで中央の“>>”ボタンを押すと,右側のSelected Nodesに選択されたNodeの一覧が表示される.この後,OKを押し,Insert Node or Busでも続けてOKを押すと図13のようにWaveformの画面にNodeが挿入される.

Quartus12
図12 Node Finder


Quartus13
図13 Nodeが挿入されたWaveformの画面


ツールバーからWaveform Edit Tool(Quartus14sボタン)を押すとカーソルが変わり,Waveformの右側でドラッグすると波形の論理値を入力できる.いま,図14のように波形を入力し,test.vwfとファイル名をつけて保存した.(“.vwf”はWaveformの拡張子)

Quartus14
図14 波形の入力例


入力を入力信号を合成された回路のシミュレーションは,ProcessingメニューからStart Simulationを選択する(図15).

Quartus15
図15 シミュレーション開始


しばらく待つとシミュレーションが完了し,図16のようにシミュレーション結果が出力される.図より,xはaとbの論理積,yはcとdの論理和,zはxとyの論理積であることが確認できる.

Quartus16
図16 シミュレーション結果



Copyright (c) 1997-2018 Rakuten, Inc. All Rights Reserved.