利用EZ-USB FX3 从器件FIFO接口进行设计(5)

来源:网络收集 时间:2025-08-13 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xuecool-com或QQ:370150219 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

b.对于流模式,需要创建两个DMA通道:一个P2U通道,其中PIB_SOCKET_0作为生产者,UIB_SOCKET_1作为消费者。DMA缓冲区大小是16*1024(对USB3.0设备)或者16*512(对于USB2.0设备)取决于连接的是2.0还是3.0设备。DMA缓存数为8.选择这样的缓存大小和数量提供了高生产量性能。一个U2P通道,其中PIB_SOCKET_3作为生产者,UIB_SOCKET_1作为消费者。DMA缓冲区大小是16*1024(对USB3.0设备)或者16*512(对于USB2.0设备)取决于连接的是2.0还是3.0设备。DMA缓存数为4.注意,缓存数量能被进一步提高以强化性能,但P2U的缓存数量应该减少。这是因为FX3不能提供足够的缓存,以至于能用8个缓存,每个缓存大小为16*1024.

图17 流IN传输设置——缓存数量和大小优化性能

图18 流OUT传输设置——缓存数量和大小优化性能

如果下面的定义在该应用比较通过的FX3固件工程的cyfxslfifosync.h文件中使能,则上面描述的DMA通道被设置。 #define STREAM_IN_OUT

分配给P2U和U2PDMA通道的缓存数量可以由下面的宏定义来控制。该宏定义也在cyfxslfifosync.h文件中。

#define CY_FX_SLFIFO_DMA_BUF_COUNT_P_2_U (4) #define CY_FX_SLFIFO_DMA_BUF_COUNT_U_2_P (8) FPGA实现细节

图19 使用SP601 Evaluation Kit实现赛灵思 Spartan6 FPGA

为了演示FX3的GPIF接口运行在100MHz时的最大性能。SP601的板子上有一个27MHz的晶振。FPGA使用锁相环从27MHz中产生100MHz的时钟。

下面是使用不同传输类型的使用状态。 流IN实例:

对于流IN模式,实现Verilog RTL级的状态机在下面展示。

图20 流IN模式下的状态机

状态A:

初始化状态机中的所有寄存器和信号。从器件FIFO控制线的状态如下: PKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=1;A[1:0]=0 状态E:

只要FLAGA=1,状态机就进入该状态。状态机将宣布写控制信号状态: PKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=0;A[1:0]=0 状态F:

在FLAGB有效后的一个周期进入该状态。这个状态取消所有的写控制信号。对于“使用局部标志的通用公式”部分的每一个公式,在局部FLAG变为0的2个周期后,FX3应该采样SLWR#有效。考虑到通过FPGA到接口有一个时钟周期的传播延时,在采样到FLAGB为0后,FPGA使能SLWR#信号一个周期。在FLAGB有效后的6个周期,水印值是6,我们期待FLAGA回到0.这个状态保持4个周期的执行来确保FLAGA上有效状态的有效性。 短包实例:

这个实例利用PKTEND#证明了短包提交程序。

下面的状态机实现了在verilog RTL级模式下的短包实例。

图21 短包传输的状态机

状态A:

该状态初始化状态机中的寄存器和信号。从器件FIFO的控制状态如下: PKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=1;A[1:0]=0

状态E:

FLAGA=1时,状态机将进入该状态。如果strob==1.则提交一个16字的短包,否则提交全包。 状态F:

在FLAGB有效后的一个周期进入该状态。该状态取消了所以写控制信号,正如前面公式中提到的,对于每个公式,在局部FLAG变为0后,FX3应该采样SLWR#信号2个周期。考虑到从FPGA到接口有一个周期的延时,FPGA在采样到局部FLAG为0后的一个周期宣布SLWR#信号有效。水印值为6,我们期待FLAGA变为0,在局部标志后的6个之中周期。.这个状态保持4个周期的执行来确保FLAGA上有效状态的有效性。 ZLP例子:

这个实例利用PKTEND#证明了ZLP提交程序。

下面的状态机实现了在verilog RTL级模式下的ZLP实例。

图22 ZLP传输状态机

状态A:

该状态初始化状态机中的寄存器和信号。从器件FIFO的控制状态如下: PKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=1;A[1:0]=0 状态E:

FLAGA=1时,状态机将进入该状态。如果strob==1.则提交一个ZLP,否则提交全包。

状态F:

在FLAGB有效后的一个周期进入该状态。该状态取消了所以写控制信号,正如前面公式中提到的,对于每个公式,在局部FLAG变为0后,FX3应该采样SLWR#信号2个周期。考虑到从FPGA到接口有一个周期的延时,FPGA在采样到局部FLAG为0后的一个周期宣布SLWR#信号有效。水印值为6,我们期待FLAGA变为0,在局部标志后的6个之中周期。.这个状态保持4个周期的执行来确保FLAGA上有效状态的有效性。 流OUT例子:

下面的状态机实现了在verilog RTL级模式下的流OUT实例。

图23 流OUT装换状态机

状态G:

状态机初始化所有的寄存器和信号,从器件FIFO的控制状态如下: PKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=1;A[1:0]=3 状态A:

不论何时FLAGC=1,状态机将进入该状态 状态B:

状态机将宣布读控制有效:

PKTEND#=1;SLOE#=0;SLRD#=0;SLCS#=0;SLWR#=1;A[1:0]=3 状态F:

百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库利用EZ-USB FX3 从器件FIFO接口进行设计(5)在线全文阅读。

利用EZ-USB FX3 从器件FIFO接口进行设计(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.70edu.com/wenku/445103.html(转载请注明文章来源)
Copyright © 2020-2025 70教育网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:370150219 邮箱:370150219@qq.com
苏ICP备16052595号-17
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:7 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219