FC2カウンター FPGAの部屋 QuartusⅡでSignalTapⅡを試してみるまでの準備2(BRAMを書き換える)
FC2ブログ

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

FPGAの部屋

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

QuartusⅡでSignalTapⅡを試してみるまでの準備2(BRAMを書き換える)

QuartusⅡでSignalTapⅡを試してみるまでの準備1(テキストエディタの日本語表示)”の続き。
キャラクタ・ディスプレイ・コントローラはframe_buffer.v とchar_gen_rom.v にBRAMを使用しているので、これをAltera用に書き換える必要がある。
まずは、frame_buffer.v から書き換えることにする。これは、Dual-Port Memoryをインスタンシエーションしている。frame_buffer.v のBRAM部分を下に示す。

    generate
    genvar i;
        for (i=4; i>=0; i=i-1) begin : FRAME_BUFFER_GEN
            RAMB16_S2_S2 FRAME_BUFFER (
                .DOA(processor_dout[i*2+1 : i*2]),
                .DOB(display_dout[i*2+1 : i*2]),
                .ADDRA(processor_addr),
                .ADDRB(display_addr),
                .CLKA(clk),
                .CLKB(clk),
                .DIA(processor_din[i*2+1 : i*2]),
                .DIB(2'b00),
                .ENA(1'b1),
                .ENB(1'b1),
                .SSRA(reset),
                .SSRB(reset),
                .WEA(processor_we),
                .WEB(1'b0)
            );
        end
    endgenerate


Alteraのプリミティブは知らないので、一番簡単な方法と思える MegaWizard Plug-In Manager でRAM: 2-PORTを使用することにする。
Quartus2_signaltap2_5_090702.png

RAMの後ろのFFは1クロックずれると思って削除してみた。これで大丈夫だと思うが、シミュレーションしてみてだめだったら調整する。
frame_buffer.v ではRAM: 2-PORTをインスタンシエーションした。

    frame_buffer_altera    frame_buffer_altera_inst (
        .clock ( clk ),
        .data ( din ),
        .rdaddress ( display_addr ),
        .wraddress ( processor_addr ),
        .wren ( processor_we ),
        .q ( display_dout )
    );


これで、frame_buffer.v は大丈夫かな?シミュレーションしてみればよいか悪いかわかるはず。
今度はchar_gen_rom.v だが、初期化データをどうしようか?Rubyか何かでフィルタを作って、Altera のMIFファイルに変換しようと思う。いまRubyの勉強中だ。
  1. 2009年07月03日 20:57 |
  2. QuartusⅡ
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/1163-0485c71d
この記事にトラックバックする(FC2ブログユーザー)