顾攀 发表于 2019-8-20 12:41:58

pcie信号抓取

我想问一个问题,在CH06_DAQ7606课程中,assign pkg_rdy=wr_data_count;这个语句,我现在想抓一下pkg_rdy信号,可是抓到的pkg_rdy信号一直为1,没有出现从0到1的上升沿,我就是有个疑问,当fifo写数据的时候,wr_data_count计数没有为1的时候,pkg_rdy也不为1,当wr_data_count为1的时候,pkg_rdy也为1,就会出现一个上升沿,然后读fifo的时候,当读走一些数据的时候wr_data_count不为1,pkg_rdy也不为1,不就出现下降沿。在我抓pkg_rdy信号的时候,没有出现上升沿和下降沿,pkg_rdy一直为1.

uisrc 发表于 2019-8-20 20:21:56

1、先看下BD设计文件如下图,本设计的技巧就是AXI4-Slave协议的应用,可以看到箭头所指的3个信号。
2、当上位机发起的取命令后,实际上数据并不会里面传输到上位机软件的,必须等到,pkg_rdy为1数据才会通过AXI4-Slave总线搬运到上位机软件。那么 assign pkg_rdy = wr_data_count;说明pkg_rdy 和FIFO计数器的wr_data_count是有关系的,这里写通道是64bit存放了4个ADC的数据,你可以计算下,当2^11=次方2048,代表最大的采样深度是2K.

3、ad7606_ctrl 就是AD7606采样代码负责采样并把数据写入FIFO,下面再贴出接口代码方便以上解释

ad7606_ctrl ad7606_ctrl_inst
    (
      .clk_i                               (Clk50m),
      .reset_i             (!Rstn),
      .ad_data             (ad_data),
      .ad_busy             (ad_busy),
      .first_data          (first_data),   
      .ad_os               (ad_os),
      .ad_cs               (ad_cs),
      .ad_rd               (ad_rd),
      .ad_reset            (ad_reset),
      .ad_convsta          (ad_convsta),
      .ad_convstb          (ad_convstb),
      .ad_range            (ad_range),
      .ad_ch1_o            (ad_ch1),
      .ad_ch2_o            (ad_ch2),
      .ad_ch3_o            (ad_ch3),
      .ad_ch4_o            (ad_ch4),
      .ad_ch5_o            (),
      .ad_ch6_o            (),
      .ad_ch7_o            (),
      .ad_ch8_o            (),
      .ad_data_valid_o   (ad_data_valid)
      );


assign pkg_rdy = wr_data_count;

fifo_generator_0 fifo_daq7606 (
      .wr_clk(Clk50m),                     // input wire wr_clk
      .wr_rst(!Rstn),                      // input wire wr_rst
      .rd_clk(axi_aclk),                   // input wire rd_clk
      .rd_rst(!Rstn),                      // input wire rd_rst
      .din({ad_ch4,ad_ch3,ad_ch1,ad_ch1}), // input wire din
      .wr_en(ad_data_valid),               // input wire wr_en
      .rd_en(pkg_rd_en),                  // input wire rd_en
      .dout(pkg_data),                  // output wire dout
      .wr_data_count(wr_data_count)   // output wire wr_data_count
   );

页: [1]
查看完整版本: pcie信号抓取