您当前的位置:五五电子网电子知识单片机-工控设备嵌入式系统-技术采用FPGA芯片内嵌PCI Express End point Block硬核来进行PCI 设计 正文
采用FPGA芯片内嵌PCI Express End point Block硬核来进行PCI 设计

采用FPGA芯片内嵌PCI Express End point Block硬核来进行PCI 设计

点击数:7111 次   录入时间:03-04 11:52:37   整理:http://www.55dianzi.com   嵌入式系统-技术

    (2)数据通过集成在存储器端的Wishbone总线输入到数据缓存区(Tx_ram)中,在数据缓存区(Tx_ram)中根据规定格式形成TLP包;

    (3)根据PCI Express协议,将在数据缓存区(Tx_ram)中的TLP包通过集成端点模块发送出去。

    PCI Express写传输是上述的逆过程。

    其原理框图如图7所示。h.JPG

      2.2 设计买现

    Xilinx的V5/V6系列FPGA提供了一个PCI Express硬核端点模块,此端点模块提供了一个PCI Express接口通信的底层配置,但没有包含对TLP包的编码及解码逻辑。因此,需要在设计中实现TLP包的编码及解码逻辑功能。编码是将来自Wishbone片上总线的数据打包成TLP格式存入Tx_ram;解码即是在Rx_ram中提取TLP包的有效载荷。在解码逻辑中,最重要的就是要根据包头的类型字段和格式字段来正确确定事务的类型、头的大小、有效载荷是否存在。

    在应用模块的存储器端和FPGA端点IP核之间实现Wishbone的点对点连接,存储器端接口为主端口,与硬核接口端为从端口。实现了32 b/16 b/8 b的单个存储器的读和写以及主机到应用模块间的DMA传输。需要注意的是,在Wishbone读/写操作的时候,一个时钟周期只能进行一个双字的传送,对多个双字进行读写时需要多个时钟周期。

    主机到应用模块间的DMA传输包括DMA写操作和DMA读操作,其状态流程如图8所示。i.JPG

   



www.55dianzi.com


    DMA写操作实现的主要方法是主机将TLP包头中的各个字段正确填充,按照32位并组装成TLP包头,通过主机PCI Express接口传输到集成端点硬核。硬核收到数据后,缓存到Rx_ram中,在解码逻辑控制下,根据包头类型(10/11b)及格式字段(00000b)发起Wishbone写操作,将TLP包的有效载荷写入存储器中。
    在进行PCI Express的DMA读操作时,数据通过wishbone总线读入,在编码逻辑控制下,数据按照TLP包格式写入Tx_ram中,将数据打包成一个3DW完成包,等待端点模块发送。
2.3 功能仿真
    本设计在XUPV5 LX110T开发板上进行了功能验证试验。首先利用Xilinx公司的CORE Generator工具生成PCI Express端点IP核,其主要参数是链路数为X1,基地址0使能,地址类型为32位,访问类型为Memory类型,用户时钟输入为62.5 MHz。编程设计完成后,通过JTAG接口下载到FPGA芯片中,用Chipscope进行测试,波形图如图9~图10所示。

a.JPG

    通过数据传输试验测试,Wishhone转PCI Express接口的传输速率能达到80 MB/s以上,系统工作稳定。目前,Wishbone实现了32 b/16 b/8 b的单个存储器的读和写和DMA读写。如能够编程实现Wishbone大字节块的突发传输,传输速率将大大提高,这也是下一步开发的重点。

    3 结语

    测试试验结果证明,采用Wishbone和端点IP实现PCI Express总线接口,具有较高的通信速率,能满足许多应用的一般通信要求,特别是开发过程简化且极大地缩短了开发时间。这种设计模式能够更加专注于应用功能的实现而不必在一些公共模块(如PCIExpress)上花费更多的时间和成本。另外,本文采用FPGA芯片内嵌PCI Express End point BLOCk硬核来进行PCI Express的设计,实现方式也为相似产品开发提供了有益参考。



上一页  [1] [2] 


本文关键字:暂无联系方式嵌入式系统-技术单片机-工控设备 - 嵌入式系统-技术