FC2カウンター FPGAの部屋 2011年10月29日
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

Altiumセミナ、三銃士/王妃の首飾りとダ・ヴィンチの飛行船に行ってきました

今日は、10時からFPGA-CAFEでAltium Designerの講習会に参加しました。やはり機能的にはDesignSpark PCBよりも上だと感じました。そりゃそうですよね。お高いソフトとフリーウェアの差です。
DesignSpark PCBも、PCBデザインでネット名が見えてると、配線の最後に拡大したときに繋ぎやすいんですがね。。。後、クリアランスを表示するときに移動すると、計測値が消えちゃうのが難点だと思います。でもフリーウェアとして立派な凄いソフトだと思います。
Altiumは、C to HDL機能もあるし、FPGA対応機能もあるので、使ってみたいと思っていました。仕事ではそういうニーズがないので、購入できません。なので、6万円くらいでしたら個人的に買ってみたいです。

セミナの後は、奥さんとイーアスで待ち合わせて、映画、”三銃士/王妃の首飾りとダ・ヴィンチの飛行船”に行ってきました。3Dです。痛快でなかなか面白かったです。多分、続編があると思います。

最後に、ガス展に行きました。17年もガス台使っているので、そろそろ新しいのが欲しいとのことです。最近のガス台は機能満載です。温度調整、タイマー、ガラストップ、至れり尽くせりです。どうやら、買うことになりそう。約15万円。

私のAltium Designerの運命やいかに。。。
  1. 2011年10月29日 21:19 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:0

システム開発入門[Altera偏]を試してみる4(2.4アップダウン・カウンタのシミュレーション1)

FPGAボードで学ぶ組込みシステム開発入門[Altera偏]の第4弾は、2.4章のアップダウン・カウンタをシミュレーションしてみようと思う。

ダウンロードしたDE0用のプロジェクトでは、dai2sho\updownだ。
Quartus IIでコンパイルして実機で確かめてみたが、問題なく動作した。
FPGA_Board_Dev_18_111029.png

次にModelSimでシミュレーションを行う。ModelSimのバージョンは6.6d、Quartus II 11.0用。久しぶりのModelSimだ。
プロジェクトを作成して、Verilogファイルを追加し、シミュレーションを行う。なお、OKボタンをクリックするのは省略してある。

1.最初に、dai2sho\updownフォルダにSimulationフォルダを新規作成して、テストベンチファイル、updown_tb.vを入れておく。

2.ModelSimで、FileメニューからNew -> Project...を選択して、新規プロジェクトを生成する。

3.Create Projectダイアログが開く。Project Nameをupdownとして、Project Locationを1.で作成したSimulationフォルダに設定する。
FPGA_Board_Dev_19_111029.png

4.Add item to the Projectダイアログが開く。Add Existing Fileをクリックして、ファイルをプロジェクトに追加する。
FPGA_Board_Dev_20_111029.png

5.Add file to Projectダイアログが開く。File NameのBrowse...ボタンをクリックする。
FPGA_Board_Dev_21_111029.png

6.Select files to add to projectダイアログが開く。btn_in.v, updown.v を選択して、開くボタンをクリックする。(btn_in.vはオリジナルのファイルから少し書き換えた。どう書き換えたかは後で述べる)
FPGA_Board_Dev_22_111029.png

7.Add file to ProjectダイアログのFile Nameに2つのファイル名が入った。OKボタンをクリックする。
FPGA_Board_Dev_23_111029.png

8.btn_in.v, updown.v がModelSimのProjectウインドウに追加された。
FPGA_Board_Dev_25_111029.png

9.もう一度、Add item to the Projectダイアログで、Add Existing Fileをクリックして、Simulationフォルダのupdown_tb.v もProjectウインドウに追加する。Add item to the ProjectダイアログをCloseボタンをクリックして閉じる。
FPGA_Board_Dev_26_111029.png

10.CompileメニューからCompile Order...を選択する。Compile Orderダイアログが開く。Auto Generateをクリックする。
FPGA_Board_Dev_27_111029.png

11.updown_tb.v にバグがあったので修正したが、コンパイルが成功すると、ダイアログが表示される。これでコンパイルは終了した。
FPGA_Board_Dev_28_111029.png

12.Compile OrderダイアログをOKボタンで閉じる。
FPGA_Board_Dev_29_111029.png

13.シミュレーションを開始する。SimulatonメニューからStart Simulation...を選択する。

14.Start Simulationダイアログが開く。Designタブのworkを展開して、UPDOWN_tbを選択し、OKボタンをクリックする。(今回はAlteraのライブラリは使わないので、その他のタブはそのままとする)
FPGA_Board_Dev_30_111029.png

15.シミュレーション画面に変更された。Objectsウインドウのclk, rst, nBUTTON, nHEX0を選択して、Waveウインドウにドラック&ドロップした。
FPGA_Board_Dev_31_111029.png

16.InstanceウインドウでUPDOWN_instを選択すると、updown.vの信号がObjectsウインドウに表示される。
FPGA_Board_Dev_32_111029.png

17.これらの信号をWaveウインドウに追加する前に、目印にDividerをWaveウインドウに挿入しよう。Waveウインドウで右クリックメニューからInsert Dividerを選択する。
FPGA_Board_Dev_33_111029.png

18.Wave Divider Propertiesダイアログが開く。Divider NameにUPDOWNと入力して、OKボタンをクリックする。
FPGA_Board_Dev_34_111029.png

19.updown.vの信号をすべて、Waveウインドウにドラック&ドロップする。BTN_INの信号も同様にDividerを作っって、ドラック&ドロップした。
FPGA_Board_Dev_35_111029.png

20.いよいよシミュレーションを開始する。アイコンをクリックしても良いのだが、Transcriptウインドウで"run -all"と入力してシミュレーションを走らせる。テストベンチに$stop;を書いてあるので、そこまでシミュレーションを行うことができる。
FPGA_Board_Dev_36_111029.png

20.updown_tb.v の$stop;行でシミュレーションが停止する。
FPGA_Board_Dev_37_111029.png

21.Waveウインドウに戻ると波形が表示されているが、一部で見にくい。全体を表示させるために、zoom Fullアイコンをクリックする。
FPGA_Board_Dev_38_111029.png

22.Waveウインドウの全体が表示された。
FPGA_Board_Dev_39_111029.png

(注)本のVerilogファイルをそのままシミュレーションしても上の波形にはなりません。btn_in.vをいじってあります。どういじってあるかは第2回目を参照ください。

23.今、7セグメントLEDに何を表示しているかを見るために、updown.vの[3:0] udcntを符号なし十進数で表示してみましょう。そうするには、右クリックメニューからRadixをUnsigned に設定します。
FPGA_Board_Dev_40_111029.png

24.udcntが0から10までアップ・カウントして、そこから3までダウン・カウントして、次に0にリセットされているのが見えます。
FPGA_Board_Dev_41_111029.png

25.CTRL+左クリックドラックで指定範囲を拡大できます。
FPGA_Board_Dev_42_111029.png

26.udcntが0の時のnHEX0を見ると"1000000"です。これが7セグメントLEDの点灯パターンになります。これは、gセグメントのみ消灯で、それ以外のa, b, c, d, e, fセグメントが点灯します。つまり、8の真ん中の棒のみ消灯なので、0に見えます。7セグメントLEDの点灯表は、本の44ページの表2-2 7セグメントLEDデコーダの真理値表に書いてあります。
FPGA_Board_Dev_43_111029.png

また最初からシミュレーションをしたいときは、Trascriptウインドウで、

restart -f
run -all


を入力します。

これで第1回目は終了です。第2回目は、btn_in.vの修正部分とupdown_tb.vのテストベンチについて書くことにします。

システム開発入門[Altera偏]を試してみる4(2.4アップダウン・カウンタのシミュレーション2)”に続く。
  1. 2011年10月29日 06:03 |
  2. FPGAボードで学ぶ組込みシステム開発入門[Altera偏]
  3. | トラックバック:0
  4. | コメント:0