基于FPGA的PCIE接口设计(4)

2019-03-09 12:53

基于FPGA的PCIE接口设计

// BarNum BAR空间编号 // OffSet 偏移地址 // Data 32位数据 //返回值:

// (0) 成功 // (1) 失败

UINT PCIEDriver::AddWrite32(DWORD BarNum, DWORD OffSet, UINT32 Data) {

DWORD dwStatus;

dwStatus=WDC_WriteAddr32(DHandle, BarNum, OffSet, Data); if (WD_STATUS_SUCCESS != dwStatus) } return 0; }

//功能:32位存储器读操作 //参数:

// BarNum BAR空间编号 // OffSet 偏移地址

// Data 32位数据存储地址指针 //返回值:

// (0) 成功 // (1) 失败

UINT PCIEDriver::AddRead32(DWORD BarNum, DWORD OffSet, UINT32* Data) {

DWORD dwStatus; }

12

{

return 1;

dwStatus=WDC_ReadAddr32(DHandle, BarNum, OffSet, Data); if (WD_STATUS_SUCCESS != dwStatus) { } return 0;

return 1;

基于FPGA的PCIE接口设计

//功能:打开DMA //参数:

// ppBuf PC端接收数据缓存地址 // BytesCount 字节数 //返回值:

// (0) 成功

// (1) DMA句柄打开失败 // (2) 锁定DMA内存失败 // (3) DMA已打开

UINT16 PCIEDriver::DmaOpen(PVOID *ppBuf,DWORDBytesCount) { DWORD dwStatus; if (DmaFlag==TRUE) { return 3;

}

dwStatus=WDC_DMAContigBufLock(this->DHandle, DMA_TO_FROM_DEVICE|DMA_KERNEL_BUFFER_ALLOC, BytesCount,

&pDma);

if (WD_STATUS_SUCCESS != dwStatus)

{ return 2; }

DmaFlag=TRUE; return 0;

}

//功能:关闭DMA //返回值:

// (0) 成功 // (1) 释放DMA失败 // (2) DMA没有被打开 // (3) DMA没有被打开 UINT16 PCIEDriver::DmaClose(void) {

DWORD dwStatus;

if (DmaFlag==FALSE)

13

ppBuf,

基于FPGA的PCIE接口设计

{ } if (pDma) { dwStatus = WDC_DMABufUnlock(pDma); if (WD_STATUS_SUCCESS != dwStatus) return 3;

{ return 1; }

} else {

return 2; }

pDma=NULL; DmaFlag=FALSE; return 0;

}

14

基于FPGA的PCIE接口设计

第四章FPGA的流程

4.1 PCIE部分与外围接口定义

4.1.1概述

本设计使用的芯片是Virtex6的LX130T。 PCIE接口协议基于x8模式,使用的Integrated Block for PCI Express。

PCIE模块主要完成信号处理计算机与FPGA信号处理板之间的通信,主要包括三种的工作模式:

(1)参数下发模式:由信号处理计算机向FPGA下发雷达工作所需要的各项参数,包括波控模块参数、频率跟踪模块参数,时序控制模块参数,DDC模块参数,脉压模块参数等

(2)参数上传模式:由FPGA板向信号处理计算机上传的参数,主要用于计算机回读雷达此时的工作状态以及安排下一次下发的参数

(3)数据传输模式:主要是FPGA将处理完成的数据传给信号处理计算机,以完成目标的检测和显示等雷达的功能 4.1.2模块结构

Pciepcie_rx_doutpcie_rx_rdcmdpcie_int_okpcie_int_modepcie_dma_wrapperpcie_endpointBAR0控制寄存器双端口RAMPC机datadataBAR1数据寄存器data_vld

4.1.3接口信号与数据格式

15

基于FPGA的PCIE接口设计

PCIE_RST_NENBPCIE_EXP_TXPPCIE_EXP_RXPPCIE_EXP_RXNPCIE_EXP_TXNPCIE_USR_CLKPCIE_EXP_TXPPCIE_FIFO_RSTPCIE_EXP_TXNPCIE_RX_RDPCIE_SYS_CLK_PInst_pciePCIE_RX_DATA_OK_NUMPCIE_SYS_CLK_NCMDPCIE_RX_DOUTCMD_VLDPCIE_RX_AEMPDATAPCIE_RX_EMPDATA_VLDCONFIG_DONEPCIE_INT_OKPCIE_INT_MODEDATA_ADDR

4.1.4接口信号定义与说明

(1) 信号名称、方向和数据位宽

? PCIE_RST_N 模块输入 1位 ? PCIE_EXP_RXP 模块输入 8位 ? PCIE_EXP_RXN 模块输入 8位 ? PCIE_EXP_TXP 模块输出 8位 ? PCIE_EXP_TXN 模块输出 8位 ? PCIE_SYS_CLK_P 模块输入 1位 ? PCIE_SYS_CLK_N 模块输入 1位 ? PCIE_USR_CLK 模块输出 1位 ? PCIE_FIFO_RST 模块输出 1位 ? PCIE_RX_DOUT 模块输入 64位 ? PCIE_RX_RD 模块输出 1位 ? DATA 模块输出 36位 ? DATA_VLD 模块输出 1位 ? DATA_ADDR 模块输出 6位 ? ENB 模块输出 4位 ? PCIE_INT_OK 模块输入 1位 ? PCIE_INT_MODE 模块输入 3位 ? DATA_IN 模块输入 36位 ? DATA_INVLD 模块输入 1位

16


基于FPGA的PCIE接口设计(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:东莞某码头工程质量计划_secret

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: