2021-12-02AXI 4-Stream Verification IP를 슬레이브로 사용

7224 단어 VivadoVIPAXIzynq
작업 환경
  • Windows 10 Pro (21H1)
  • Vivado 2019.1
  • 연관성
  • 2021-12-02 AXI Verification IP(AXI4LITE) 사용
  • https://qiita.com/7of9/items/8c846c41a6337420d5c8
  • PG277 AXI4-Stream Verification IP v1.0
  • https://japan.xilinx.com/support/documentation/ip_documentation/axi4stream_vip/v1_0/j_pg277-axi4stream-vip.pdf
  • 2021-12-02AXI 4-Stream Verification IP는 마스터로 사용
  • https://qiita.com/7of9/items/da62e33ccd51e13c0c04
  • 프로그램 개요
  • Vivado로 새 프로젝트
  • "sys"이름으로 Block Design
  • 만들기
  • Tools > Create and Package New IP ... > Create a new AXI4 peripheral
  • 여기서 AXI 4-Stream Master(카운터) 제작(후술 참조)
  • myip_211202_11_0으로 사전 IP화
  • myip_211202_11_Block Design에 0 추가
  • AXI 4-Stream Verification IP 추가
  • INTERFIACE MODE를 SLAVE
  • 로 변경
  • aclk, aresetn의 판매를 Make External(이렇게 명명)
  • 로 설정합니다.
  • axi4stream_vip_0과 myip연결 0
  • Create HDL Wrapper
  • tb.생성sv
  • Run Simulation
  • 보고 싶은 핀을 파형에 추가
  • m_axi_wlast, m_axi_wvalid, m_axi_wready, m_axi_wdata[31:0]
  • s00_axi_wdata[31:0], s00_axi_rready, s00_axi_rvalid
  • AXI4-Stream Master(카운터)
    참고: AXI4-Stream 테스트by축파대학 무내수선생
    상기 내용을 참고하여 IP를 제작한다.
  • Interface Type: Stream
  • Interface Mode: Master
  • Edit IP
  • <IP名>_v1_0_M00_AXIS.v 파일의 MAXIS_TVALID, M_AXIS_TDATA, M_AXIS_TLAST, M_AXIS_TSTRB의 assign 리뷰
  • // Add user logic here에서 무내 추가 설치
  • Package IP
  • File Groups > Merge changes from File Groups Wizard
  • Review and Package > IP has been modified
  • Re-Page IP 구현
  • 『 IP 이름 』v1_0_M00_AXIS.v
        // I/O Connections assignments
    
        //assign M_AXIS_TVALID  = axis_tvalid_delay;
        //assign M_AXIS_TDATA   = stream_data_out;
        //assign M_AXIS_TLAST   = axis_tlast_delay;
        //assign M_AXIS_TSTRB   = {(C_M_AXIS_TDATA_WIDTH/8){1'b1}};
    
    Block Design

    axi4stream_vip_0 설정

    벤치 테스트(System Verilog)
    https://qiita.com/tethys_seesaa/items/9d4c00212d9ea79b1497
    의 설치를 기반으로 AXI4 Stream의 슬레이브로 업데이트합니다.
    (PG277 AXI4-Stream Verification IPv1.0 참조)
    tb.sv
    `timescale 1ns/1ps
    import axi4stream_vip_pkg::*;
    import sys_axi4stream_vip_0_0_pkg::*;
    
    module tb();
    
        localparam int LP_CLK_PERI = 100;
        localparam int LP_RST_PERI = 777;
    
        // DUT instance
        logic aresetn, aclk;
        sys_wrapper dut(.*);
    
        task rst_gen();
            aresetn = '0;
            #(LP_RST_PERI);
            aresetn = '1;
        endtask
    
        task clk_gen();
            aclk = '0;
            forever #(LP_CLK_PERI/2) aclk = ~aclk;
        endtask
    
        task clk_dly(int n);
            repeat(n) @(posedge aclk);
        endtask
    
        // VIP decreation
        sys_axi4stream_vip_0_0_slv_t agent;
    
        task init_agent();
            agent = new("master vip agent", dut.sys_i.axi4stream_vip_0.inst.IF);
            agent.start_slave();
        endtask
    
        // Ready gen method
    
        task rd_rdy();
            axi4stream_ready_gen      ready_gen; 
            ready_gen = agent.driver.create_ready("ready_gen 2");
            ready_gen.set_ready_policy(XIL_AXI4STREAM_READY_GEN_SINGLE);
            ready_gen.set_low_time(1);
            agent.driver.send_tready(ready_gen); // rd_driver=>driver
        endtask
    
        // Testscenario
        initial begin
    
            fork
                init_agent();
                clk_gen();
                rst_gen();
            join_none
    
            clk_dly(100);
    
            rd_rdy();
    
            clk_dly(100);
    
            $finish(2);
        end
    endmodule
    
    물결
    2000ns까지 실행됩니다.
    s_axi_tdata[31:0]의 계수를 볼 수 있습니다.

    XXX를 찾을 수 없습니다.
    tb.sv에서 다음 오류가 발생했지만 실행할 수 있습니다.
    forum에서 비주얼 버그로 보고되었습니다.
  • axi4stream_vip_pkg@ import axi4stream_vip_pkg::*;을 찾을 수 없습니다.
  • sys_axi4stream_vip_0_0_pkg@ import sys_axi4stream_vip_0_0_pkg::*;을 찾을 수 없습니다.
  • AXI VIP and axi_vip_v1_0_2_pkg is not declared
    https://support.xilinx.com/s/question/0D52E00006hphJ3SAI/axi-vip-and-axivipv102pkg-is-not-declared?language=ja
    You may see the lines underlined in red, this is a visual bug and is being fixed. It is safe to ignore it.
    또한 다음과 같은 오류가 발생했지만 Run Simulation이 발생했습니다.
  • XIL_AXI4STREAM_READY_GEN_SINGLE을 찾을 수 없음
  • 좋은 웹페이지 즐겨찾기