新闻中心

EEPW首页 > EDA/PCB > 设计应用 > 基于Virtex-6 FPGA的双缓冲模式PCIe总线设计方案和

基于Virtex-6 FPGA的双缓冲模式PCIe总线设计方案和

作者:时间:2013-02-27来源:网络收藏

2 软件无线电平台设计

软件无线电基于可编程、可重构的通用硬件平台,通过加载不同的软件实现不同的无线电功能,广泛应用于军用和民用领域。为了能够实现复杂的算法,其平台需要具备高速数据交换和实时信号处理的能力。该设计参考Xilinx ML605开发套件,基于Xilinx 6 LX240T 芯片,通过增加相应的模块搭建通用的软件无线电平台。

软件无线电原理框图如图3所示。信号获取模块采用两片ADC和DAC以实现IQ两路信号的数模转换;通信模块由以太网和USBRS232接口组成;扩展卡可以是射频发射机或接收机,通过扩展卡接口与母板相连;JTAG接口提供在线编程和内部测试功能;存储器件包括512 MB DDR3内存和128 MB平台Flash,分别用于动态数据存储和配置;人机接口由LED/LCD、按键和开关等元件组成,实现人机对话;200 MHz有源晶振和SMA时钟接口组成时钟输入模块,向提供时钟基准;8通道PCIE接口和IP核实现平台与PC间高速数据交换。

基于Virtex-6 FPGA的双缓冲模式PCIe总线设计方案和实现

图3 软件无线电原理框图

3 双缓冲PCIE总线设计

3.1 PCIE驱动设计

PC端基于Linux(Ubuntu 10.10)操作系统。该操作系统免费开源,安全稳定灵活,适合低成本软件开发。驱动程序包含数据流接口和控制接口。数据流接口用于Linux用户空间和SRSE平台间高速的数据交换;控制接口使用户可以观察和配置SRSE平台寄存器,例如通过控制接口,用户可以在PC端改变SRSE平台的调谐频率等参数。数据流接口是双向独立的,支持双/单工,即可以同时读和写数据。以数据发送(从PC到SRSE)为例,用户空间调用write()函数将任意数量的数据发送至驱动,驱动整理数据碎片以满足PCIE对数据对齐和传输块数据量的要求。当数据满足4096字节,驱动将数据块发送至Root Complex并保留已发送数据的列表,等待接收来自SRSE平台的写操作中断。PCIE驱动数据接收的原理如图4所示。当用户空间调用read()函数或者驱动接收到来自PCIE设备的数据时,驱动初始化读操作。驱动程序将保持阻塞(blocking),直到用户空间调用read()函数,并且已接收到足够的数据包,从而能够填满read()请求的数据量。碎片整理模块对已接收的数据进行整理,然后将数据块返回至用户空间,并通知其解除驱动阻止。

图4 PCIE驱动中的数据接收



关键词: Virtex FPGA PCIe 模式

评论


相关推荐

技术专区

关闭