基于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总线提供了高速、独享的数据交换通道,确保在大数据量的数据交换时不会出现瓶颈,而且作为新一代总线,它使系统在获得更高性能的同时,具有了良好的升级性。
- “开架式”软件架构设计(05-23)
- ARM系统预引导固件的新机遇- UEFI(07-12)
- 基于μC/OS-II和TCP/IP协议的多串口服务器(08-23)
- 面向构件的门诊部信息管理系统软件架构(10-16)
- 基于Android平台的车载信息娱乐系统架构研究(02-07)
- 基于DSP和CPLD增强数据采集的可扩展性(03-01)