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

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

图12 32位数据总线宽度下的突发读

例3:

16位数据总线下的同步从器件FIFO:

在GPIFII Designer中,FLAGA被配置成Current_thread_DMA_RDY,FLAGB被配置成Current_thread_DMA_watermark。

CyU3PGpifSocketConfigure (0, PIB_SOCKET_3, 3, CyFalse, 1) 同步从器件FIFO模式下,执行外部FPGA到EZ-USB FX3的突发写。

图13是一个逻辑分析截图,展示了在转换结束时,FLAGs变成0.可以看出,在最后一个字前的3个周期FLAGB变低。在FLAGB变低前2个字可以被写进。

对于该例子,使用前面的公式可得: 水印值为3,总线宽度为16

因此,在局部FLAG被采样为2之后,写入16位的数据。

图13 16位数据总线宽度下的突发写转换

例4:

16位数据总线下的同步从器件FIFO:

在GPIFII Designer中,FLAGA被配置成Current_thread_DMA_RDY,FLAGB被配置

成Current_thread_DMA_watermark。

CyU3PGpifSocketConfigure (3, PIB_SOCKET_3,2, CyFalse, 1) 同步从器件FIFO模式下,执行外部FPGA到EZ-USB FX3的突发读。 从器件FIFO模式下,执行外部FPGA到EZ-USB FX3的突发写。

图13是一个逻辑分析截图,展示了在转换结束时,FLAGs变成0.可以看出,在最后一个字前的4个周期FLAGB变低。在FLAGB变低前3个字可以被读出。

图14 16位数据总线宽度的突发读转换

使用局部FLAG时,其他的重要注意事项:

① 局部标志只能被用来决定何时结束转换。空/满标志必须在转换的开始被监控以确保套接字的有效性。这意味着局部FLAG不能独自使用,必须和空/满标志连接使用。

② 如果外部主机能够实现计数原理,可以不使用局部标志,可以写进等于EZ-USB FX3 DMA缓冲区大小的数据。在创建DMA通道时,外部主机应该计算写进或读出的数据量,以确保数量不能超过缓冲区的大小。在这种情况,监控一个满或空的标志决定何时开始转换。 ③ 如果一个计数模式不能像上面那样实现,使用下面之一的局部标志需要被完成:

a. 如果外部主机总是爆发固定数量的数据,当选择一个水印值时,这种突发大小必须被考虑。例如,如果外部主机突发写8个字,然后,设置水印值,以至于局部标志变低,当有EZ-USB FX3的DMA缓存区空间时。然后,当看到局部标志为低时,外部主机能写一个完整的8位突发数据。为了实现这种对于16位的写方

向,水印值应该被设置为6.

b. 一个可选择方法是一旦局部标志变成0时,不是执行突发访问,外部处理器转换成单一循环访问模式。接着,在每一次循环时,在写之前,外部主机能检测空满标志以确定缓存仍然有空间。

在软件开发套件中的从器件FIFO固件例子

到目前为止,该应用笔记详细描述了同步从器件FIFO接口和能够被配置的标志。GPIFII Designer工具中已经完成了必要的配置,更新配置需要与固件相结合。在建立GPIFII Designer工程时,产生头文件cyfxgpifconfig.h。该头文件需要被包含到固件工程中。集成在从器件FIFO接口中的EZ-USB FX3 SDK包括一个固件例子。

在安装了EZ-USB FX3软件开发包后,在下面的目录([FX3 SDK Install Path] \\EZ-USB FX3 SDK\\1.2\\firmware\\slavefifo_examples\\slfifosync)中能够找到集成同步从器件FIFO接口的固件例子。这个固件例子支持16和32位的数据总线宽度。在头文件

cyfxslfifosync.h

中定义了常量

CY_FX_SLFIFO_GPIF_16_32BIT_CONF_SELECT。选择32位数据总线时,设置常量为1;选择16位总线宽度时,设置常量为0。请注意,对100MHz的32位数据时,为了器件FIFO的功能,必须要配置锁相环频率为400MHz。这个步骤通过该设置setSysClk400参数,作为输入到CyU3PDeviceInit()的函数。详情,请参考API引导手册。

设计实例:连接FPGA到FX3同步从器件FIFO接口

截止目前,该应用比较详细描述了同步从器件FIFO接口,包括配置和使用不同的FLAGs。该部分提供了一个完整的设计实例,在该实例中赛灵思Spartan6系列的FPGA被连接到FX3通过同步从器件FIFO接口。

下面是该应用设计中使用的硬件、固件和软件部分。 ① 拥有FMC接口的FX3 DVK 板。 ② 赛灵思Spartan 6 SP601评估套件 ③ FX3同步从器件FIFO工程 ④ 控制中心和流实例 下面是该例子的组成部分:

1. 回送转移:在这个设计部分,FPGA首先从FX3中读取一个完整的缓存,然后

写回FX3中。USB主机应该发出OUT/IN令牌包去传送,然后接受这个数据。为了该目的,利用控制中心提供EZ-USB FX3 SDK。

2. 短包:在这个设计组件中,FPGA传送一个被短包跟随着的全包到FX3。USB主机发出IN令牌包来接受这个数据。

3. 零长度包传送:在该部分设计中,FPGA穿上一个被零长度包跟随的全包到FPGA中。USB主机应该发出IN令牌来接受这个数据。

4. 流(IN)数据传递:在这种设计模式下,FPGA完成一个方向的转换,也就是说,通过同步从器件FIFO接口连续向FX3写数据。USB主机应该发出IN令牌来接受这个数据。为了这个目的,能够利用EZ-USB FX3 SDK提供的控制中心实例来实现。

5. 流(OUT)数据传递:在这种设计模式下,FPGA完成一个方向的转换,也就是说,通过同步从器件FIFO接口连续从FX3读数据。USB主机应该发出OUT令牌来接受这个数据。为了这个目的,能够利用EZ-USB FX3 SDK提供的控制中心实例来实现。 FX3固件细节

FX3的固件是基于FX3 SDK工程中的事例来的。 下面是该固件的主要特征: ① 使能USB3.0和USB2.0.

② 利用赛普拉斯的VID/PID=0x04B4/0x00F1来枚举设备。这需要使能赛普

拉斯设备控制中心软件来初始化USB传输。 ③ 集成的同步从器件FIFO描述符:

a.支持4个套接字访问。 b.数据总线宽度为32位 c.输入时钟为100MHz d.按照下面来配置4个标志:

i. ii.

FLAGA:进程0的满标志

FLAGB:水印值为6的局部标志,表示进程0.

iii. FLAGC:进程3的空标志 iv.

FLAGD:水印值为6的局部标志,表示进程3.

请注意,GPIFII Designer工程提供该应用笔记展示了上面的设置如何完成。固件工程也展示了如何使用CyU3PGpifSocketConfigure()API来配置水印值。

④ 配置锁相环频率为400MHz,这一步通过设置setSysClk400参数来完成,

输入到CyU3PDeviceInit()函数中。请注意,对于100MHz,32位数据的从器件FIFO,不可缺少该函数。 ⑤ 按照下面步骤设置DMA通道:

a.对于回写,短包,ZLP传输,需要创建2个DMA通道。一个P2U通道,其中PIB_SOCKET_0作为生产者,UIB_SOCKET_1作为消费者。DMA缓冲区大小是512或者1024字节取决于连接的是2.0还是3.0设备。DMA缓存数为2. 一个U2P通道,其中PIB_SOCKET_3作为生产者,UIB_SOCKET_1作为消费者。DMA缓冲区大小是512或者1024字节取决于连接的是2.0还是3.0设备。DMA缓存数为2.(注:只有P2U通道时为短包和ZLP使用的)

图15 回写传输设置

图16 短包和ZLP传输设置

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

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

利用EZ-USB FX3 从器件FIFO接口进行设计(4).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