FC2カウンター FPGAの部屋 Altera_MAX10

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

FPGAの部屋

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

Altera Wiki , BeMicro Max 10 の Finger Temperature Tutorial をやってみた3

Altera Wiki , BeMicro Max 10 の Finger Temperature Tutorial をやってみた2(Qsys)”の続き。

・IP を生成して、qip ファイルと sip ファイルを生成したよというダイアログが表示された。
BeMicro_MAX10_112_141019.png

・Qsys をプロジェクトに追加する。Quartus II のProject メニューからAdd/Remove Files in Project... を選択した。
BeMicro_MAX10_113_141019.png

・File name の横の ... ボタンをクリックして、fingertemp_adc.qsys を選択してから、Add ボタンをクリックした。
BeMicro_MAX10_114_141019.png

・fingertemp_adc.qsys がリストに入った。OKボタンをクリックした。
BeMicro_MAX10_115_141019.png

・Quartus II のFiles タブに、fingertemp_adc.qsys が入った。
BeMicro_MAX10_116_141019.png

・fingertemp_lab_top.vhd のGENERIC を編集して、NUM_LEDS を 0 に設定した。
BeMicro_MAX10_117_141019.png

・コンパイルを行った。
BeMicro_MAX10_118_141019.png

・fingertemp_lab_top ファイルを右クリックし、右クリックメニューから Locate -> Locate in RTL Viewer を選択した時のRTL 図を下に示す。
BeMicro_MAX10_119_141019.png

・Quartus II でProgrammer アイコンをクリックした。
BeMicro_MAX10_120_141019.png

・Programmer が立ち上がった。Add File... ボタンをクリックした。
BeMicro_MAX10_121_141019.png

・Select Programming File ダイアログで fingertemp_lab_top.sof をクリックし、Open ボタンをクリックした。
BeMicro_MAX10_122_141019.png

・Programmer に fingertemp_lab_top.sof ファイルが読み込まれた状態を示す。
BeMicro_MAX10_123_141019.png

・start ボタンをクリックした。
BeMicro_MAX10_124_141019.png

・コンフィギュレーションが成功した。
BeMicro_MAX10_125_141019.png

コンフィギュレーションは成功したのだが、LEDが全く点灯しない。NUM_LEDS を 0 に設定したので当たり前か?
温度センサのADT7420 を触っても変化は起きない。

次に、NUM_LEDS を 8 に戻してコンパイルし、コンフィギュレーションしてみた。今度はLEDが8個全て点灯した。
やはり、温度センサのADT7420 を触っても変化は起きない。
  1. 2014年10月22日 04:26 |
  2. Altera_MAX10
  3. | トラックバック:0
  4. | コメント:1

Altera Wiki , BeMicro Max 10 の Finger Temperature Tutorial をやってみた2(Qsys)

Altera Wiki , BeMicro Max 10 の Finger Temperature Tutorial をやってみた1”の続き。

前回は、fingertemp_pll を作製して、Qsys を立ちあげた所で終了したので、その続きから。

・前回は、下の図のQsys を立ちあげた所で終了した。
BeMicro_MAX10_90_141019.png

・IP Catalog の検索フィールドに ADC と入力した(上図参照)。

・Altera Moduler ADC core をダブルクリックした(上図参照)。

・Altera Moduler ADC core の設定画面が立ち上がった。

・General タブの Core Configuration -> Core Variant を Standard sequencer with external sample storage に変更した。
BeMicro_MAX10_91_141019.png

・Channels タブでは、CH12タブをクリックして、Use Channel 12 にチェックを入れた。CH12 は、BeMicro MAX10 ボードの温度センサに接続されているそうだ。
BeMicro_MAX10_92_141019.png

・Sequencer タブで、Conversion Sequence Channels を CH 12 に変更した。Finish ボタンをクリックした。
BeMicro_MAX10_93_141019.png

・Qsys 画面にAltera Moduler ADC core が入った。

・Altera Moduler ADC core を選択して右クリックし、右クリックメニューからRename を選択した。
BeMicro_MAX10_94_141019.png

・名前を fingertemp_adc に変更した。
BeMicro_MAX10_95_141019.png

・fingertemp_adc の response の Exprot をダブルクリックした(上図参照)。

・自動的に、fingertemp_adc_response と名前が入った。

・adc_pll_clock と ad_pll_locked も同様に export をダブルクリックした。したのエラー個数が減っていく。
BeMicro_MAX10_96_141019.png

・IP Catalog の検索に jtag と入力した。

・JTAG to Avalon Master Bridge をダブルクリックした。
BeMicro_MAX10_97_141019.png

・JTAG to Avalon Master Bridge の設定ダイアログが立ち上がった。Finish ボタンをクリックした。
BeMicro_MAX10_98_141019.png

・master_0 という名前の JTAG to Avalon Master Bridge が Qsys に入った。
BeMicro_MAX10_99_141019.png

・master_0 の master と fingertemp_adc の sequencer_csr を接続した。配線の白丸をクリックすると簡単に配線を接続できる。
BeMicro_MAX10_100_141019.png

・IP Catalog の検索に pipeline と入力した。

・Avalon-MM Pipline Bridge をダブルクリックした。
BeMicro_MAX10_101_141019.png

・Avalon-MM Pipline Bridge の設定ダイアログが表示された。

・Data width を 16 に設定した。Finish ボタンをクリックした。
BeMicro_MAX10_102_141019.png

・Avalon-MM Pipline Bridge が mm_bridge_0 という名前でインスタンスされた。

・mm_bridge の m0 と fingertemp_adc の sequencer_csr を接続した。配線の白丸をクリックすると簡単に配線を接続できる。
BeMicro_MAX10_103_141019.png

・mm_bridge の s0 の export をダブルクリックした。 mm_bridge_0_s0 という名前でインスタンスされた。
BeMicro_MAX10_104_141019.png

・下図の様に配線してエラーが無くなった。
BeMicro_MAX10_105_141019.png

・File メニューから Save As... を選択した。
BeMicro_MAX10_106_141019.png

・fingertemp_adc という名前でセーブした。
BeMicro_MAX10_107_141019.png

・Generate メニューから Generate HDL... を選択した。
BeMicro_MAX10_108_141019.png

・Generation ダイアログで、Create HDL design files for synthesis にVHDL を選択した。Generate ボタンをクリックした。
BeMicro_MAX10_109_141019.png

・生成が完了した。
BeMicro_MAX10_110_141019.png

・Finish ボタンをクリックした。これで、Qsys での作業は終了した。
BeMicro_MAX10_111_141019.png
  1. 2014年10月21日 04:52 |
  2. Altera_MAX10
  3. | トラックバック:0
  4. | コメント:0

Altera Wiki , BeMicro Max 10 の Finger Temperature Tutorial をやってみた1

Altera Wiki , BeMicro Max 10Finger Temperature Tutorial をやってみた。
Quartus II の BeMicro MAX 10 の Intro to FPGA Simple PWM Tutorial をやったので、今度はQsys を使ったチュートリアルをやってみることにした。

この演習は8個のLEDが指の温度でPWMを使って明るさを変化させるチュートリアルの様だ?

・最初は、Fingertemp Lab Files (QAR) をダウンロードして、Quartus II で読み込んだ。

・最初にコンパイルを行ったが、いくつかのファイルが無いと言われてエラーになった。
BeMicro_MAX10_80_141019.png

・右の IP Catalog を展開して ALTPLL をダブルクリックした。
BeMicro_MAX10_81_141019.png

・Save IP Variation ダイアログが立ち上がった。fingertemp_pll と名前を指定した。

・VHDLを選択して、OKボタンをクリックした。
BeMicro_MAX10_82_141019.png

・MegaWizard Plug-In Manager (ALTPLL) が立ち上がった。

・What is the frequency of the inclk0 input? に 50.000 MHz を入力した。Next > ボタンをクリックした。
BeMicro_MAX10_83_141019.png

・Bandwidth/SS タブで、How would you like to specify the bandwidth setting? のPreset のラジオボタンをクリックして選択し、High に設定した。Next > ボタンをクリックした。
BeMicro_MAX10_84_141019.png

・3. Output Clocks -> clk_c0 タブで、c0 をEnter output clock parameter -> Clock division factor を 5 に変更した。
BeMicro_MAX10_85_141019.png

・3. Output Clocks -> clk_c1 タブで、c1 の Use this clock にチェックを入れて、下図のように設定した。
BeMicro_MAX10_86_141019.png

・5. Summary で Finish ボタンをクリックした。
BeMicro_MAX10_87_141019.png

・Quartus II IP Files ダイアログが表示されたので、Yes ボタンをクリックした。
BeMicro_MAX10_88_141019.png

・Quartus II のProject Navigator -> Files タブに、fingertemp_pll.qip が表示された。
BeMicro_MAX10_89_141019.png

・上の図で Qsys アイコンをクリックした。

・Qsys 画面が表示された。
BeMicro_MAX10_90_141019.png
  1. 2014年10月20日 04:40 |
  2. Altera_MAX10
  3. | トラックバック:0
  4. | コメント:0

BeMicro MAX 10 の Intro to FPGA Simple PWM Tutorial をやってみた2

BeMicro MAX 10 の Intro to FPGA Simple PWM Tutorial をやってみた1”の続き。

今回も、Altera Wiki の BeMicro MAX 10 の Intro to FPGA Simple PWM Tutorial の続きをやってみた。前回は実機動作まで終了しているが、今回は、コンパイル後のFPGA配線の様子の見方やタイミング制約の書け方を実習する。

BeMicro Max 10 Simple PWM Tutorial (PDF) 23ページの MODULE 3.EXPLORING THE DETAILS OF YOUR DESIGN で、top ファイルを右クリックし、右クリックメニューから Locate -> Locate in RTL Viewer を選択した時のRTL 図を下に示す。
BeMicro_MAX10_70_141016.png

・24ページ Part B: Explore design in device with the Chip Planer の top ファイルを右クリックし、右クリックメニューから Locate in Chip Planer (Florplan and Chip Editor) を選択した時の画面を下に示す。
BeMicro_MAX10_71_141016.png

・25ページ Part C: Explore design in device with the Resource Property Editor。すでに、Resource Property Editor は表示されていた。これはshiftreg を見ている。
BeMicro_MAX10_72_141016.png

・26ページ、3.1 Part D: Gather information from the Compilation Report で、Compilation Report -> Fiter -> Resource Utilzation by Entity を選択して、リソースの使用状況を表示した。
BeMicro_MAX10_73_141016.png

MODULE 4. SETING UP TIMING CONSTRAINTS (27ページ)

・Quartus II の Tools -> TimeQuest Timinig Analyzer を選択した。

・TimeQuest GUI の Tools -> TimeQuest Timinig Analyzer Wizard を選択した。

・28ページ 5) でクロック周期に 20ns を入力している。
BeMicro_MAX10_74_141016.png

・29ページの Summary を下に示す。クロックの制約のみ追加している。
BeMicro_MAX10_75_141016.png

・30ページの図。Qurtus II の Assignments -> Settings -> TimeQuest Timing Analyzer で pwm_led.sdc を使用する。
BeMicro_MAX10_76_141016.png

・TimeQuest で、Tasks -> Report Clocks を見ると、PLLから出力するクロックも見ることができた。これは便利だ。(31ページ)
BeMicro_MAX10_77_141016.png

・TimeQuest で、Report Fmax Summary を見た。(31ページ)
BeMicro_MAX10_78_141016.png

・Time Quest を閉じて、Quartus II でコンパイルしてから、1200mV 85C Model の Fmax Summary を見た。(32ページ)
BeMicro_MAX10_79_141016.png
  1. 2014年10月17日 04:31 |
  2. Altera_MAX10
  3. | トラックバック:0
  4. | コメント:0

BeMicro MAX 10 の Intro to FPGA Simple PWM Tutorial をやってみた1

Altera Wiki の BeMicro MAX 10 の Intro to FPGA Simple PWM Tutorial をやってみた。
今回は、BeMicro Max 10 Simple PWM Tutorial (PDF) の出来が良く、そのままやれば大丈夫ということで、要点のみの画像をブログ記事に貼ることにした。

・最初の画像は、BeMicro Max 10 Simple PWM Tutorial (PDF) の9ページ 2.3 Examine the Design Files の辺り、pwm_led_top.bdf を開いたところだ。
BeMicro_MAX10_62_141015.png

・次は、ALTPLLをインスタンス、その他のHDLファイルのシンボルをインスタンスして、pwm_led_top.bdf を完成させたところだ。BeMicro Max 10 Simple PWM Tutorial (PDF)の 2.6 Complete the Schematic が終了した17ページ。
BeMicro_MAX10_63_141015.png

・18ページの Part D: Analyze the Design and Asign Pin で、Analysis and Elaboration を行った。
BeMicro_MAX10_64_141015.png

・19ページの信号割り当て表を元に、信号ピンの割り当てを行った。
BeMicro_MAX10_65_141015.png

・20ページのコンパイルを行った。
BeMicro_MAX10_66_141015.png

・BeMicro MAX 10 をUSBで接続して、コンフィギュレーションを行った(22ページ)
BeMicro_MAX10_67_141015.png

・BeMicro MAXI 10 のLEDは全消灯している。 SW1 を押すと、D1が点灯し D5 が暗く点灯する。SW2を押すとD1が消灯して、D5も消灯する。SW1 が +1 ならば、SW2 は -1 だ。
BeMicro_MAX10_68_141016.jpg

・SW1を押していくごとに、D1 ~ D4 がバイナリで点灯して行って、値が大きくなるごとに D5 の明るさが明るくなる。下の写真はD5の明るさが最大の時だ。
BeMicro_MAX10_69_141016.jpg
  1. 2014年10月16日 06:00 |
  2. Altera_MAX10
  3. | トラックバック:0
  4. | コメント:0

BeMicro MAX 10 の Full featured Reference Design をやってみた4(実機でテスト)

BeMicro MAX 10 の Full featured Reference Design をやってみた3(MAX10をコンフィグレーション)”の続き。

前回は、Nios II からMAX10 をコンフィグレーションした。今回は、Nios II からソフトウェアを実行してリファレンス・デザインを実行した。

・Nios II の Run As -> 3 Nios II Hardware を選択した。
BeMicro_MAX10_49_141014.png

・Run Configurations ダイアログで、adc_example2_Nios II Hardware configuration ができた。
BeMicro_MAX10_50_141014.png

・Target Connection タブに x 印が付いていたので、Target Connection タブに移り、Refresh Connections ボタンをクリックすると x 印が消えた。

・Download の Download ELF to selected target system にチェックが入っていることを確認しよう。

・Apply ボタンをクリックした。
BeMicro_MAX10_51_141014.png

・Debugger タブ。
BeMicro_MAX10_52_141014.png

・Source タブ。
BeMicro_MAX10_53_141014.png

・Common タブ。Apply ボタンをクリックして、Run ボタンをクリックした。
BeMicro_MAX10_54_141014.png

・adc_example が実行された。
BeMicro_MAX10_55_141014.png

・Nios II Console を最大化した。
BeMicro_MAX10_56_141014.png

次からは、Example を次々同様に試してみた。Nios II Console を最大化した時の表示を下に示す。

・dac_loopback
BeMicro_MAX10_57_141014.png

・serial_flash_example
BeMicro_MAX10_58_141014.png

・temp_sense_example
BeMicro_MAX10_59_141014.png

・timer_example これは、表示が少ないので、Nios II Console を最大化していない。
BeMicro_MAX10_60_141014.png

・最後に、Nios II Hardware の configuration を下に示す。
BeMicro_MAX10_61_141014.png
  1. 2014年10月15日 04:18 |
  2. Altera_MAX10
  3. | トラックバック:0
  4. | コメント:0

BeMicro MAX 10 の Full featured Reference Design をやってみた3(MAX10をコンフィグレーション)

BeMicro MAX 10 の Full featured Reference Design をやってみた2(Nios II)”の続き。

Nios II で、コンパイルすることができたので、BeMicro MAX10 をパソコンに接続して確かめてみた。

・BeMicro MAX10 をUSBに接続した。これで電源が入る。

・USB電流計を接続して、電流を測定したら、0.11A 消費していた。ソフトウェアを起動するときには、0.12Aになった。十分にUSBの規格内だ。

・Nios II のNios II -> Quartus II Programmer を選択した。
BeMicro_MAX10_41_141013.png

・Quartus II 64-bit Programmer が立ち上がった。 Hardware Setup... ボタンをクリックした。
BeMicro_MAX10_42_141013.png

・Hardware Setup ダイアログが立ち上がった。Currently selected hardware をクリックして、USB-Blaster [USB-0] を選択した。
BeMicro_MAX10_43_141013.png

・Currently selected hardware が、USB-Blaster [USB-0] に変更された。OKボタンをクリックした。
BeMicro_MAX10_44_141013.png

・Quartus II 64-bit Programmer の Hardware Setup が USB-Blaster [USB-0] に変更された。

・Add File... ボタンをクリックした。
BeMicro_MAX10_45_141013.png

・Select Programming File ダイアログが開いた。C:\HDL\altera\Altera_work\BeMicro_MAX10\BeMicro_Max10_restored\output_files に行って、top.sof を選択した。Open ボタンをクリックした。
BeMicro_MAX10_46_141013.png

・上のペインに、top.sof が入った。Start ボタンをクリックした。
BeMicro_MAX10_47_141013.png

・MAX10がコンフィグレーションされた。成功だ。
BeMicro_MAX10_48_141013.png
  1. 2014年10月14日 04:47 |
  2. Altera_MAX10
  3. | トラックバック:0
  4. | コメント:0
»