你好,
当我们尝试使用短包时,我们遇到了意外的数据丢失(由于一些FIFO满)。请注意,当我们不使用短包,我们没有问题,并容易维持一个350 Mb/s的流。
这是一个系统的描述,它是由
FPGA(运行我们的代码)提供的数据经过一个嵌入在PM3加密卡数据上的FX3,然后进入我们自己的软件。
软件方面:我们链接到FX3.1.3.3 CyAPI库,我们使用一个多个循环调度异步读取(BeaDimaTaxFor()),在批量端点上使用非常高效的读取。我们非常有效率,我们要求4MB的所有读取实际上返回4MB,除非一个短的数据包即将到来。在这种情况下,一个读取将返回较少的数据,但是下一个读取将获得4MB Read Hyb,
当我们尝试使用短包时,我们遇到了意外的数据丢失(由于一些FIFO满)。请注意,当我们不使用短包,我们没有问题,维持容易350 Mb / s的流。
=============这里描述的是一个系统=============数据由FPGA提供(运行我们的代码)的数据通过一个FX3嵌入在PM3 enclustra卡数据,然后去一个我们自己的软件
软件方面:我们链接到FX3 1.3.3 CyAPI函数库-我们用一大块终点的一个非常有效的阅读,使用多个循环调度异步读(begindataxfer())。我们确信能非常有效,我们要求所有读取读取4MB实际上返回4MB,除非短包来了。在这种情况下,一个读将返回的数据少,但接下来的阅读会4mb再观察没有超时(如预期,当然)-信息,我们要添加短数据包流中的未来发展的FX3侧:-我们编写自己的FX3 boo
timage,基于标准的SlaveFIFO例如我们使用自动DMA方式,DMA缓冲区采用4通道,配置为无限传输我们使用一个标准的GPIF机(见所附截图)
FPGA方面:我们发出的数据,一个为250ms短包(正确的)拉pktend低排放。”正确”意味着我们认为尊重的信号时序的文档。=============这里描述的是一个问题=============软件方面:几KB的缺失几乎每250毫秒(看下面的解释,当观察信号线)FX3的一面:不说。一切都是自动的,所以我们没有得到多少信息。我们试图通过添加short_pkt和dss_state之间连接的旁路状态机处于闲置状态,但它不会改变什么。FPGA侧:-我们观察信号线。几乎在每一个短包(但不是每个人的flagb),(“专用线程没有准备好”)十几微秒在线路仍然很高(这是巨大的)。所以,FPGA将获得充分的数据FIFO后不得转让期间。在发射数据的速度,这就是为什么软件观察数据缺失几KB。
见所附截图:pkend #去“0”随着数据和SLWR #脉冲的最后一句话。因此GPIF状态机将其解释为短包。不幸的是,这flagb信号进入“0”后约200µ,表明把线程不准备接收数据。在大约63µ和FPGA内部的FIFO满,我们去上游松散的数据flagb仍然较低。
=============我们的要求=============我们需要什么出了错一些指导,我们能做什么…信息,我们计划用短包的一种特殊模式,FPGA发出一些数据,在变幻莫测的量。因此,为了避免timouts和在软件方面的数据丢失,我们需要使用短包或零长度的数据包。因此,它是真实的,需要在我们目前的设计在350 Mb/s,不是短包但是,我们还是希望它的工作在这种情况下,在继续之前。我们不认为应该防止从工作模式。
FX3短包问题
172.6 K