您好,欢迎访问三七文档
PCIExpress详细设计目录1PCIEXPRESS介绍.......................................................................................................................12PCIEXPRESS参数与接口...........................................................................................................13实现框图与接口时序..................................................................................错误!未定义书签。4PCIEXPRESS中模块(功能)的原理与实现.............................................................................24.1应用层模块..................................................................................................................................24.1.1模块介绍................................................................................................................................24.1.2结构、算法(或原理)和实现.....................................................................................34.1.3参数和接口............................................................................................................................74.2配置信号采样模块......................................................................................................................74.2.1模块介绍................................................................................................................................74.2.2结构、算法(或原理)和实现.............................................................错误!未定义书签。4.2.3参数和接口............................................................................................................................84.3PCIE硬核模块.............................................................................................................................84.3.1模块介绍................................................................................................................................84.3.2结构、算法(或原理)和实现.............................................................错误!未定义书签。4.3.3参数和接口............................................................................................................................94.4LMI配置模块..............................................................................................................................94.4.1模块介绍................................................................................................................................94.4.2结构、算法(或原理)和实现..........................................................................................104.4.3参数和接口..........................................................................................................................104.5重新配置时钟模块....................................................................................................................104.5.1模块介绍..............................................................................................................................104.5.2结构、算法(或原理)和实现.............................................................错误!未定义书签。4.5.3参数和接口..........................................................................................................................104.6兼容性测试模块........................................................................................................................104.6.1模块介绍..............................................................................................................................101/12PCIExpress详细设计1PCIExpress介绍PCIE设备按照一定的拓扑连接构成总线结构,设备与设备通过协议规定的事务包(TLP)进行通信。PCIE垂直方向可分为应用层、事务层、数据链路层和物理层,协议规定每层实现的功能,每层功能配合实现设备的PCIE数据传输功能。PCIE硬核的结构图如下图1.1所示:CBBTestDriveraltpcierd_compliance_test.v应用层模块(altpcierd_example_app_chaining):主要实现PCIE应用层的功能配置信号采样模块(altpcierd_tl_cfg_sample):将PCIEIP核配置空间的特定寄存器内容读出来供应用层逻辑使用PCIE硬核模块(top_plus):主要实现PCIE协议中物理层、数据链路层和事务层的功能LMI配置模块(altpcierd_cplerr_lmi):PCIE设备检测到TLP传输错误时,向PC端报告错误,同时更新寄存器重新配置时钟模块(altpcierd_reconfig_clk_pll):实现IP核和其他模块时钟的配置兼容性测试模块(altpcierd_compliance_test):用于测试系统或设备的互操作性和一致性(通过按键完成CBB)2PCIExpress参数与接口表4-1PCIE模块接口InterfaceNameDirectionDescription2/12free_100MHzin本地时钟信号local_rstn_extin本地复位信号pcie_rstninPCIE复位信号refclkin参考时钟req_compliance_push_button_nin兼容性测试按键rx_in0in数据输入信号rx_in1in数据输入信号rx_in2in数据输入信号rx_in3in数据输入信号alive_ledoutPCIE工作正常led显示gen2_ledout识别gen1或gen2使用led显示lane_active_led[3:0]out显示4条lane的状态tx_out0out数据输出信号tx_out1out数据输出信号tx_out2out数据输出信号tx_out3out数据输出信号3PCIExpress中模块(功能)的原理与实现3.1应用层模块3.1.1模块介绍该模块主要包括收发端口转换、收发缓存、链式DMA和RC_slave数据传输功能、MSI中断。本模块实现端点设备的存储空间,通过该空间和系统主存储器交换数据从而实现数据传输。3/12收发端口转换收发缓冲MSI中断缓冲数据传输(RC_slave或链式DMA)PCIEIPcoreAvalonSTInterfacedata/descriptor3.1.2结构、算法(或原理)和实现a)收发端口转换模块Avalon-ST接口时序是数据流传输,将TLP的头标和数据均作为数据传输,本模块将接收信号转换成时序相对简单的data/descriptor接口,发送是其逆过程。b)收发缓冲模块本模块主要监控数据缓冲区可用空间大小,防止IP核发送数据过多,接收缓冲区溢出丢失数据。当接收缓冲区空间较小时,应用层暂不发送读请求信号,避免接收缓冲区溢出。为实现其功能,本模块主要例化一个10bit*32的双口RAM。当应用层发送一个存储器读请求TLP时,提取TLP中Tag字段作为地址,将TLP中Length字段作为数据存入双口RAM中。当接收到对应Tag带数据的TLP时,读取双口RAM中Tag值计算TLP所需缓冲空间大小,根据剩余缓冲区大小输出通知应用层,让其决定是否发送请求信号接收数据传输。发送过程处理类似,不再赘述。c)MSI中断缓冲模块由于发送和接收数据时会对数据进行接口转换和缓冲,具有一定延时,在数据未完成传输就通知IP核产生中断会造成CPU误认为数据传输已经完成,且IP核处理数据也需要一定时间,所以要对中断信号缓冲处理。d)数据传输模块4/12PCIE的数据传输主要通过Rc_slave或者DMA模块两种方式。1)Rc_slave模块本模块主要完成普通数据的传输,可在CPU的控制下直接访问BAR存储空间。由于DMA模块不能访问存储控制状态信息的
本文标题:PCIE详细设计
链接地址:https://www.777doc.com/doc-5073436 .html