FC2カウンター FPGAの部屋 QuartusⅡ

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

FPGAの部屋

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

USB-Blaster のインストール(Qaurtus II 14.0.2)

BeMicro Max10 をUSBポートに接続した所、LEDがカウントを始めた。
BeMicro_MAX10_40_141013.jpg

・しかし、デバイス マネージャーを見ると、USB-Blaster が認識されていなかった。(Qaurtus II 14.0.2)
BeMicro_MAX10_36_141013.png

・USB-Blaster を右クリックして、右クリックメニューからドライバソフトウェアの更新(P)... を選んだ。

・ドライバー ソフトウェアを手動で検索してインストールします。の方をクリックした。
BeMicro_MAX10_38_141013.png

・14.0\quartus\drivers を選択して、次をクリックした。(USB-Blaster のフォルダを選んでもダメでした)
BeMicro_MAX10_37_141013.png

・ドライバがインストールされ、Altera USB-Blaster として認識された。
BeMicro_MAX10_39_141013.png
  1. 2014年10月13日 05:54 |
  2. QuartusⅡ
  3. | トラックバック:0
  4. | コメント:0

AlteraのFPGAでのクロック出力とデータ出力3(Assignment Editorを使ってみる2)

AlteraのFPGAでのクロック出力とデータ出力2(Assignment Editorを使ってみる1)”では、Assignment Editorを使用してFAST_OUTPUT_REGISTER属性を入れてみた。今回は、FAST_INPUT_REGISTER属性を試してみることにする。(Quartus II 10.0 SP1を使用)

前回同様に、Assignment Editorで、今度はdinにFast input Registerを設定する。下が設定している途中。
CLK_DATA_test_21_101026.png

Createボタンをクリックすると、8ビットのdinにFast input Register属性が指定された。
CLK_DATA_test_22_101026.png

これでコンパイルして、din[0]を見てみると、I/Oセル内のレジスタが使われていなかった。
CLK_DATA_test_23_101026.png

実際にdin[0]がd0[0]にどうつながっているかと言うと下の図の用に普通の配線でつながっている。
CLK_DATA_test_24_101026.png

Fast input Registerを設定したのになぜ?というところだが、”HardCopy シリーズ・ハンドブック Volume 1”(なぜか?HardCopyだが)この20ページによると、fast_input_registerは、”I/O セルまたは隣接LAB に、高速入力レジスタを実装。”だそうだ。必ずしもI/Oセルに実装されるものではないらしい?

CLK_DATA_test.qsfを貼っておく。

set_global_assignment -name FAMILY "Cyclone III"
set_global_assignment -name DEVICE EP3C16F484C6
set_global_assignment -name TOP_LEVEL_ENTITY CLK_DATA_test
set_global_assignment -name ORIGINAL_QUARTUS_VERSION "10.0 SP1"
set_global_assignment -name PROJECT_CREATION_TIME_DATE "05:20:24 OCTOBER 21, 2010"
set_global_assignment -name LAST_QUARTUS_VERSION "10.0 SP1"
set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0
set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85
set_global_assignment -name ERROR_CHECK_FREQUENCY_DIVISOR 1
set_global_assignment -name NOMINAL_CORE_SUPPLY_VOLTAGE 1.2V
set_global_assignment -name VERILOG_FILE CLK_DATA_test.v
set_global_assignment -name QIP_FILE clk_data_test_pll.qip
set_global_assignment -name PARTITION_NETLIST_TYPE SOURCE -section_id Top
set_global_assignment -name PARTITION_FITTER_PRESERVATION_LEVEL PLACEMENT_AND_ROUTING -section_id Top
set_global_assignment -name PARTITION_COLOR 16764057 -section_id Top
set_global_assignment -name LL_ROOT_REGION ON -section_id "Root Region"
set_global_assignment -name LL_MEMBER_STATE LOCKED -section_id "Root Region"
set_global_assignment -name STRATIX_DEVICE_IO_STANDARD "2.5 V"
set_global_assignment -name MISC_FILE "H:/HDL/Altera/qdesigns/DE0/Test/CLK_DATA_test/CLK_DATA_test.dpf"
set_location_assignment PIN_AA3 -to clk_out
set_location_assignment PIN_Y2 -to dout[0]
set_location_assignment PIN_Y1 -to dout[1]
set_location_assignment PIN_M8 -to dout[2]
set_location_assignment PIN_N8 -to dout[3]
set_location_assignment PIN_T3 -to dout[4]
set_location_assignment PIN_M7 -to dout[5]
set_location_assignment PIN_P3 -to dout[6]
set_location_assignment PIN_M5 -to dout[7]
set_location_assignment PIN_G1 -to reset
set_location_assignment PIN_G2 -to clk
set_location_assignment PIN_V1 -to din[0]
set_location_assignment PIN_N2 -to din[1]
set_location_assignment PIN_V4 -to din[2]
set_location_assignment PIN_T4 -to din[3]
set_location_assignment PIN_W1 -to din[4]
set_location_assignment PIN_U2 -to din[5]
set_location_assignment PIN_U1 -to din[6]
set_location_assignment PIN_V2 -to din[7]
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to dout[0]
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to dout[1]
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to dout[2]
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to dout[3]
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to dout[4]
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to dout[5]
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to dout[6]
set_instance_assignment -name FAST_OUTPUT_REGISTER ON -to dout[7]
set_instance_assignment -name FAST_INPUT_REGISTER ON -to din[0]
set_instance_assignment -name FAST_INPUT_REGISTER ON -to din[1]
set_instance_assignment -name FAST_INPUT_REGISTER ON -to din[2]
set_instance_assignment -name FAST_INPUT_REGISTER ON -to din[3]
set_instance_assignment -name FAST_INPUT_REGISTER ON -to din[4]
set_instance_assignment -name FAST_INPUT_REGISTER ON -to din[5]
set_instance_assignment -name FAST_INPUT_REGISTER ON -to din[6]
set_instance_assignment -name FAST_INPUT_REGISTER ON -to din[7]
set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top

  1. 2010年10月27日 04:36 |
  2. QuartusⅡ
  3. | トラックバック:0
  4. | コメント:0

AlteraのFPGAでのクロック出力とデータ出力2(Assignment Editorを使ってみる1)

さて、”AlteraのFPGAでのクロック出力とデータ出力1”では、Verilogだけ書いて、Quartus IIおまかせでやってみたが、今度は、Assignment Editorを使ってみることにした。長船さんに教えていただいたFAST_OUTPUT_REGISTER属性と、FAST_INPUT_REGISTER属性を試してみることにする。(Quartus II 10.0 SP1を使用)

最初に、Assignment Editorを立ち上げる。Assignmentメニューから、Assignment Editorを選択する。もしくは、Assignment Editorアイコンをクリックする。
CLK_DATA_test_8_101025.png

Assignment Editorが起動した。でも、何も項目が入っていない。これでは、Assignmentできない。
CLK_DATA_test_9_101025.png

これは。。。というわけで、IOピンを制約しないとだめなんだろうと思った。そこで、Assignment Editorを終了して、バックアノテーションしてみることにした。
AssignmentメニューからBack-Annotate Assignments... を選択する。
CLK_DATA_test_10_101025.png

Back-Annotate Assignmentsダイアログが開く。Pin & device assignmetsのラジオボタンをチェックしてOKボタンをクリックすると、Pinとデバイスを固定できるはず。。。OKボタンを押した。
CLK_DATA_test_11_101025.png

Assignment Editorを開くと今度は、固定されたIOピンが表示された。(後で、IOピンをバックアノテーションしなくても大丈夫そうということがわかりました)(とりあえず書いたので、このままにします、IOピンなどのバックアノテートのサンプルとします。ただしAlteraのコンフィグ関係のIOマップは消去しました)
CLK_DATA_test_12_101026.png

次に、出力ピンにFast Output Register属性を付加する。
下のTo Create New assignmentsからToの下のスペースを ダブルクリックすると、Node Finderのアイコンが出てくるので、それをクリックする。
CLK_DATA_test_13_101026.png

Node Finderのダイアログが出てくるので、Listボタンをクリックする。
CLK_DATA_test_14_101026.png

ノードが左のNodes Found:に表示されれる。8個のdoutを選択して、真ん中の>ボタンをクリックすると、右のSelected Nodes:に8このdoutが表示される。これでOKボタンをクリックする。
CLK_DATA_test_15_101026.png

これで8このdoutがToの項に入った。次にAssignment Nameを入力する。これは、プルダウンメニューで、Fast Output Registerを選択する。
CLK_DATA_test_16_101026.png

次に、Valueを入力する。これもプルダウンメニューでOnを選択する。
CLK_DATA_test_17_101026.png

必要な値は全部入った。Createボタンをクリックする。
CLK_DATA_test_18_101026.png

これで、dout[0]~dout[8]にFast Output Register属性が設定された。
CLK_DATA_test_19_101026.png

Saveして、Assignment Editorを終了し、もう一度コンパイルする。
Chip Plannerを起動して、dout[3]をResource Property Editorで見てみた。d2[3]のFFがI/Oセルに実装された。
CLK_DATA_test_20_101026.png

FAST_INPUT_REGISTER属性を試すところまで行かなかったが、次回試してみることにする。

# Alteraのアサインメント・エディタの日本語マニュアルが古くて、10.0 SP1のGUIにあってなかった。どうやってやるのか迷ってしまった。英語のマニュアルも詳しい説明書が見つからなかった。
  1. 2010年10月26日 05:34 |
  2. QuartusⅡ
  3. | トラックバック:0
  4. | コメント:0

MegaWizard Plug-In Manager で作った同期FIFOの動作を確かめる2(シミュレーション)

遅くなってしまったが、”MegaWizard Plug-In Manager で作った同期FIFOの動作を確かめる1”の続き。

今度はテストベンチを作る。XilinxのISEだとテストベンチのテンプレートを生成してくれる機能があるが、Quartus II では見つからなかったので、全部自分で書いた。即興で書いてみたテストベンチを下に示す。

// SFIFO_test_tb.v

`default_nettype none
`timescale 1ns / 1ps

module SFIFO_test_tb;
    reg        clk;
    reg        [16:0] data;
    reg        rdreq;
    reg        wrreq;
    wire    empty;
    wire    full;
    wire    [16:0] q;
    wire    [3:0] usedw;
    integer i;
    
    parameter    CLK_PERIOD = 40;
    parameter    DELAY_TIME = 10;
    
    SFIFO_test SFIFO_test_inst (
        .clock(clk),
        .data(data),
        .rdreq(rdreq),
        .wrreq(wrreq),
        .empty(empty),
        .full(full),
        .q(q),
        .usedw(usedw)
    );
    
    always begin
       #(CLK_PERIOD/2)    clk = 1'b1 ;
       #(CLK_PERIOD/2)    clk = 1'b0 ;
    end

    initial begin
        data = 17'd0;
        rdreq = 1'b0;
        wrreq = 1'b0;
        #(DELAY_TIME*2);
        
        @(posedge clk);
        #DELAY_TIME;
        
        for (i=0; i<9; i=i+1) begin
            @(posedge clk);
            #DELAY_TIME;
            data = data + 17'd1;
            wrreq = 1'b1;
        end
        
        @(posedge clk);
        #DELAY_TIME;
        wrreq = 1'b0;
        
        @(posedge clk);
        #DELAY_TIME;
        
        for (i=0; i<9; i=i+1) begin
            @(posedge clk);
            #DELAY_TIME;
            rdreq = 1'b1;
        end
        
        @(posedge clk);
        #DELAY_TIME;
        rdreq = 1'b0;

        @(posedge clk);
        #DELAY_TIME;
        @(posedge clk);
        #DELAY_TIME;
        $stop;
    end
endmodule


これをModelSim AE 6.5eでシミュレーションしようとして起動したら、ライセンス・エラーになってしまった。
SFIFO_test_13_100930.png

何ででしょう?ModelSim AE 6.5bは問題なく起動するだけど?ネットで検索してもわからなかった。
(2010/10/01:追記) インストールしたModelSim AE 6.5eは購入バージョンでFreeバージョンではありませんでした。ダウンロード・センターから種別を選んでダウンロードすると、購入版になってしまいます。Quartus II ウェブ・エディション ソフトウェアから、Windows 用 ModelSim-Altera Starter Edition v10.0 のサービスパック 1 (541 MB)のリンクをクリックすると、ModelSim-Altera Starter Editionの6.5eがダウンロードできました。インストールすると問題なく立ち上がりました。アプロさん、ありがとうございました。

しょうがないので、ModelSim AE 6.5bを起動して、シミュレーションすることにした。ModelSimを家で起動するのは久しぶりだ。しかもVerilog HDL で、Altera では”無償ツールで実践する「ハード・ソフト協調検証」をやってみる”以来だと思う。
さて、ModelSim AE 6.5bを起動して、プロジェクトを作り、Verilog HDLファイルをADDして、コンパイルした。Simulationをスタートさせようとしたのだが、scfifoがないと怒られてしまった。
SFIFO_test_14_100930.png

あれ?これはどのライブラリをADDすればよいのだったか?良くわからないので、ライブラリが付け易いVeritakでやってみることにした。
alteraのライブラリを下のように選択したところ、シミュレーションが成功した。
SFIFO_test_15_100930.png

シミュレーション波形を下に示す。
SFIFO_test_16_100930.png

emptyが0になった時に、qに00001が出ているので、Show-ahead synchronous FIFO mode となっているのがわかった。
ModelSim AE 6.5bに戻って、SimulateメニューからStart Simulation...を選択して、Start Simulationダイアログを出す。libraries タグから220model_verとaltera_mf_verを選択した。
SFIFO_test_17_100930.png

これでOKボタンをクリックしところシミュレーションをスタートすることができた。Transcriptウインドウでrun -all コマンドを実行すると、シミュレーションを実行することができた。(当然、信号はWaveウインドウにいれました)
SFIFO_test_18_100930.png

次に、fullが1になるのを見るために、16回データを書き込むようにしてみた。(for (i=0; i<16; i=i+1) begin)
これで、ModelSim AE 6.5bでシミュレーションしてみた結果が下の図だ。
SFIFO_test_19_101001.png

やはり、usedwが0、fullが1になっているのがわかった。
  1. 2010年09月30日 05:43 |
  2. QuartusⅡ
  3. | トラックバック:0
  4. | コメント:4

MegaWizard Plug-In Manager で作った同期FIFOの動作を確かめる1

Xilinx用に作ったSDR SDRAMコントローラには、FIFOモジュールがあって、それは分散RAM(ルックアップテーブルを使用したRAM)を使用している。Altera のAN307では、MLABという小さい容量のメモリがあったので、それを使おうと思っていたら、どうやらCycloneシリーズにはMLABはないようだ。仕方がないので、勿体無いがM9K Memory Blockを使うしかない。
それだったら、Altera の同期FIFOの動作を見たことがなかったので、MegaWizard Plug-In Manager で生成してシミュレーションを行うことにした。
Quartus II のバージョンは10.0SP1。最初にQuartus II のToolsメニューからMegaWizard Plug-In Manager を選択する。そうするとMegaWizard Plug-In Manager ダイアログが開く。Next >をクリックする。
SFIFO_test_1_100924.png

次のダイアログで、左のペインのMemory Compilerを展開して、FIFOを選択する。Verilogを使うので、Verilog HDLのラジオボタンをクリックする。FIFOのファイル名を書く。Next >をクリックする。
SFIFO_test_2_100924.png

FIFOのダイアログが開く。FIFOの幅と深度を設定する。同期FIFOなので、ReadもWriteも同じクロックを選択する。Next >をクリックする。
SFIFO_test_3_100924.png

次は、fullやempty, usedwなどの設定だ。デフォルトのままNext >をクリックする。
SFIFO_test_4_100925.png

Show-ahead synchronous FIFO modeに設定する。Next >をクリックする。
SFIFO_test_5_100925.png

次はどれをクリックしてもResource Usageは変わらなかったし、デフォルトとする。Next >をクリックする。
SFIFO_test_6_100925.png

次もデフォルトのままとする。Next >をクリックする。
SFIFO_test_7_100925.png

Verilog HDL black-box file(SFIFO_module_bb.v)にはすでにチェックが入っているので、Instantiation template file(SFIFO_module_inst.v) ファイルにもチェックを入れて、Finishボタンをクリックする。
SFIFO_test_8_100925.png

なぜか?今生成したIPを自分のデザインに加えても良いか?というダイアログが出てきた。これは、自分のデザインに加えたくてIPを生成しているので、Automatically add Quartus II IP Files to all projects にチェックを入れてYseボタンをクリックした。
SFIFO_test_9_100925.png

これでSFIFO_moduleが生成された。SFIFO_module_bb.vの中身を下に示す。その他はコメントがいっぱいだが、実際のコードはこれだけだ。

module SFIFO_module (
    clock,
    data,
    rdreq,
    wrreq,
    empty,
    full,
    q,
    usedw);

    input      clock;
    input    [16:0]  data;
    input      rdreq;
    input      wrreq;
    output      empty;
    output      full;
    output    [16:0]  q;
    output    [3:0]  usedw;

endmodule


Instantiation template fileのSFIFO_module_inst.vを下に示す。

SFIFO_module    SFIFO_module_inst (
    .clock ( clock_sig ),
    .data ( data_sig ),
    .rdreq ( rdreq_sig ),
    .wrreq ( wrreq_sig ),
    .empty ( empty_sig ),
    .full ( full_sig ),
    .q ( q_sig ),
    .usedw ( usedw_sig )
    );


さて、トップファイルのSFIFO_test.vファイルを作って、プロジェクトに入れた。下にSFIFO_test.vファイルを示す。

// SFIFO_test.v 

`default_nettype none

module SFIFO_test(
    input    wire    clock,
    input    wire [16:0]    data,
    input    wire    rdreq,
    input    wire    wrreq,
    output    wire    empty,
    output    wire    full,
    output    wire [16:0]    q,
    output    wire [3:0]    usedw
);
    
SFIFO_module    SFIFO_module_inst (
    .clock ( clock ),
    .data ( data ),
    .rdreq ( rdreq ),
    .wrreq ( wrreq ),
    .empty ( empty ),
    .full ( full ),
    .q ( q ),
    .usedw ( usedw )
    );
endmodule


これで、一旦コンパイルしてみたところ、正常に終了した。
SFIFO_test_10_100925.png

Chip Plannerを立ち上げて、どのようにCyclone III の素子が使われているかを見てみた。
SFIFO_test_11_100925.png

ピンクの四角の中に、ちょっとだけだが使われている。この部分を拡大すると。
SFIFO_test_12_100925.png

M9K Memory Blockが使われているのがわかる。

今回はこの辺で。次はテストベンチを作って、シミュレーションをしてみるが、Quartus II ではテストベンチのテンプレートを生成してくれる方法はないのかな?
  1. 2010年09月24日 06:06 |
  2. QuartusⅡ
  3. | トラックバック:0
  4. | コメント:4

XilinxのROMをAlteraのROMへ変換する

なひたふさんが、OV7670を使って1日でカラー画像をUSB経由でホストPCに表示するようにしたそうです。その記事は”OV7670のカラー表示”です。凄い技術力とバイタリティーですね。尊敬します。設定をUSB経由でGUIでいじれるようにしたのが素敵ですね。Spartan-3A Starter Kitでは、内部プロセッサでロータリーエンコーダーを使って、いじれるようにすれば良さそうですね。液晶画面に表示して。
それはそのうち、やることにして、DE0でCMOSカメラの出力をディスプレイに表示する回路を進めています。
現在はSCCBインターフェース回路をVHDLからVerilogに変換するところです。大体、変換は終了しました。

SCCB_reg_values_ROM.vhdはXilinx独自の記述でROMを生成しているが、Alteraでも生成できるのか?確かめてみることにした。VHDLからVerilogのXilinxのXST用ROM生成、初期化データロードファイルを作って、Quartus II 10.0SP1でコンパイルしてみることにした。
バグの修正が完了してコンパイルできたが、RAMの初期化データを見る方法がわからない。Chip Plannerでも初期化データを見ることは出来ないみたい?下がChip Plannerの画面。
CamDisp_DE0_2_100921.png

SCCB_reg_values_ROM.vで使用しているM9K Embedded Memory BlockをChip Planner上からダブルクリックすると、Resource Property Editor が起動した。
CamDisp_DE0_3_100921.png

これでも、初期化データは見れる気配がない。どうやって初期化データを見るのか?
ちなみに、書き換えたSCCB_reg_values_ROM.vを下に示す。

// SCCB_reg_valuse_ROM.v
// ROM生成、初期化データロード

`default_nettype none

module SCCB_reg_values_ROM (
    input    wire    clk,
    input    wire [7:0]     address,
    output    reg [15:0]    dout
);

    reg    [15:0] ram [0:255];
    
    initial begin
        $readmemh("SCCB_reg_values.data", ram, 0, 255);
    end
    
    always @(posedge clk) begin
        dout <= ram[address];
    end
endmodule

`default_nettype wire


初期化がうまく入っているのか?それとも無視されているのか?はQuartus IIのMessageウインドウを見ていたのではわからなかった。
CamDisp_DE0_4_100921.png

結局、Memory Blockが初期化されているか?いないかが良くわからないので、どうやって初期化するか、調べてみた。そうしたら、7. Quartus II インテグレーテッド・シンセシスの48ページに、ram_init_file 属性を適用する例が載っていた。下に引用する。

例7–35. Verilog-2001 例:ram_init_file 属性を適用
(* ram_init_file = "my_init_file.mif" *) reg [7:0] mem[0:255];


やはり、MIFファイルを作る必要がありそうだ。MIFファイルは前回、”QuartusⅡでSignalTapⅡを試してみるまでの準備3(キャラジェネROMデータをMIFに変換)”で、Rubyを使って、キャラジェネデータをMIFファイルに変換しているので、今回も変換するRubyスクリプトを作ることにする。

でも、MIFファイルでMemory Blockを初期化しても、本当に初期化されているかツールで見えないと困りますよね?どうやってみるんでしょうか?

(2010/9/23:追記)
FPGA BBSでくりさんに教えていただいたのですが、コンパイル時に、Memory Blockにどのファイルを読み込んだかは、Compilation ReportのFitter->Resource Section->RAM Summaryで確かめることができるそうです。くりさん、いつもありがとうございます。
早速確かめてみました。RAM Summaryを見ると、CamDisp_SDRAM.ram0_SCCB_reg_values_ROM_c9d0e141.hdl.mifという名前のMIFファイルが指定されていました。
CamDisp_DE0_5_100923.png

CamDisp_SDRAM.ram0_SCCB_reg_values_ROM_c9d0e141.hdl.mifの内容を見てみると、$readmemh("SCCB_reg_values.data", ram, 0, 255);で指定したファイルのデータが入っていました。
SCCB_reg_values.dataの内容に一部を下に示します。

1713
1801
32B6
1902
1A7A
030A
73F0
7A20
7B10
7C1E


下に、CamDisp_SDRAM.ram0_SCCB_reg_values_ROM_c9d0e141.hdl.mifの内容の一部を示します。

-- begin_signature
-- SCCB_reg_values_ROM
-- end_signature
WIDTH=16;
DEPTH=256;

ADDRESS_RADIX=UNS;
DATA_RADIX=BIN;

CONTENT BEGIN

..... 省略 ......

    10 :    0111110100110101;
    9 :    0111110000011110;
    8 :    0111101100010000;
    7 :    0111101000100000;
    6 :    0111001111110000;
    5 :    0000001100001010;
    4 :    0001101001111010;
    3 :    0001100100000010;
    2 :    0011001010110110;
    1 :    0001100000000001;
    0 :    0001011100010011;
END;


同じ内容になっている。ということはXilinxと同じ方法でMemory Blockの初期化ができることがわかりました。Quartus II のバージョンは10.0SP1です。
  1. 2010年09月21日 05:58 |
  2. QuartusⅡ
  3. | トラックバック:0
  4. | コメント:0

Quartus2 Ver9.1を使ってみた

Quartus2 Ver.9.1からNios2/eコアが無償化されたということを聞いたので、確かめてみた。つまり、なんちゃらかんちゃらtime_limited.sof ではなく、ちゃんとスタンドアロンで動く.sof ができるはず。。。
Quartus2 Ver.9.1をインストールしたので、以前の7セグメントLEDのダイナミック点灯AvalonMMスレーブを作った時点のVer.9.1のプロジェクト(”Avalon-MMスレーブペリフェラル4(Nios2 IDEで7セグLEDをテスト”)をコピーして、Quartus2 Ver.9.1からプロジェクトを起動してみたところ、問題なく変換出来て、Quartus2が立ち上がった。
さて、さっそくSOPC Builder を立ち上げる。問題なく変換して立ち上がった。CPUを見てみると、Nios2/s だった。そのままにしてGenerate。Quartus2に戻ってコンパイルした。
Quartus2_v91_1_091108.png

コンパイルが通って、Programmerを立ち上げるとnios2_sdram_led_time_limited.sof がプログラムできるようになる。ファイルの日付を見ると今日の日付になっているし、以前と同様に限定されたSOFファイルは出来るようだ。

次に、SOPC Builder を立ち上げ、CPUをNios2/e に変更した。
Quartus2_v91_2_091108.png

Generate して、Quartus2 でコンパイルし、プロジェクトのフォルダを見ると、nios2_sdram_led.sof が出来ていました。
Quartus2_v91_3_091108.png

ちゃんと、nios2_sdram_led.sof が出来て、機能を確認できたけど、JTAG-UART でやり取りなので、今までとあまり変わらないはず。とりあえず、基板を取りだすのが面倒なので、今日はこの辺で終了。
  1. 2009年11月08日 06:25 |
  2. QuartusⅡ
  3. | トラックバック:0
  4. | コメント:0
»