본문 바로가기

Xilinx FPGA

Aurora IP

오로라 IP를 만들고 붙이는 과정을 

KintexUltraScale 을 예를 들어 정리해 본다.

 

여기서 GT Quard 선택이 애매한데 이건 데이터 시트를 찾아서 해당 회로의 위치를 지정해야 한다.

 

 

본 예시의 경우는 226번을 사용할 경우 이다.

 

 

이렇게 설정해 주면 완료.

 

이 예제는 프레이밍 모드 일 경우 인데 다 필요 없이 

인터 컨넥션은 아래를 참고하면 된다.

 

aurora_8b10b_0  aurora_8b10b_0
     (
        // AXI TX Interface
       .s_axi_tx_tdata               (read[31:0]),  // in:  Board to PC Data (read action)
       .s_axi_tx_tkeep               (4'hF), // in:  Last burst byte 
       .s_axi_tx_tvalid              (read_en), // in:  Board to PC Valid (read action)
       .s_axi_tx_tlast               (read_en_ls), // in:  Board to PC Last Data (read action)
       .s_axi_tx_tready              (read_empty), // out: Board to PC Data (read buffer ready)

        // AXI RX Interface
       .m_axi_rx_tdata               (write[31:0]), // out: PC to Board Data (write action)
       .m_axi_rx_tkeep               ( ),
       .m_axi_rx_tvalid              (write_en),  // out:  PC to Board Data Valid
       .m_axi_rx_tlast               (write_en_ls), // out:  PC to Board Data Last Data


        // GT Serial I/O
       .rxp                          (GTX_RX_P), // in:  top PAD GTX RX in
       .rxn                          (GTX_RX_N), // in:  top PAD GTX RX in
       .txp                          (GTX_TX_P), // out:  top PAD GTX TX out
       .txn                          (GTX_TX_N), // out:  top PAD GTX TX out

        // GT Reference Clock Interface
 
       .gt_refclk1_p                (GTX_CK_P), // in:  top PAD GTX CLK in (aurora bank ; ex 50Mhz)
       .gt_refclk1_n                (GTX_CK_N), // in:  top PAD GTX CLK in (aurora bank)
       .gt_refclk1_out              ( ),
        // Error Detection Interface
       .frame_err                   ( ),

        // Error Detection Interface
       .hard_err                    ( ),
       .soft_err                    ( ),

        // Status
       .channel_up                  ( aurora_ok ), // out:  link OK 
       .lane_up                     ( ),

        // System Interface
       .user_clk_out                (user_clk), // out: axi 125Mhz bufg out
       .sync_clk_out                ( ),
       .reset                       ( aurora_reset ), // in:
       .sys_reset_out               ( ),
       .gt_reset_out                ( ),
       .power_down                  (1'h0),
       .loopback                    (3'h0),
       .gt_reset                    ( aurora_gt_reset), // in:
       .init_clk_in                 ( clock_50Mhz ), // in:
       .pll_not_locked_out          ( pll_not_locked_out),// out:
       .tx_resetdone_out            ( ),
       .rx_resetdone_out            ( ),
       .link_reset_out              ( ),
   
       .gt0_drpaddr                 (9'h0),
       .gt0_drpen                   (1'h0),
       .gt0_drpdi                   (16'h0),
       .gt0_drprdy                  ( ),
       .gt0_drpdo                   ( ),
       .gt0_drpwe                   (1'h0),
   .gt_powergood           ( ),
       .tx_lock                     ( )
     );

 

 

 

 

'Xilinx FPGA' 카테고리의 다른 글

vsim 참고 스크립트  (0) 2021.01.04
MIG 생성  (0) 2020.12.07
PCIe Timing  (0) 2020.12.07
PCIe Block Design  (0) 2020.12.07
PCIe IP 생성  (0) 2020.12.07