PCIe数据采集板Verilog逻辑设计_第1页
PCIe数据采集板Verilog逻辑设计_第2页
PCIe数据采集板Verilog逻辑设计_第3页
PCIe数据采集板Verilog逻辑设计_第4页
PCIe数据采集板Verilog逻辑设计_第5页
已阅读5页,还剩5页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PCIE数据采集板VERILOG逻辑设计V101、概述为了实现PC与T2板卡之间的高速数据传输(约100MB/S),我们采用PCIEXPRESS10总线协议实现。PCIEXPRESS10总线协议在PCI总线基础上近一步提高了传输效率,X1单通道传输带宽约为25GB/S,除去8/10编码转换和协议实现部分的损耗外,实际数据传输带宽约为166MB/S,完全能到达要求。PCIEDATADUMPBOARDV10板实现了PCIE接口到本地数据接口的桥接。板卡采用PEX8311作为PCIE总线到本地总线的桥接芯片。PEX8311是PLX开发的第一款PCIE总线到本地总线的接口芯片,支持PCIEXPRESS10A基本规范。控制部分采用XILINX的XC4LV100,主要实现对PEX8311的传输控制及数据缓冲等功能。系统框图见图11。PCT2BOARDPCIEXPRESS10X1INTERFACEPEX8311XILINXXC4LV100DATABUSPCIEDATADUMPBOARDV10ALTOBEAM图11、PCIE数据采集板系统框图2、PEX8311应用及配置21、PEX8311芯片特点1集成了单通道、全双工25GBS传输的PCIEXPRESS端口;2本地总线配置支持8位、16位和32位的总线结构;3支持三种操作模式,使用灵活;4高性能DMA数据传输支持块模式、集散模式、循环队列管理和命令模式;5支持端点和根组件模式;6芯片小型封装。适合紧凑的电路板设计;7芯片低功耗设计;833V的IO并且兼容5V系统;9串行E2PROM用来可选择的导入配置,支持接口和MICROWIRE接口;10有8KB的通配共享RAM。22、PEX8311应用简介PEX8311由两组桥接模块组成PCIEPCI(寄存器中的DEVICEID为8111)和PCI本地总线(寄存器中的DEVICEID为9056),相应的配有两组寄存器。PEX8311支持外部EEPROM对寄存器分别进行配置,也可以通过PC或本地处理器进行配置。PEX8311可配置为端点模式ENDPOINTMODE和根组件模式ROOTCOMPLEXMODE。端点模式多用于设备端的桥接模式。根组件模式多用于PC端的桥接模式。在此我们选用端点模式。此模式下有三种操作类型C模式、J模式和M模式。C模式非复用地址/数据总线模式,最为通用的模式,支持多数的MCU、ASIC和FPGAJ模式复用地址/数据总线模式,即部分地址/数据总线复用,支持部分MCU和FPGA。M模式摩托罗拉MPC850、MPC860等处理器专用模式。由于C模式的操作相对最为简单,所以选择C模式。C模式下的几个常用信号为LCLKPEX8311本地总线系统时钟,本设计中选用66MHZ。LHOLDPEX8311本地总线请求信号,上电为低电平,当PEX8311需要控制本地总线时,拉高,待LHOLDA信号响应后,PEX8311获得本地总线控制权。LHOLDA本地总线请求响应信号,上电为低电平,当PEX8311发出本地总线控制权请求信号LHOLD时,由本地处理器相应,将LHOLDA拉高。LA312本地30位地址总线。LD310本地32为数据总线。LBE30数据位宽设置,如果是32位数据,则LBE300000。ADS指示地址有效并且开始数据传输,ADS在每次传输的第一个时钟周期插入。BLAST作为输入时,本地总线主机插入BLAST来指示总线的最后一次数据传输;作为输出时,PEX8311插入BLAST来指示总线上的最后一次数据传输。READY在直从或者DMA模式下,本地从机插入READY来指示读取的数据或者要写入的数据会在下一个LCLK的上升沿被采样。LW/R读写控制位,对于DMA块传输,LW/R0为本地总线到PCIE方向;LW/R1为PCIE到本地总线方向。在C模式下又有三种数据传输模式直主模式(DIRECTMASTERMODE),直从模式(DIRECTSLAVEMODE)和DMA模式。直主模式本地处理器掌握本地总线控制权。寄存器配置和PEX8311芯片控制都由本地处理器完成。直从模式PEX8311掌握本地总线控制权,寄存器配置和PEX8311芯片控制由PC端完成。DMA模式PEX8311掌握本地总线和PCIE端总线的控制权,此模式下的数据传输无需本地处理器或PC处理器干预。DMA模式中,PEX8311提供了两个完全独立的通道DMACHANNEL0和DMACHANNEL1,每个通道都配有256字节深度的独立异步FIFO;支持块模式、集散模式、循环队列管理和命令模式。块模式下支持1四字传输、4四字传输及持续传输模式。由于DMA块模式无需PC或本地控制器干预,传输效率高,所以可以大大降低控制器的工作量并且提高数据传输速率,为了达到最大的数据传输效率,我们选择DMA块模式持续传输方式进行数据传输。23、C模式DMA块传输配置231、DMA块传输PC处理器或者本地处理器设置DMA的PCI和本地的开始地址,传输字节数和传输方向,然后PCIE处理器或者本地处理器设置DMA通道开始和使能位(LCS_DMACSR0/11011B)来初始化一个传输。PEX8311进入内部PCIE地址空间来产生一个在PCIE界面和本地总线的TLP,然后传输数据。传输结束后,PEX8311设置相应通道的通道完成位(LCS_DMACSR0/141),然后插入一个中断(LCS_INTCSR16和/或8和/或LCS_DMAMODE0/117和/或10)到本地处理器或者PCIE界面(可编程)。通道完成位可以采用轮询的方式,以取代中断,来指示DMA传输状态。DMA传输示意图见图21、图22。在DMA传输中,PEX8311是PCIE端传输的发起者(产生TLP)和本地总线的主机,对于同一时间的响应,直从(DIRECTSLAVE)或者直主(DIRECTMASTER)拥有更高的优先级。当下面的一个条件发生时,DMA控制器会释放内部PCI总线1、本地DMAFIFO满(PCIE到本地总线)。2、本地DMAFIFO空(本地总线到PCIE)。3、达到输出字节数(TRANSFERSIZE)。4、PCI总线超时。5、PCIE桥声明与DMA控制器断开连接。当下面的一个条件发生时,DMA控制器会释放本地总线1、本地DMAFIFO空(PCIE到本地总线)。2、本地DMAFIFO满(本地总线到PCIE)。3、达到传输字节数(TRANSFERSIZE)。4、本地总线超时。5、直从(DIRECTSLAVE)请求挂起。6、本地处理器插入了BREQI。2311、单周期模式(SINGLECYCLEMODE)单周期模式是默认的数据传输模式。在该模式下,PEX8311每个数据周期都声明一个ADS。单周期模式的起始地址可以是任意的。在单周期模式中,突发模式位取消(LCS_DMAMODE0/180)。对于32位本地总线,当DMAPCIE到本地总线方向传输的起始地址不是4字(DWORD)格式,PEX8311开始一个单周期模式传输直到下一个DWORD格式。2312、突发4模式(BURST4MODE)突发4模式强制PEX8311开始4个4字的突发传输。突发4模式通过使能相应通道的突发、复位BTERMINPUTENABLE位(LCS_DMAMODE0/18710B)来开启。突发4模式可以以任何格式的数据开始,直到下4个数据。第一个突发可以以任意地址开始。从第二个突发开始是4个数据周期,第一个和最后一个突发可以少于4个数据周期。PEX8311每插入一个ADS,会开始一个新的突发传出。对于32位本地总线,当DMA的PCIE到本地总线传输起始地址不是4字格式,PEX8311会进行单周期传输(SINGLECYCLE),直到下一个4字格式。2313、连续突发模式(CONTINUOUSBURSTMODE)连续突发模式(CONTINUOUSBURSTMODE)可以使PEX8311的数据传输长于4个数据周期,然而,这需要可以接受长于4个数据周期的特殊的外部设备。对于DMA传输,当在突发4模式下设置了固定地址传输后(LCS_DMAMODE0/1)111),则默认为连续突发模式。连续突发模式通过使能相应通道的突发、使能BTERMINPUTENABLE位(LCS_DMAMODE0/18711B)来开启。在连续突发模式下,PEX8311插入一个ADS然后开始持续传输数据。如果从设备需要一个新的地址周期(ADS),从设备可以插入一个BTERM,PEX8311完成当前传输后,插入一个ADS,开始新的数据传输。图21、DMA数据传输,PCIE到32位本地总线方向图22、DMA数据传输,32位本地总线到PCIE方向232、DMA传输时序图图23、DMA数据传输,PCIE到32位本地总线方向图24、DMA数据传输,32位本地总线到PCIE方向233、DMA寄存器配置PEX8311上电后全部寄存器恢复默认值,此时本地总线的控制权为在本地处理器,以DMACHANNEL0通道为例,需要配置如下相关寄存器进行DMA传输初始化LCS_DMAMODE0DMA模式寄存器LCS_DMAPADR0DMA传输PCIE端起始地址设置寄存器LCS_DMALADR0DMA传输本地总线端起始地址设置寄存器LCS_DMASIZ0一次DMA传输数据字节数设置寄存器LCS_DMADPR0设备描述符指针寄存器LCS_DMACSR0命令/状态寄存器图25为DMA初始化示意图图25、DMA初始化示意图根据要求设置相应寄存器后,分别置位LCS_DMACSR0寄存器中的DMACHANNEL0ENABLE位和DMACHANNEL0START位,开始DMACHANNEL0传输。234、PCIE到本地总线方向DMA传输优化按上述配置后开始DMACHANNEL0传输,发现PCIE到本地总线方向的传输速度总是很慢,约30MB/S,而由本地总线到PCIE方向的传输速度正常,约160MB/S。后查阅资料发现,上述寄存器设置虽可以正常启动DMA传输,但不能达到PCIE到本地总线方向DMA传输的最大速度,PCIE端的传输速率受到了限制,还需设置PCIE端相关寄存器。下面简单介绍下PCIE到本地中线方向DMA传输的优化方法。2341、PCIE到LOCALBUS方向DMA传输的关键参数1)、一次DMA传输数据量的大小(TRANSFERSIZE)2)、PCIE读预取(PCIEREADPREFETCH)3)、PCIE最大读传输请求大小(PCIEMAXIMUMREADREQUESTSIZE)一次DMA传输数据量的大小(TRANSFERSIZE)第一个因素是一次DMA传输数据量的大小(TRANSFERSIZE)。PEX8311DMA的两个通道都有256BYTEDEEP的FIFO,这些FIFO支持PCIE到本地总线的独立异步并发操作。理论上,要达到最大的数据吞吐量,要在PCIE界面和本地总线界面都进行大量的,持久的突发传输。传输数据量越大,总线和CPU的空闲时间越短,传输效率也就越大。PCIE读预取(PCIEREADPREFETCH)第二个因素是PCIE读预取(PCIEREADPREFETCH)。针对PCIE到本地总线方向,PEX8311DMA引擎初始化读传输到PCIE界面,因为数据不能马上有效,DMA读操作被从系统内存取数的时间所延迟。由于DMA读操作是从连续地址取数,预取功能就必须要使用,以避免上述延时。设置PCIE读预取大小的寄存器为PCICONTROL的PROGRAMMEDPREFETCHSIZEFIELD(OFFSET100CH,PCICTL2927)。其中定义了直主和DMA模式下的读操作中,从PCIE内存预取的数据字节数。默认为000B,即关闭该功能,每次读操作只取出需要的数据数量。如果设置为111B,则会在第一次读的时候预取出4KB的连续数据,这样延时时间只在每4KB数据传输后发生一次。推荐PROGRAMMEDPREFETCHSIZEFIELD位选择最大值(111B)。然而,这个值不应该超过一次DMA传输数据量(TRANSFERSIZE)。理想情况下,一次DMA传输数据量(TRANSFERSIZE)应该是预取字节数的倍数,传输应该为4字格式。如果预取字节数大于一次DMA传输数据量(TRANSFERSIZE),多出来的预取字节数就会被浪费。PCIE最大传输请求大小(PCIEMAXIMUMREADREQUESTSIZE)第三个因素是针对PCIE界面传输的,传输大块数据时,事务包尺寸越大效率越高。寄存器PCIEXPRESSDEVICECONTROL的MAXIMUMREADREQUESTSIZEFIELD(OFFSET68H,DEVCTL1412)用来设定读请求时PCIEXPRESS端口的最大事务包尺寸,默认值是010B,即512字节,然而,可以最大设定到4KB,配合前面所说的4KB预取字节数,可以达到最大的传输效率。3、VERILOG逻辑设计FPGA部分的逻辑只负责根据DMA传输时序图,图23,图24进行相应信号的控制,寄存器修改由PC端软件完成。VERILOG逻辑设计为一个FSM状态机,最初设计为4个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论