pcie调试总结(3)

2019-03-28 12:26

图11 PCIE IPCore Parameter Set Page

-Device Identification Registers

这个目录下的参数设置了当前使用的pcie核的一些身份信息,在配置空间里面,在Qsys系统下,逻辑自身读取不到这些寄存器,每个公司都有自身的ID,以做区分。Altera公司的参数设置如上图所示。

图12图11 PCIE IPCore Parameter Set Page(Cont.)

-Buffer configuration

这个参数设置了接收与发送数据的payload的大小,该值不仅与器件有关系,还要符合pcie协议中规定的数据长度。本设计中,Maximun payload size选择为256Bytes,RX buffer credit allocation选择为Maximun,其余灰色的选项是系统自动根据前面的设置计算出来的。 -Avalon-MM Settings

这个选项设置了与Avalon总线相关的参数。 -Peripheral mode

是指pcie的工作模式,有两个选项Requester/Completer和Completer-only;

本设计中选项Requester/Completer,有关Requester与Completer的相关资料,要参考PCIE2.1的相关标准,里面有详细的描述。

图13图11 PCIE IPCore Parameter Set Page(Cont.)

Address Translation这个选项下的参数直接与数据传输相关,即DMA传输数据要依靠这个来完成。

-Address translation table configuration 这个参数是指描述符的属性,即cpu维护的是动态的描述符链还是静态描述符链。所谓动态描述链,是指cpu要实时更新描述链;相对的,静态描述符链则是指描述符链固定不变。选择哪种方式,取决于系统方案,本设计中,采样动态描述符链的方式。即使选择了动态模式,cpu也可以根据情况维护自己的链表是动态的还是静态的。 -Number of address pages

这个参数是指地址翻译表/描述符链中的最大的描述符个数,实际的描述符个数可小于该值,但不可大于该值,该值以2^N的形式存在,最大值为512. -Size of address pages

这个值限制了描述符中每页中传输数据的大小。这个大小与实际应用有关,可根据实际需要来定。本设计中,选择一个page 4Kbytes。

对于以上的三个参数,必须与cpu那边的配置一样,否则DMA传输肯定不会成功。 设置好以上参数以后,点击右下角的finish,即可以生成Qsys系统下的PCIE IPCore了。

以上内容说明了生成用到的component的生成方法以及参数设置等情况,里面涉及到的一些内容没有详细说明,接下来的一部分内容将进行补充。

第一个要补充的内容是有关CRA的描述。CRA是Control Registers Access的缩写,字面意思是控制寄存器访问。在Qsys系统中,fpga的fabric不能访问这些内容,只有cpu才有权限。在Avalon-ST的接口中,fpga的fabric也可以通过接口访问,这里不做说明。pcie IPCore的CRA空间大小共有16Kbytes,这16Kbytes又分为4个子空间,每个子空间4Kbytes,如下表所示:

表7 CRA地址空间分配表

0x0000~0x0fff这个4Kbytes空间只有cpu能否访问,本设计中不做深入探讨。

0x1000~0x1fff这个地址空间是有关地址映射表的,是本设计中软件需要仔细研究的内容 0x2000~0x2fff是保留的。

0x3000~0x3fff是有关中断的一些描述,稍后会介绍。 这里对本设计最为重要的就是地址翻译表了。

Avalon Address 根据(描述符/数据地址)hostMemory的地址和映射表以及固定Slave 地址组成。

hostMemoryAvalon address 0FPGA固定值0x01PCI-E High Address 311211PCI-E Low Address 011位最多支持512个描述符,存放描述符的索引从0-511High indexPCI-E Low Address 12110Slave Base Addr3121203100x1000310x10040x1000Pci-e Address 121010Pci-e h address(64位时有用,32位保留)310...0x1FFF0x1FFF映射表

图14地址转换示意图

下表是translation table的相关说明。

表8 translation table

下面这段说明了Avalon地址的含义。

图15 地址转换示意图

按照以上方式就可以完成地址转换了。

下面补充下有关中断的内容。

PCIE支持的中断类型有以下几种: -MSI interrupt/MSI-X interrupte -Legacy interrupt -INTX interrupt

就本设计而言,由于使用的是Qsys系统,所以MSI/MSI-X interrupt就不支持了,支持的是INTX虚拟中断。因为INTX通常情况下是采用管脚的方式给cpu处理,所以pcie这边的INTX是虚内的中断管脚。当触发一个中断时,PCIE IPCore的配置空间里面有关中断的寄存器会发生变化,这样PCIE IPCore会发送一个中断TLP包给cpu,当cpu收到中断后,再查询PCIE IPCore配置空间里面的寄存器,以确认触发了哪个中断,从而响应对应的中断处理程序。PCIE IPCore的配置空间里面涉及到中断的寄存器有以下几个:

表9 Register Map


pcie调试总结(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:当鲜花绽放于阳光之下

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

马上注册会员

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