zoukankan      html  css  js  c++  java
  • usb30 lose data

      这两天在看ep3c40_ad_da, 我使用USB20的PC采集数据,发现PC接到的数据有丢失现象: USB20的速度约40MB/S, ddr_fifo_2 : huanor_ddr2b_fifo 的clk_wr => 27MHZ;
     
      个人推断是USB20读取速度太低, 因fifo写入速度是27MHZx4byte=108Mbyte/s(注: 程序中32bit width),而fifo读取速度是40MB/S<108Mbyte/s,所以数据必然会丢失; 丢失的过程是: USB读的慢,导致fifo呈现满的状态; 来自5150的rawdata按照恒定的27MHZ频率送来数据, 当fifo被写满后,数据因写不进去而丢失.
      所以这类async做法必须满足, USB读取速度>写入速度,否则必丢; 即USB读取速度一定大于108Mbyte/s.
     
      或者串行操作,写满了通知读,读空后通知写.

    elsif rising_edge(TV_PCLK) then
    if f1_fi_wrusedw>=conv_std_logic_vector(2**AW-8,AW) then
    f1_wr_hfull <= act_on;
    else
    f1_wr_hfull <= act_off;
    end if;

    f1_fi_wrreq <= act_off;
    --AD CAP data
    if DATA_DIR='0' and f1_wr_hfull=act_off then --DATA_DIR->0: EXT TO USB
    f1_fi_wrreq <= act_on;
    -- f1_fi_din <= conv_std_logic_vector(8, DW/2-10) & AD_B & conv_std_logic_vector(4, DW/2-8) & TV_D;
    ---- test_data-------------------------
    f1_fi_din <= test_data;
    test_data <= test_data + conv_std_logic_vector(1, DW);
    ---------------------------------------
    end if;
    end if;

  • 相关阅读:
    三范式最简单最易记的解释
    Mysql添加用户错误:ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value解决方法
    mysql体系结构管理
    mysql的简单操作
    flush privileges刷新MySQL的系统权限相关表
    二进制安装mysql
    扩展一台mysql-5.6.40
    mysql5.6.40部署过程
    三剑客-awk
    三剑客-sed
  • 原文地址:https://www.cnblogs.com/winkle/p/2989001.html
Copyright © 2011-2022 走看看