xilinx-PCIE2.0接口-EP端设计总结.doc
《xilinx-PCIE2.0接口-EP端设计总结.doc》由会员分享,可在线阅读,更多相关《xilinx-PCIE2.0接口-EP端设计总结.doc(47页珍藏版)》请在咨信网上搜索。
1、1. PCIE说明PCIE协议定义了多种设备:根复合体(Root Complex),交换器(Switch),端点(Endpoingt),断就(Port),PCIE到PCI/PCI-X的桥(Bridge)等。根复合体是将CPU和主存储器连接到PCIE线路结构上的设备,能带包CPI启动PCIE事务和访问主存储器;交换器可以将任务由一个端口路由到另一个端口,在系统中用于多设备的互联,具体的路由方法包括ID路由,地址路由,隐含路由;Endpoint是指一个世纪的设备(请求者或完成者);port是设备与链路的接口;Bridge则是用来实现PCIE设备与PCI/PCI-X设备之间的连接,实现两种不同协议之
2、间的相互转换。PCIE核在多种模式中使用包来互换信息。包是在事务和数据链层中形成来从发送端到接收端的信息传递。必要的信息被添加到传输的包中。在接收结束,接收单元的每一层处理接收到的包,提取相关的信息并发送包到下一层。接收到的包是从他们物理层发送到数据链层和事务层的。PCIe 规范对于设备的设计采用分层的结构,有事务层、数据链路层和物理层组成,各层有都分为发送和接收两功能块。PCIe的事务层是协议的最上层,其主要功能是根据应用层提供的信息生成相应的请求包传递给数据链路层,并且处理由数据链路层发来的包,将其转换成应用层能识别的信息,协助数据链路层完成信用管理,实现协议规定的配置事务,IO事务,存储
3、事务和消息事务。在设备的发送部分,首先根据来自设备核和应用程序的信息,在事务层形成事务层包(TLP),储存在发送缓冲器里,等待推向下层;在数据链路层,在TLP 包上再串接一些附加信息,这些信息是对方接收TLP 包时进行错误检查要用到的;在物理层,对TLP 包进行编码,占用链路中的可用通道,从查封发送器发送出去。事务层包(TLP),数据链路层包(DLLP),物理层(PLP)产生于各自所在层,最后通过电或光等介质和另一方通讯。这其中数据链路层包(DLLP),物理层(PLP)的包平常不需要关心,在 IP核中封装好了。在 FPGA上做 PCIe的功能,变成完成事务层包(TLP)的处理。待移动数据的PC
4、I-Express协议的请求均由主CPU发出。l 当CPU向存储器映射输入/输出(MMIO)地址存储器发出命令时,数据向下游移动。Root Complex通常会生成一个具有对应MMIO位置地址、字节使能和寄存器内容的存储器写TLP。Endpoint接收存储器写TLP更新响应的本地寄存器后事务即终止。l 当CPU发出从MMIO地址加载寄存器的命令时,数据向上游移动。Root Complex通常会生成一个具有响应MMIO位置地址和字节使能的存储器读TLP。Endpoint在收到存储器读TLP后会生成带数据完成型TLP。完成包传送到Root Complex,有效载荷加载至目标寄存器后事务即完成。2.
5、 PICE核接口2.1系统接口表1 系统信号信号名方向定义Sys_rst_nInput异步信号。sys_rst_n在上电和热复位操作期间,必须被断言至少1500nsSys_clkOutput参考时钟:可选频率为100MHZ,125MHZ或者500MHZ2.2 PCIE接口PCIE接口由不同的发送(对)和接收(对)所构成的多线程组成。一个PCIE线由一对发送差分信号(pci_exp_txp, pci_exp_txn)和一对接收差分信号(pci_exp_rxp, pci_exp_rxn)组成。单线的只支持0线,双线只支持01线,四线支持0-3线,八线支持0-7线。下表2定义了4线核的发送和接收信号
6、。(只给了一线的信号)表2 PCIE接收和发送信号线信号名字方向定义0pci_exp_txp0OutputPCIE发送正:串行差分输出0pci_exp_txn0OutputPCIE发送负: 串行差分输出0pci_exp_rxp0InputPCIE接收正:串行差分输入0pci_exp_rxn0InputPCIE接收负:串行差分输入1pci_exp_txp1OutputPCIE发送正:串行差分输出1pci_exp_txn1OutputPCIE发送负: 串行差分输出1pci_exp_rxp1InputPCIE接收正:串行差分输入1pci_exp_rxn1InputPCIE接收负:串行差分输入2pci
7、_exp_txp2OutputPCIE发送正:串行差分输出2pci_exp_txn2OutputPCIE发送负: 串行差分输出2pci_exp_rxp2InputPCIE接收正:串行差分输入2pci_exp_rxn2InputPCIE接收负:串行差分输入3pci_exp_txp3OutputPCIE发送正:串行差分输出3pci_exp_txn3OutputPCIE发送负: 串行差分输出3pci_exp_rxp3InputPCIE接收正:串行差分输入3pci_exp_rxn3InputPCIE接收负:串行差分输入2.3 事务接口事务接口为用户设计提供了一个机制来产生和消耗TLP。2.4 发送接口
8、信号名位宽方向描述S_axis_tx_tlast1O帧发送结尾:标记包的结尾,只有在S_axis_tx_tvalid申明时才有效。S_axis_tx_tdata64O发送的数据S_axis_tkeep8O传输数据选通,决定所给定拍子数据有效字节。数据在s_axis_tx_tvalid 和 s_axis_tx_tready都有效时才有效。此信号的最低位决定数据低字节的有效性。当last信号没有断言时,只有0xFF有效。当last信号已断言时,只有0x0F和0xFF是有效的。S_axis_tx_tvalid1O数据有效信号,拉高表明发哦少年宫数据已准备好。S_axis_tx_tready1I置1表
9、明核准备好接收数据。S_axis_tx_tuser3O传输停止。可以在开始传输后的任意时间断言。S_axis_tx_tuser2O传输流。表明一个包在连续时钟周期上被提供并且在链路上能在确认的包写入核之前开始传输。S_axis_tx_tuser1O此信号标志当前进程中的包是错误的。此信号能在开始到结束传输的任意时刻被拉高。但是tx_err_fwd信号必须在s_axis_tx_tuser2断言时拉低。S_axis_tx_tuser0O端对端循环冗余检查摘要被附加。必须在TLP的开始时就被断言。Tx_buf_av6I发送buffer可用:表明核中空闲发送buffer的数量。每个空闲的传输buffe
10、r能够调节TLP来支持最大负载size。发送buffer的最大数量由支持的MPS和所选的块RAM配置决定。Tx_err_drop1I传输错误。表明核因为长度不匹配或者流传的时候数据在连续时钟周期上没有提供而丢弃了一个包。Tx_cfg_req1I发送配置请求。当核准备好发送一个配置或者其他内部生成的TLP时置1.Tx_cfg_gnt1O1.同意传输配置。是配置请求的响应。允许核传输一个内部产生的TLP。2.tx_cfg_req信号子在核生成的包已被服务,在任何请求生成之前总算解除断言的。因此,用户设计能够根据tx_cfg_req的上升沿来决定什么时候断言tx_cfg_gnt。3.在tx_cfg_
11、req给定要传输的用户创建的TLP相对于核生成的TLP更高的优先级之后保持tx_cfg_gnt为非断言状态。4.在断言tx_cfg_gnt一个时钟州后当tx_cfg_erq断言导致下一个要输出的包为核内部生成的包时拉高tx_cfg_gnt一个时钟周期。5.当没有buffer空间来存储内部包时,tx_cfg_req甚至在tx_cfg_gnt已经断言后保持断言状态。6.设计需要再次断言tx_cfg_gnt信号,因为最初的断言已经被捕捉到。7.如果不想改变内部生成TLP传输的优先次序,保持此信号为高。2.5 接收接口信号名位宽方向描述m_axis_rx_tlast1I接收帧结尾:包结尾信号。在tva
12、lid断言时才有效。m_axis_rx_tdata64I接收的数据m_axis_rx_tkeep8I接收数据选通决定接收数据的有效字节。m_axis_rx_tlast信号没有断言时,只有0xFF为有效值m_axis_rx_tlast信号断言时,有效值为0x0F额0xFFm_axis_rx_tvalid1I接收数据有效。m_axis_rx_tready1O接收端准备好接收数据。m_axis_rx_tuser9:2rx_bar_hit7:0I接收bar:表明当前接收事务的目标bar,从包的开头到m_axis_rx_tlast都保持断言。 (rx_bar_hit0)m_axis_rx_tuser2:
13、 BAR0 (rx_bar_hit1)m_axis_rx_tuser3: BAR1 (rx_bar_hit2)m_axis_rx_tuser4: BAR2 (rx_bar_hit3)m_axis_rx_tuser5: BAR3 (rx_bar_hit4)m_axis_rx_tuser6: BAR4 (rx_bar_hit5)m_axis_rx_tuser7: BAR5 (rx_bar_hit6)m_axis_rx_tuser8: Expansion ROM Address m_axis_rx_tuser8:4 不适用于 Root端口配置 m_axis_rx_tuser9 is reserved
14、 for future use.m_axis_rx_tuser1I接收有错误m_axis_rx_tuser0I表明当前包存在EREC无措。只有在包的帧结尾才会断言3. PCIE设计参考3.1 设计64位事务层接口下图代表了典型的32位可寻址内存写请求TLP(Transaction Layer Specification)图3-1 PCIE字节命令基础规范PCIE标头各字段定义如下:l Fmt1:0定义了头标长度和该TLP是否有数据载荷的信息。l Type4:0与Fmt1:0共同定义了TLP的事务类型、头标长度和是否有数据载荷l TC2:0 (优先级设定)定义了设备核施加于请求TLP及完成TLP
15、的传输类别编号。PCIE总线规定了8种传输类型,分别为TC0TC7,默认值为TC0,该字段与PCIE的QoS相关。PCIE设备以传输类别(TC)、虚通道(VC)、TC/VC映射以及优先级仲裁机制为TLP传输提供有区别的服务质量。传输类别对应TLP头标中的3位TC字段,由软件根据TLP的紧要程度设置。虚通道是设备端曰中的TLP缓冲器,每个端口中可设置l8个VC缓冲器,对应可编号为VC0VC7,每个编号的VC中可以缓冲若干个TLP。PCIE设备内部有逻辑电路负责将不同TC的TLP到推入到对应编号VC中,每个TLP只能被映射到一个VC中,使通过该端口的TLP在对应编号的VC缓冲器中排队送上链路。l
16、TDTLP的Digest(ECRC)字段存在位。若TD=1,表明TLP含有Digest字段,其值是ECRC;若TD=0,则表明TLP不含有Digest字段。l EP错误和中毒位。EP=1,则表示事务正常完成,但是应该将包视为无效。l Attr2:0位5为宽松排序位:为1时,表示使用PCI-X式宽松排序;为0时,表明使用PCI式严格排序。位4为不监听Cache位:为1时,表明TLP不存在处理器Cache一致性问题,不要求系统硬件去监听处理器Cache;为0时,则要求PCI时的Cache监听。l 长度Length9:0 指示TLP的数据载荷长度,以双字DW为单位,最大长度为1024双字,即4KBl
17、 AT字段 AT字段与PCIE总线的地址转换相关。在一些PCIE设备中设置了ATC(Address Translation Cache)部件,这个部件的主要功能是进行地址转换。只有在支持IOMMU技术的处理器系统中,PCIE设备才能使用该字段。AT字段可以用作存储器域与PCI总线域之间的地址转换,但是设置这个地段的主要目的是为了方便多个虚拟主机共享同一个PCIE设备。(此处设置为0)l Requester ID字段 :Requester ID用来标识事务的请求者,以便对应的完成能够返回,在Requester ID15:0中,15:8为总线号,7:3为设备号,2:0为功能l Tag字段 :标签T
18、ag字段用来用来标识由请求者发出的未完成的非转发事务的请求序号,以便相应的完成返回时带有与原请求相同的序号,请求者将事务包与相应挂起的请求对号,解除对应的挂起请求。l First DW BE和Last DW BE为字节使能字段,连个字节是能位以允许比整双字小的数据长度和偏离DW边界的起止地址。当使用AXI4-Stream接口时,包被安排在确定的64位数据通路上。下图展示了在AXI4-Stream接口上的包的例子。从图上可看到,包的第0字节就是s_axis_tx_tdata31:24(发送)或者m_axis_rx_tdata31:24 (接收)的对应位。同样,第1字节在s_axis_tx_tda
19、ta23:16或者m_axis_rx_tdata23:16所对应的位。在第二个64位数据组合时,就是PCIE的第8字节对应的s_axis_tx_tdata31:24或者m_axis_rx_tdata31:24所对应位。发送到核的包必须遵从TLP的传输规则。图3-2 断点综合块字节用户应用负责确认包的有效性。核不会去检查包的格式是否正确并且这样可能导致传输一个畸形的TLP。给定的TLP变化的精确度依赖于正在传输的包的类型。Fmt和Type字段确认当前TLP使用的总线事务,TLP头的大小是由3个双字还是4个双字组成(32位地址为3DW,64位地址则对应4DW),当前TLP是否包含有效负载。其具体含
20、义如下表所示。表3.1 TLP类型字段定义Fmt2:0TLP的格式0b000TLP大小为3个双字,不带数据。0b001TLP大小为4个双字,不带数据。0b010TLP大小为3个双字,带数据。0b011TLP大小为4个双字,带数据。0b100TLP Prefix其他PCIe总线保留其中所有读请求TLP都不带数据,而写请求TLP带数据,而其他TLP可能带数据也可能不带数据,如完成报文可能含有数据,也可能仅含有完成标志而并不携带数据。在TLP的Type字段中存放TLP的类型,即PCIe总线支持的总线事务。该字段共由5位组成,其含义如下表所示。表3-2 PCIE总线事务类型TLP类型Fmt2:0Typ
21、e4:0描述MRd存储器读请求0b0000b0010b0 00003DW,不带数据4DW,不带数据MRdLk带锁的存储器读请求0b0000b0010b0 00013DW,不带数据4DW,不带数据MWr存储器写请求0b0100b0110b0 00003DW,带数据4DW,带数据IORdIO读请求0b0000b0 00103DW,不带数据IOWrIO写请求0b0100b0 00103DW,带数据CfgRd0配置0读请求0b0000b0 01003DW,不带数据CfgWr0配置0写请求0b0100b0 01003DW,带数据CfgRd1配置1读请求0b0000b0 01013DW,不带数据。CfgW
22、r1配置1写请求0b0100b0 01013DW,带数据TCfgRd0b0100b1 1011对这两种总线事务不做介绍。TCfgWr0b0010b1 1011Msg消息请求0b0010b1 0r2r1r04DW,不带数据。“rrr”字段是消息请求报文的Route字段,下文将详细介绍该字段。MsgD带数据的消息请求0b0110b1 0r2r1r04DW,带数据Cpl完成0b0000b0 10103DW,不带数据。包括存储器、配置和I/O写完成。CplD带数据的完成0b0100b0 10103DW双字,包括存储器读、I/O读、配置读和原子操作读完成。CplLk锁定的完成0b0000b0 10113
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- xilinx PCIE2 接口 EP 设计 总结
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。