FC2カウンター FPGAの部屋 ar37425のAXI4 Masterサンプルを試す4(シミュレーション)
FC2ブログ

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

FPGAの部屋

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

ar37425のAXI4 Masterサンプルを試す4(シミュレーション)

ar37425のAXI4 Masterサンプルを試す3(SDK)”の続き。

今回はシミュレーションを行う。
シミュレーション方法は”EDKのシミュレーション”とほぼ同じ、この記事を参照しながら行う。

1.axi_timer_test.elfをプロジェクトに追加した。

2.Project Navigatorをシミュレーションモードに変更した。

3.テストベンチsystem_top_tb.v を新規作成した。
Atlys_51_120107.png

下にsystem_top_tb.v を示す。

`timescale 100ps / 1ps

////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer:
//
// Create Date:   05:18:27 01/07/2012
// Design Name:   system_top
// Module Name:   H:/HDL/FndtnISEWork/Spartan6/Atlys/test/Atlys_XPS_CamDisp/ISE/Atlys_XPS_CamDisp/system_top_tb.v
// Project Name:  Atlys_XPS_CamDisp
// Target Device:  
// Tool versions:  
// Description: 
//
// Verilog Test Fixture created by ISE for module: system_top
//
// Dependencies:
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
////////////////////////////////////////////////////////////////////////////////

module system_top_tb;

    // Inputs
    reg RS232_Uart_1_sin;
    reg RESET;
    reg [0:4] Push_Buttons_5Bits_TRI_I;
    reg GCLK;
    reg Ethernet_Lite_TX_CLK;
    reg Ethernet_Lite_RX_ER;
    reg Ethernet_Lite_RX_DV;
    reg Ethernet_Lite_RX_CLK;
    reg [3:0] Ethernet_Lite_RXD;
    reg Ethernet_Lite_CRS;
    reg Ethernet_Lite_COL;
    reg [7:0] DIP_Switches_8Bits_TRI_I;

    // Outputs
    wire mcbx_dram_we_n;
    wire mcbx_dram_udm;
    wire mcbx_dram_ras_n;
    wire mcbx_dram_odt;
    wire mcbx_dram_ldm;
    wire mcbx_dram_clk_n;
    wire mcbx_dram_clk;
    wire mcbx_dram_cke;
    wire mcbx_dram_cas_n;
    wire [2:0] mcbx_dram_ba;
    wire [12:0] mcbx_dram_addr;
    wire RS232_Uart_1_sout;
    wire [7:0] LEDs_8Bits_TRI_O;
    wire Ethernet_Lite_TX_EN;
    wire [3:0] Ethernet_Lite_TXD;
    wire Ethernet_Lite_PHY_RST_N;
    wire Ethernet_Lite_MDC;
    wire axi_master_0_ERROR;

    // Bidirs
    wire zio;
    wire rzq;
    wire mcbx_dram_udqs_n;
    wire mcbx_dram_udqs;
    wire mcbx_dram_dqs_n;
    wire mcbx_dram_dqs;
    wire [15:0] mcbx_dram_dq;
    wire Ethernet_Lite_MDIO;

    // Instantiate the Unit Under Test (UUT)
    system_top uut (
        .zio(zio), 
        .rzq(rzq), 
        .mcbx_dram_we_n(mcbx_dram_we_n), 
        .mcbx_dram_udqs_n(mcbx_dram_udqs_n), 
        .mcbx_dram_udqs(mcbx_dram_udqs), 
        .mcbx_dram_udm(mcbx_dram_udm), 
        .mcbx_dram_ras_n(mcbx_dram_ras_n), 
        .mcbx_dram_odt(mcbx_dram_odt), 
        .mcbx_dram_ldm(mcbx_dram_ldm), 
        .mcbx_dram_dqs_n(mcbx_dram_dqs_n), 
        .mcbx_dram_dqs(mcbx_dram_dqs), 
        .mcbx_dram_dq(mcbx_dram_dq), 
        .mcbx_dram_clk_n(mcbx_dram_clk_n), 
        .mcbx_dram_clk(mcbx_dram_clk), 
        .mcbx_dram_cke(mcbx_dram_cke), 
        .mcbx_dram_cas_n(mcbx_dram_cas_n), 
        .mcbx_dram_ba(mcbx_dram_ba), 
        .mcbx_dram_addr(mcbx_dram_addr), 
        .RS232_Uart_1_sout(RS232_Uart_1_sout), 
        .RS232_Uart_1_sin(RS232_Uart_1_sin), 
        .RESET(RESET), 
        .Push_Buttons_5Bits_TRI_I(Push_Buttons_5Bits_TRI_I), 
        .LEDs_8Bits_TRI_O(LEDs_8Bits_TRI_O), 
        .GCLK(GCLK), 
        .Ethernet_Lite_TX_EN(Ethernet_Lite_TX_EN), 
        .Ethernet_Lite_TX_CLK(Ethernet_Lite_TX_CLK), 
        .Ethernet_Lite_TXD(Ethernet_Lite_TXD), 
        .Ethernet_Lite_RX_ER(Ethernet_Lite_RX_ER), 
        .Ethernet_Lite_RX_DV(Ethernet_Lite_RX_DV), 
        .Ethernet_Lite_RX_CLK(Ethernet_Lite_RX_CLK), 
        .Ethernet_Lite_RXD(Ethernet_Lite_RXD), 
        .Ethernet_Lite_PHY_RST_N(Ethernet_Lite_PHY_RST_N), 
        .Ethernet_Lite_MDIO(Ethernet_Lite_MDIO), 
        .Ethernet_Lite_MDC(Ethernet_Lite_MDC), 
        .Ethernet_Lite_CRS(Ethernet_Lite_CRS), 
        .Ethernet_Lite_COL(Ethernet_Lite_COL), 
        .DIP_Switches_8Bits_TRI_I(DIP_Switches_8Bits_TRI_I), 
        .axi_master_0_ERROR(axi_master_0_ERROR)
    );

    parameter PERIOD = 100; // 100MHz clock
    parameter real DUTY_CYCLE = 0.5;
    parameter OFFSET = 0;
    
    initial    // Clock process for clk
    begin
        GCLK = 1'b0;
        #OFFSET;
        forever begin
            GCLK = 1'b0;
            #(PERIOD-(PERIOD*DUTY_CYCLE)) GCLK = 1'b1;
            #(PERIOD*DUTY_CYCLE);
        end
    end

    initial begin
        // Initialize Inputs
        RS232_Uart_1_sin = 0;
        RESET = 1'b0;
        Push_Buttons_5Bits_TRI_I = 0;
        Ethernet_Lite_TX_CLK = 0;
        Ethernet_Lite_RX_ER = 0;
        Ethernet_Lite_RX_DV = 0;
        Ethernet_Lite_RX_CLK = 0;
        Ethernet_Lite_RXD = 0;
        Ethernet_Lite_CRS = 0;
        Ethernet_Lite_COL = 0;
        DIP_Switches_8Bits_TRI_I = 0;

        // Wait 100 ns for global reset to finish
        #1000;
        
        // Add stimulus here
        #500;
        RESET = 1'b1;
    end
      
endmodule



4.Simulate Behavioral Modelをダブルクリックすると、コンパイルし始めたが、下のエラーが発生して終了してしまった。

ERROR:Simulator:754 - Signal EXCEPTION_ACCESS_VIOLATION received
ERROR:Simulator:754 - Signal EXCEPTION_ACCESS_VIOLATION receivedPrinting stacktrace...


検索した所、”Spartan-6 FPGA コネクティビティ キット TRD - Windows で ISim を実行すると「ERROR:Simulator:754 - Signal EXCEPTION_ACCESS_VIOLATION received」というエラー メッセージが表示される”がヒットした。

これは、32ビットWindows XPでは無理ということか?いよいよ64ビットWindows 7にする必要があるかな?

他のアプリをすべて落としたらコンパイルできました。
DDR2 SDRAMのモデルを接続するのを忘れていました。ブログを後で書きなおします。
  1. 2012年01月07日 05:52 |
  2. AXI4 Master IPの作製
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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