在FLAGD有效后的一个周期进入该状态。该状态取消了所以写控制信号,正如前面公式中提到的,对于每个公式,在局部FLAG变为0后,FX3应该采样SLWR#信号2个周期。考虑到从FPGA到接口有一个周期的延时,FPGA在局部FLAG为0后的2个周期宣布SLWR#信号有效。水印值为6,我们期待FLAGC变为0,在局部标志后的6个之中周期。.这个状态保持4个周期的执行来确保FLAGC上有效状态的有效性。 回写例子:
在完成一次写回操作的过程中,状态机经历6个状态。相应的动作如下:
图24 回写转换状态机
状态G:
初始化所有的寄存器和信号 相关控制信号:
PKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=1;A[1:0]=3 状态A:
无论何时FLAGC=1,状态机将进入这种状态,该状态确保在SLRD#信号有效前的一个周期,地址设定。 状态B:
从器件FIFO读操作有效控制信号有效。在该状态下,数据总线采样,数据被写
到内部RAM中。从器件FIFO控制信号如下:
PKTEND#=1;SLOE#=0;SLRD#=0;SLCS#=0;SLWR#=1;A[1:0]=3
注意,从SLRD#到数据有两个周期的延时。该延时从读数据开始计数。该状态保持轮询局部标志,在不是1是退出。 状态F:
该状态复位所有的读控制信号,利用写入A[1:0]=0来驱动FIFO地址总线。 状态C:
不论何时FLAGA=1,状态机将进入该状态。状态机宣布写信号: PKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=0;A[1:0]=0 利用该状态下的数据驱动数据总线。 状态H:
该状态复位所有的写控制信号。内部RAM缓存将被清零,控制信号如下: PKTEND#=1;SLOE#=1;SLRD#=1;SLCS#=0;SLWR#=1;A[1:0]=0 工程操作 测试回写的步奏:
1. 通过 FMC连接器连接FX3 DVK电路板和赛灵思SP601电路板,并给两块电路板供电。
2. 给赛灵思Spartan 6FPGA烧写程序指令,可以使用任何标准的编译器,例如IMPACT。
3. 给FX3设备烧写固件代码。可以用控制中心软件利用USB主机烧写。 4. 一旦固件下载完毕,FX3设备将枚举设备为超速设备。现在可以利用控制中心进行数据传输初始化工作。
5. 首先初始化一个来自USB主机的大量数据输出。选择端点,然后单击输出文件按钮。这将允许你浏览并选择一个相关数据文档去传送。
6. 现在FPGA处于等待FLAGA等于1的状态。只要PIB_SOCKET_0缓存中的数据有效,FPGA将读取数据,然后FPGA回写相同的数据并写回到FX3的PIB_SOCKET_3中。
7. 同理,对于Bulk IN传输,选择数据写入,先前写入的数据将被写回。 测试流传输
1.通过 FMC连接器连接FX3 DVK电路板和赛灵思SP601电路板,并给两块电路板供电。
2.给赛灵思Spartan 6FPGA烧写程序指令,可以使用任何标准的编译器,例如IMPACT。。FPGA使用GPIO输入来决定执行哪一种传输模式。在SP601 DVK电路
板上的开关SW8就是为了该目的。表5展示了不同的开关设置。对于流IN或OUT,烧写固件代码。
3.一旦固件下载完毕,FX3设备将枚举设备为超速设备。可以利用控制中心进行数据初始化。
4.对于需要的传输模式,设置拨码开关。
5.在流IN模式,FLAGA处于等待FLAGA等于1的状态。只要缓存有效,FPGA将开始持续向FX3的PIB_SOCKET_0传输数据。
6. 在流OUT情况下,FPGA处于一个等待FLAGC变为1的状态。只要数据有效,FPGA持续从FX3的PIB_SOCKET_3中读取数据。
注意,同样的FX3固件能够被用于IN或OUT。在该固件中,8个缓存被分配给P2U DMA通道,4个缓存被分配给U2P通道,然而,在固件中,8个缓存被分配给U2P DMA通道,4个缓存被分配给P2U通道。因此,更高的P2U性能将被固件演示。
测试短包和ZLP传输的步骤:
1. FPGA能够利用上面的固件来配置该状态,只需要配置拨码开关。 2. 烧写FX3设备固件代码。
3. 只要FX3固件被烧写好,一个分配到PIB_SOCKET_0的缓存有效。FPGA处于等待这个条件的状态,通过监测FLAGA。只要FLAG等于1,FPGA开始写FX3。 4. 如果开关被配置成短包转换,FPGA写一个全包后再写一个短包;同理,对ZLP,FPGA写一个全包再写一个ZLP。
5. 现在USB主机发出Bulk IN令牌包,在控制中心软件中,选择Bulk IN端点,然后单击穿上数据IN按钮,首先,接受全包。再次单击,将接受短包或ZLP。
6. 注意,FPGA持续写数据,所以能够完成多重的BULK IN传输。
总结:
从器件FIFO接口适合那些需要读写数据的外部FPGA,处理器或设备与FX3接口相连接。
该应用笔记描述同步从器件FIFO接口的详细信息。不同的FLAG配置也在GPIFII Designer工具有所扩展。该笔记展示了一个完整的设计实例。