微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于FPGA的PCIE总线扩展卡的设计

基于FPGA的PCIE总线扩展卡的设计

时间:10-11 来源:互联网 点击:

DMA传输操作结束。开发人员可以用这个状态单元来察看本次传输是否结束,从而开始一个新的传输周期。

DMA长度用来设置本描述符对应的DMA传输的长度,是以32位为单位的。主机端地址用来指示数据存放存放的位置。

3. 2 实现范例

根据上面介绍的描述符表,下面给出一个链式DMA读的驱动程序例子。首先生成一个描述符表,然后把描述符表表头的4个字段的内容分别写入BAR2地址偏移量为0x0,0x4,0x8和0xC寄存器中。写完后即开始此次链式DMA读传输,while循环用于等待链式DMA结束。从下面的代码可以看出,2个描述符对应2次DMA操作。

图1是用SignalTap工具获取的链式DMA读时序图。PCIE核接收tx_req0请求信号,然后给出一个tx_ack0,同时将tx_dr0置为有效,该信号套住的TXData就是需要读取的有效数据。在每次DMA结束之后,PCIE核都会用同样的控制逻辑给主机传送1个已完成DMA次数的状态字,如图1中的44040000h。

4 性能测试

在做总线性能测试时,采用链式DMA传输方式,共4个描述符表。根据实际使用的PCIE总线通道数和DMA长度的不同,实际测试得到的总线速度也不同,表3给出了参考数据。

5 结语

使用FPGA来设计PCIE总线扩展卡,可以省去专用的PCIE接口芯片,降低了硬件设计成本,提高了硬件的集成度。利用FPGA的可编程特性,大大提高了设计灵活性、适应性和可扩展性。PCIE总线提供了高速、独享的数据交换通道,确保在大数据量的数据交换时不会出现瓶颈,而且作为新一代总线,它使系统在获得更高性能的同时,具有了良好的升级性。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top