赞
踩
PCIE总线主要关注点是数据的吞吐量,这个参数是选型的重要依据。
其中吞吐率是指传输过程中有效的数据量。
数据量计算举例:
传输速率为每秒传输量GT/s,而不是每秒位数Gbps,是因为传输量包括不提供额外吞吐量的开销位,比如PCIe 1x和PCIe 2x使用8b/10b编码方案,导致占用了20%(=2/10)的原始信道带宽。
GT/s——Giga transtion per second (千兆传输/秒),即每一秒内传输的次数,重点在于描述物理层通信协议的速率属性,可以不和链路宽度等关联。
Gbps——Giga Bits per second (千兆位/秒)。GT/s和Gbps之间不存在成比例的换算关系。
PCIe吞吐量(可用带宽)计算方法:
吞吐量=传输速率*编码方案
例如:PCIe 2.0协议支持5.0GT/s,即每一条Lane上支持每秒钟传输5G个Bit,但这并不意味着PCIe 2.0协议的每一条Lane支持5Gbps的速率。
为什么这么说呢,因为PCIe 2.0的物理层协议中使用的是8b/10b编码方案,即每传输8个Bit,需要发送10个Bit,这多出来的2Bit并不是对上层有意义的信息。那么,PCIe 2.0协议的每一条Lane支持5*8/10=4Gbps=500MB/s的速率。以一个PCIe 2.0 x8的通道为例,x8的可用带宽为4*8=32Gbps=4GB/s。
同理:PCIe 3.0协议支持8.0GT/s,即每一条Lane上支持每秒钟传输8G个Bit。而PCIe 3.0的物理层协议中使用的是128b/130b编码方案,即每传输128个Bit,需要发送130个Bit,那么,PCIe 3.0协议的每一条Lane支持8*128/130=7.877GB/s=984.6MB/s的速率。以一个PCIe 3.0 x16的通道为例,x16的可用带宽为7.877*16=126.032 Gbps=15.754GB/s。
由此可计算出上表中的数据。
原文链接:https://blog.csdn.net/weixin_45270982/article/details/110849060
绘图需要从FPGA的芯片着手,如果是PCIE,可使用GTY接口,则需要查询GTY相关的官方文档。如当前的芯片是XCVU13P-FIGD2104 ,则应该查询ug578-ultrascale-gty-transceivers.pdf文档中Board Design Guidelines章节,对画原理图及PCB进行了约束。其中内容包括但不限于:校准电阻选择、时钟选择、部分引脚连线方式等。
由官方文档可知,PCIE gen1.0~gen5.0硬件参考时钟都是100MHZ。通过锁相环锁定到指定的频率上。因此原理图图设计的时候,PCIE bank的参考时钟为100MHz差分信号。
BANK的选择需要在FPGAs Packaging and Pinouts.pdf中找到相关内容。首先根据不同封装的资源不同,根据实际的项目需求,选择合适的封装。如选择封装为FIGD2104,则资源分配图如下。根据资源分配图,选择合适的bank。再根据bank的类型(HP/GTY),查看对应的手册,从而找到引脚连接的约束。
以下是PCIE设计中常规的几个小点举例:
② 关于PCIE LANE拆分问题:
设计拆分前首先要明白PCIE设备有多少个控制端口,控制端口决定着拆分结果,这个一般手册上都会有说明,抛开BOIS软件配置不说,有些PCIE设备有“PCIE_*_PRSNTn ”这个信号有多少个就对应多少个控制端口,该信号为PCIE控制器的使能信号端,低有效,当不用时悬空即可;举个例子:某个PCIE设备有32 Lane,但是只有两个控制端口,因此拆分时最优的拆分就是两个X16 ,当然你也可以拆分成两个X1 ,那也是相当奢侈!
③ PCB走线注意问题点:
(a)PCIE总线上每个LANE 上AC耦合电容两端需要进行分段等长,芯片扇出部分走线阻抗可不做严格控制,但是尽量缩短扇出线部分的走线长度
(b) 阻抗控制100Ω,差分对PN两条布线总长度之差不能超过4mils 。
(c)信号如果需要打孔换层,建议在换层孔附近添加回流孔,回流孔尽量靠近信号孔。
(D) 走线参考GND,保证参考平面完整,不允许有跨平面分割的情况。如果设计中无法避免跨平面参考,建议在跨平面分割处用旁路电容将回流信号连接起
(E) TX和RX建议走在不同层,或者隔开尽可能远的距离。差分对P和N必须在同一层,并按照差分约束布线。
④校准电阻
PCIE控制器上的校准电阻,精度为1%,布局时需要靠近器件放置,远离干扰源。这部分因为对PCB绘制有关,需要在原理图上标注。
绘图相关内容应该见GTY文件的布线部分,内有详细的说明。详见芯片官方文档。
另外,在绘原理图的时候,应该遵守一定的规范,原理图绘制分为国标和国家标准。详情见电路设计国家标准的文档。
原文链接:https://blog.csdn.net/weixin_44987757/article/details/113881597
https://zhuanlan.zhihu.com/p/283026221 https://zhuanlan.zhihu.com/p/26172972
针对PCIE总线如何在PL端开发,经过查询资料主要是借助两种IP核。一种是XDMA for PCIE;另一种是DMA。如果是前者,可通过直接调取ip核实现控制。如果是后者,需要一定的编码方式。
如何配置XDMA核的教程详见如下链接 https://zhuanlan.zhihu.com/p/493072708
需要注意的是,虽然GTY文档中说明了PCIE的数据传输方式是存在一定数据冗余的,表现为不同的编码形式。但是这些只是原理科普,这些数据流的产生在数据层及物理层处理,而我们在PL端做FPGA设计的时候,只需要关注有效数据就可以了。因目前只是理论验证阶段,所以这个观点在后续会验证。后续实际使用XDMA核的时候,会来继续补充这部分内容。
如果PCIE需要访问DDR存储设备,则需要单独链接MIG核,此部分内容在上个链接有部分描述。后续涉及到会补充。
1.XDMA和DMA有什么区别?
2.MIG和DMA都是操作DDR存储器,可通用码?
3.后续需要针对实际的硬件开发PCIE部分,需补充设计。
在进行PCIE原理选型和设计的时候,最需要关注的是吞吐量这个参数。通过吞吐量来确定PCIE的类别,其次,需要关注FPGA芯片对的资源类型,是否支持PCIE及支持的版本号。需要做到兼容。
PCIE本质上是个总线,有好几种接口,如M.2
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。