axis 数据流
Posted 木心的木偶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了axis 数据流相关的知识,希望对你有一定的参考价值。
产生数据流的代码
`timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// // Company: kc // Engineer: ys ////////////////////////////////////////////////////////////////////////////////// module RMS_Detection_top_tb( ); reg [15:0]axis_data_cnt=‘d0; reg [15:0]axis_data_frame_cnt=‘d0; reg [5:0]delay_cnt=‘d0; reg clk; reg rst_n; reg start_peak; reg stop_peak; reg [31:0]frameCount; reg clear_com=1; reg [23:0]s_axis_dpx_data; reg [23:0]s_axis_dpx_addr; reg [11:0]s_axis_dpx_user; reg s_axis_dpx_last; reg s_axis_dpx_valid; ////////////////////////// //debug // wire dpram_write_en; // wire [11:0]dpram_write_addr; // // wire [23:0]dpram_write_data; // wire [23:0]data_write; // wire [11:0]dpram_read_addr; // wire [23:0]dpram_read_data; ////////////////////////////// wire [11:0]m_axis_user; wire [23:0]m_axis_data; wire m_axis_valid; wire m_axis_last; wire [2:0]state; RMS_Detection_top myIP1( .clk(clk), .rst_n(rst_n), .start_peak(start_peak), .stop_peak(stop_peak), .frameCount(‘d8), .fft_point(‘d512), .s_axis_data(s_axis_dpx_data), .s_axis_user(s_axis_dpx_addr[11:0]), .s_axis_last(s_axis_dpx_last), .s_axis_valid(s_axis_dpx_valid), ////////////////////////// //debug // .dpram_write_en(dpram_write_en), // .dpram_write_addr(dpram_write_addr), // .dpram_write_data(), // .dpram_read_addr(dpram_read_addr), // .dpram_read_data(dpram_read_data), // .data_write(data_write), // .STATE_CASE(state), ////////////////////////////// .m_axis_user(m_axis_user), .m_axis_data(m_axis_data), .m_axis_valid(m_axis_valid), .m_axis_last(m_axis_last) ); initial begin #10 clk=0; forever begin #3.334 clk=~clk; end end initial begin #20 rst_n=0; #100 rst_n=1; #300 rst_n=0; #100 rst_n=1; end initial begin #10 start_peak=1; stop_peak=0; end always @(posedge clk) begin if(!rst_n) begin s_axis_dpx_data<=‘d0; s_axis_dpx_addr<=‘d0; s_axis_dpx_valid<=0; s_axis_dpx_last<=0; axis_data_frame_cnt<=‘d0; delay_cnt<=‘d0; axis_data_cnt<=‘d0; end else begin if(clear_com) begin if(axis_data_frame_cnt<=‘d51200)//22*10 10frame begin axis_data_frame_cnt<=axis_data_frame_cnt+1; if(axis_data_cnt<16‘d510) begin if(delay_cnt==‘d7) begin delay_cnt<=‘d0; s_axis_dpx_data<=s_axis_dpx_data+1; s_axis_dpx_addr<=s_axis_dpx_addr+1; axis_data_cnt<=axis_data_cnt+1; s_axis_dpx_valid<=1; s_axis_dpx_last<=0; end else begin delay_cnt<=delay_cnt+1; s_axis_dpx_data<=s_axis_dpx_data; s_axis_dpx_addr<=s_axis_dpx_addr; axis_data_cnt<=axis_data_cnt; s_axis_dpx_valid<=0; s_axis_dpx_last<=0; end end else if(axis_data_cnt ==16‘d510) begin if(delay_cnt==‘d7) begin delay_cnt<=‘d0; s_axis_dpx_data<=s_axis_dpx_data+1; s_axis_dpx_addr<=s_axis_dpx_addr+1; s_axis_dpx_valid<=1; s_axis_dpx_last<=1; axis_data_cnt<=axis_data_cnt+1; end else begin delay_cnt<=delay_cnt+1; s_axis_dpx_data<=s_axis_dpx_data; s_axis_dpx_addr<=s_axis_dpx_addr; s_axis_dpx_valid<=0; s_axis_dpx_last<=0; axis_data_cnt<=axis_data_cnt; end end else if(axis_data_cnt==16‘d511) begin if(delay_cnt==‘d7) begin delay_cnt<=‘d0; s_axis_dpx_data<=s_axis_dpx_data; s_axis_dpx_addr<=s_axis_dpx_addr; s_axis_dpx_valid<=‘d0; axis_data_cnt<=axis_data_cnt+1; s_axis_dpx_last<=0; end else begin delay_cnt<=delay_cnt+1; s_axis_dpx_data<=s_axis_dpx_data; s_axis_dpx_addr<=s_axis_dpx_addr; s_axis_dpx_valid<=‘d0; axis_data_cnt<=axis_data_cnt; s_axis_dpx_last<=0; end end else begin //if(delay_cnt==‘d3) delay_cnt<=‘d0; s_axis_dpx_data<=s_axis_dpx_data; s_axis_dpx_addr<=‘d0; s_axis_dpx_valid<=‘d1; axis_data_cnt<=0; s_axis_dpx_last<=0; end end else begin axis_data_frame_cnt<=axis_data_frame_cnt; s_axis_dpx_data<=‘d1; s_axis_dpx_addr<=‘d1; s_axis_dpx_valid<=‘d0; s_axis_dpx_last<=0; axis_data_cnt<=16‘d20; end end end end // always @(posedge clk) // begin // if(!rst_n) // begin // s_axis_dpx_data<=‘d0; // s_axis_dpx_addr<=‘d0; // s_axis_dpx_valid<=0; // s_axis_dpx_last<=0; // axis_data_frame_cnt<=‘d0; // delay_cnt<=‘d0; // axis_data_cnt<=‘d0; // end // else // begin // if(1) // begin // if(axis_data_frame_cnt<=‘d51200)//22*10 10frame // begin // axis_data_frame_cnt<=axis_data_frame_cnt+1; // if(axis_data_cnt<16‘d510) // begin // // if(delay_cnt==‘d3) // // begin // // delay_cnt<=‘d0; // s_axis_dpx_data<=s_axis_dpx_data+1; // s_axis_dpx_addr<=s_axis_dpx_addr+1; // axis_data_cnt<=axis_data_cnt+1; // s_axis_dpx_valid<=1; // s_axis_dpx_last<=0; // // end // // else // // begin // // delay_cnt<=delay_cnt+1; // // s_axis_dpx_data<=s_axis_dpx_data; // // axis_data_cnt<=axis_data_cnt; // // s_axis_dpx_valid<=0; // // s_axis_dpx_last<=0; // // end // end // else if(axis_data_cnt==16‘d510) // begin // // if(delay_cnt==‘d3) // // begin // delay_cnt<=‘d0; // s_axis_dpx_data<=s_axis_dpx_data+1; // s_axis_dpx_addr<=s_axis_dpx_addr+1; // s_axis_dpx_valid<=1; // s_axis_dpx_last<=1; // axis_data_cnt<=axis_data_cnt+1; // // end // // else // // begin // // delay_cnt<=delay_cnt+1; // // s_axis_dpx_data<=s_axis_dpx_data; // // s_axis_dpx_valid<=0; // // s_axis_dpx_last<=0; // // axis_data_cnt<=axis_data_cnt; // // end // end // else if(axis_data_cnt==16‘d511) // begin // if(delay_cnt==‘d3) // begin // delay_cnt<=‘d0; // s_axis_dpx_data<=s_axis_dpx_data; // s_axis_dpx_addr<=s_axis_dpx_addr; // s_axis_dpx_valid<=‘d0; // axis_data_cnt<=axis_data_cnt+1; // s_axis_dpx_last<=0; // end // else // begin // delay_cnt<=delay_cnt+1; // s_axis_dpx_data<=s_axis_dpx_data; // s_axis_dpx_addr<=s_axis_dpx_addr; // s_axis_dpx_valid<=‘d0; // axis_data_cnt<=axis_data_cnt; // s_axis_dpx_last<=0; // end // end // else // begin // //if(delay_cnt==‘d3) // delay_cnt<=‘d0; // s_axis_dpx_data<=s_axis_dpx_data; // s_axis_dpx_addr<=‘d0; // s_axis_dpx_valid<=‘d1; // axis_data_cnt<=0; // s_axis_dpx_last<=0; // end // end // else // begin // axis_data_frame_cnt<=axis_data_frame_cnt; // s_axis_dpx_data<=‘d1; // s_axis_dpx_addr<=‘d1; // s_axis_dpx_valid<=‘d0; // s_axis_dpx_last<=0; // axis_data_cnt<=16‘d20; // end // end // end // end endmodule
以上是关于axis 数据流的主要内容,如果未能解决你的问题,请参考以下文章
有人可以用 Python 中的迭代来解释 axis=0 或 1 吗? [复制]