目录
1、PCI-E总线接口介绍
2、PCIE接口的速度和相关概念
3、PCIE宽带的计算
4、PCIe总线端到端的数据传输
5、8B/10B编码的原理
6、PCIE 3.0 合规要求,抖动值
7、PCIE 3.0 合规要求,发送TX 8.0GT/S
8、PCIE 3.0 合规要求,接收最小RX 8.0GT/S
9、Tx and Rx Return Loss
10、PCIE 3.0眼图仿真实例
11、使用PCIE 3.0实例文件提取互连线的S参数
12、使用SYSTEM SI PCIE 3.0 Compliance建立仿真通路
13、PCIE 3.0 新建工程模板
14、使用SYSTEM SI PCIE 3.0 Compliance建立仿真通路
14、PCIE3.0 互连通路模型参数设置,TX模型
15、PCIE 3.0的互连通路模型参数设置,RX设置
16、PCIE 3.0 分析项目,合规检查项目设置
17、PCIE 3.0分析项目,合规仿真开始
18、对比报告,PCIE 3.0 Compliance Report
• 1.PCI-E(PCI-Express)是一种通用的总线规格,它由Intel所提倡和推广,其最终的设计目的是为了取代现有电脑系统内部的总线传输接口,这不只包括显示接口,还囊括了CPU、PCI、HDD、Network等多种应用接口。
• 2.PCI-E标准自从推出以来,1代和2代标准已经在PC和Server上逐渐普及,用于满足高速显卡、高速存储设备对于高速 的要求。出于支持更高 吞吐率的目的,PCI-SIG组织在2010年制定了PCI-E 3.0,即PCI-E 3代的规范,数据速率达到8Gbps。
• 3.PCI-E 2代在每对差分线上的数据传输速率是5Gbps,相对于1代数据速率的两倍;而PCI-E 3代要相对于2代把速率也提高一倍,理所当然的是把数据传输速率提高到10Gbps。但是就是这个10Gbps带来了很大的问题,因为PC和Server上出于成本的考虑,普遍使用便宜的FR4的PCB板材以及廉价的接插件,如果不更换板材和接插件,很难保证10Gbps的信号还能在原来的信号路径上可靠地传输很远的距离(典型距离是15~30cm)。因此PCI-SIG最终决定把PCI-E 3代的数据传输速率定在8Gbps。但是8Gbps比着2代的5Gbps并没有高一倍,所以PCI-E协会决定在3代标准中把在1代和2代中使用的8b/10b编码去掉 。
在PCI-E的1代和2代中使用了去加重(Deemphasis)技术,即信号的发射端(TX)在发送信号时对跳变bit(代表信号中的高频成分)加大幅度发送,这样可以部分补偿一下传输线路对高频成分的衰减,从而得到比较好的眼图。
• 3.PCI-E 1代中采用了-3.5db的去加重,PCI-E 2代中采用了-3.5db和-6db的去加重。而对于3代来说,由于信号速率更高,需要采用更加复杂的去加重技术,因此除了跳变bit比非跳变bit幅度增大发送以外,在跳变bit的前1个bit也要增大幅度发送,采用的预加重技术对波形的减少影响。
• 4.PCI-E 3代标准中又规定在接收端(RX端)还要对信号做均衡(Equalization),从而对线路的损耗进行进一步的补偿。均衡电路的实现难度较大,以前主要用在通信设备的背板或长电缆传输的场合,现在也逐渐开始在计算机领域应用,比如USB3.0中和SATA 6G中也采用了均衡技术。
• 1.传输速率为每秒传输量GT/s,而不是每秒位数Gbps,因为传输量包括不提供额外吞吐量的开销位; 比如 PCIe 1.x和PCIe2.x使用8b / 10b编码方案,导致占用了20% (= 2/10)的原始信道带宽。
• 2.GT/s —— Giga transation per second (千兆传输/秒),即每一秒内传输的次数。重点在于描述物理层通信协议的速率属性,可以不和链路宽度等关联。
• 3.Gbps —— Giga Bits Per Second (千兆位/秒)。GT/s 与Gbps 之间不存在成比例的换算关系
• 1.PCIe 吞吐量(可用带宽)计算方法,吞吐量 = 传输速率 * 编码方案;例如:PCI-e2.0 协议支持 5.0 GT/s,即每一条Lane上支持每秒钟内传输 5G个Bit;但这并不意味着 PCIe 2.0协议的每一条Lane支持 5Gbps 的速率。
• 2.为什么这么说呢?因为PCIe 2.0 的物理层协议中使用的是 8b/10b 的编码方案。 即每传输8个Bit,需要发送10个Bit;这多出的2个Bit并不是对上层有意义的信息。那么, PCIe 2.0协议的每一条Lane支持 5 * 8 / 10 = 4 Gbps = 500 MB/s 的速率。以一个PCIe 2.0 x8的通道为例,x8的可用带宽为 4 * 8 = 32 Gbps = 4 GB/s。
• 3.同理,PCI-e3.0 协议支持 8.0 GT/s, 即每一条Lane 上支持每秒钟内传输 8G个Bit。而PCIe 3.0 的物理层协议中使用的是128b/130b 的编码方案。 即每传输128个Bit,需要发送130个Bit。
• 4.那么, PCIe 3.0协议的每一条Lane支持 8 * 128 / 130 = 7.877 Gbps = 984.6 MB/s 的速率。
• 5.一个PCIe 3.0 x16的通道,x16 的可用带宽为 7.877 * 16 = 126.031 Gbps = 15.754 GB/s
PCIe 1.0和2.0采用了8b/10b编码方式,这意味着每个字节(8b)都用10bit传输,这就是为什么2.5GHz和5GHz时钟,每时钟1b数据,结果不是312.5MB/s和625MB/s而是250MB/s和500MB/s。PCIe 3.0和4.0采用128b/130b编码,减小了浪费(overhead),所以才能在8GHz时钟下带宽达到1000MB/s(而不是800MB/s)。PCIe 4.0还会将频率提高一倍,达到16GHz,带宽达到2GB/s每Lane。
• 1. 与PCI总线不同,PCIe总线使用端到端的连接方式,在一条PCIe链路的两端只能各连接一个设备,这两个设备互为是数据发送端和数据接收端。PCIe总线除了总线链路外,还具有多个层次,发送端发送数据时将通过这些层次,而接收端接收数据时也使用这些层次。
• 2.在PCIe总线的物理链路的一个数据通路(Lane)中,由两组差分信号,共4根信号线组成。其中发送端的TX部件与接收端的RX部件使用一组差分信号连接,该链路也被称为发送端的发送链路,也是接收端的接收链路;而发送端的RX部件与接收端的TX部件使用另一组差分信号连接,该链路也被称为发送端的接收链路,也是接收端的发送链路。一个PCIe链路可以由多个Lane组成。
• 3.高速差分信号电气规范要求其发送端串接一个电容,以进行AC耦合。该电容也被称为AC耦合电容。PCIe链路使用差分信号进行数据传送,一个差分信号由D+和D-两根信号组成,信号接收端通过比较这两个信号的差值,判断发送端发送的是逻辑“1”还是逻辑“0”。
• 4. 与单端信号相比,差分信号抗干扰的能力更强,因为差分信号在布线时要求“等长”、“等宽”、“贴近”,而且在同层。因此外部干扰噪声将被“同值”而且“同时”加载到D+和D-两根信号上,其差值在理想情况下为0,对信号的逻辑值产生的影响较小。因此差分信号可以使用更高的总线频率。
• 5. PCIe链路可以由多条Lane组成,目前PCIe链路可以支持1、2、4、8、12、16和32个Lane,即×1、×2、×4、×8、×12、×16和×32宽度的PCIe链路。每一个Lane上使用的总线频率与PCIe总线使用的版本相关 。
• 1.8B/10B编码是编码是 1983年由 IBM公司的公司所提出的数据传输编码标准,目前已经被广 所提出的数据传输编码标准,目前已经被广 泛应用到高速串行总线,如 IEEE1394b、SATA、PCI-Express、Infini-band、FiberChannel、XAUI、RapidIO、USB 3.0。 8B/10B编码将待发送的8位数据转换成10位代码组,其目的是保证直流平衡以及足够密集电转换。
• 2.为了提高串行数据传输的可靠性,现在很多更高速率的数字接口采用的是对数据进行编码后再做并串转换的方式。编码的方式有很多,如8b/9b编码、8b/10b编码、64b/66b编码、128b/130b编码。
• 3.8b/10b编码的特性之一是保证DC 平衡,采用8b/10b编码方式,可使得发送的“0”、“1”数量保持基本一致,连续的“1”或“0”不超过5位,即每5个连续的“1”或“0”后必须插入一位“0”或“1”,从而保证信号DC平衡,它就是说,在链路超时时不致发生DC失调。通过8b/10b编码,可以保证传输的数据串在接收端能够被正确复原,除此之外,利用一些特殊的代码( 在PCI-Express总线中为K码) ,可以帮助接收端进行还原的工作,并且可以在早期发现数据位的传输错
误,抑制错误继续发生。
• 4.8b/10b编码是将一组连续的8位数据分解成两组数据,一组3位,一组5位,经过编码后分别成为一组4位的代码和一组6位的代码,从而组成一组10位的数据发送出去。相反,解码是将1组10位的输入数据经过变换得到8位数据位。数据值可以统一的表示为DX.Y或KX.Y,其中D表示为数据代码,K表示为特殊的命令代码,X表示输入的原始数据的低5位EDCBA,Y 表示输入的原始数据的高3位HGF。
• 1.以单位间隔百分比表示的最大抖动值(UI=400 ps(2.5 GT/s)、200 ps(5.0 GT/s)、125 ps(8.0 GT/s)为主板和扩充卡指定。与转接卡和相关专有连接器相关的抖动将是主板抖动预算的一部分。
• 2.抖动值定义为100:差分终端,实现为两个50:电阻。这些电阻以接口处的接地为基准。
• 3.系统总抖动是在假设四个预算项目中的每一个最小Rj的情况下得出的。这个最小的Rj组件用于确定整个系统的估计。Rj分量的概率分布在指定的误码率(BER)下,并且是高斯分布。
• 4对于任何抖动分布,总Tj必须始终满足误码率。各分量的Rj独立,卷积为平方根。如果始终满足总Tj,则允许对Rj和Dj进行权衡。
• 1.假设一个理想的无抖动参考时钟。在生成这个眼图。
• 2.必须区分过渡位和非过渡位,以便根据去强调的电压电平(VTXA_d)测量合规性。VTXA和VTXA_d是最小差分峰值输出电压。
• 3.TTXA是最小眼睛宽度。此测量的样本大小为106ui。在误码率为10-12时,该值可降低到274ps以用于仿真的目的。
• 4.JTXA中值到最大抖动是PCI Express基本规范修订版2.0中定义的最大中值到最大抖动异常值。此测量的样本大小为106UI。在BER 10-12时,该值可增加到63 ps以用于仿真目的。
• 1.定义了8.0 GT/s时附加卡接收器路径符合性的最小灵敏度值。接收器路径应使用最坏情况下的眼睛进行测试,以验证其是否达到BER<10-12。这种最坏情况下的眼睛是使用TX均衡设置进行校准的,该设置与每个校准信道的参考均衡器是最佳的。校准后,可使用被测设备首选的所需TX均衡空间中的发射机均衡设置来调整测试发生器的TX均衡,而无需更改测试信号的任何其他参数或重新校准测试信号。
• 2.可使用上述校准方法产生的信号并调整测试发生器均衡来定义此类信号。注意,如果被测RX比参考(CTLE+DFE)接收机能力更强,则被测RX可能不需要TX改变其均衡电平以实现BER<10。在任何情况下,由本程序产生的均衡设置应用于上述RX试验,如果RX要求改变TX均衡,则所用的试验装置应适应此类变化 。
• 1.使用PCIE3.0实例文件,了解PCIE3.0通路的互连关系,解读原理图接口电路和PCB的互连电路。对HDMI布线的通路及阻抗进行检查和分析。
• 2.使用PCIE3.0实例文件提取互连线的S参数,选择CLK+,CLK-,TX+,TX-,RX+,RX-组的互连线,使用PowerSI,Clarity,3DFEM等工具提起关键网络的S参数。提取S参数以后需要分析S参数的互连特征,对S参数的结果开展评价。
• 3.使用SYSTEM SI PCIE3.0 Compliance工程向导模型,建立USB仿真实例框架,在框架BOLCK中带入S参数,SPICE模型,构建互连通路,设置仿真参数进行的仿真。仿真完成以后利用框架的眼图模板,对仿真的通路开展仿真的评价及结果评估。
• 4.使用SYSTEM SI PCIE3.0 Compliance工程向导模板文件。向导模板,可以使用向导完成设置。
• 1.PowerSI,Clarity,3DFEM中导入需要分析的实例文件,导入之后对层叠进行设置,铜皮,过孔的参数,层叠的参数进行设置。材料库的导入和导出,文件的参数设置,自定义的材料库参数设置。材料库参数的带入和建立,损耗和介质材料的设置。
• 2.使能需要分析的PCIE 3.0网络 ,分析信号互连的通路,对信号的阻抗参数进行读取。读取分析P/G网络。P/G网络分类,只选择使能需要分析的网络。
• 3.设置信号S参数的提取的端口,设置MCU的接口电路,设置TX和RX信号的PORT,生成S参数提取的端口电路,DM和DP网络的设置。
• 4.设置仿真提取的参数,扫描的频率的范围。PCIE 3.0的速度为8Gbit/s。按照这个速度来设置S参数的提取的范围。
• 5.执行S参数,评价提取完成的S参数,并且对S参数的文件结果进行保存,包括SNP,BNP,CKT都文件等,可以生成BBS的模型。
• 1.打开System SI软件,选择PCIE 3.0 Compliance工程向导模型,建立PCIE 3.0 仿真实例框架,启动新建立工程的设置窗口。填写好工程的名称和选择好位置,可以新建好需要设置的内容。
• 2.搭建PCIE 3.0 的信号仿真模型,建立起PCIE 3.0 信号互连通路模型。使用S参数,SPCIE,TX,RX模型,建立起PCIE 3.0 的信号互连分析模型。
• 3.带入PCIE 3.0 信号互连TX发送芯片的激励模型,带入RX信号的激励模型,带入S参数或者电路
SPCIE的电路模型。
• 4.设置编辑端口。形成信号的互连通路设置。
• 1.在弹出的NewWorkspace向导中可以选择PCIE 3.0工程模板,共计有8个工程模板可以选择。
• 2.pcie3_client_single_post 客户端单信号后端口;pcie3_client_single_pre客户端单信号前端口;
• 3.pcie3_client_xt_post客户端多通道后端口;pcie3_client_xt_pret客户端多通道前端口;
• 4.pcie3_server_single_post服务器单信号后端口;pcie3_server_single_pre服务器单信号前端口;
• 5.pcie3_server_xt_post服务器多通道后端口;pcie3_server_xt_pre服务器多通道前端口;
• 6.可以按照项目的实际情况,在8种模板文件种选择一种符号实际的情况做为分析的框架模板。选择模板文件执行仿真流程。
• 1.打开System SI软件,选择PCIE3.0Compliance工程向导模型,建立PCIE3.0 仿真实例框架,启动新建立工程的设置窗口。填写好工程的名称和选择好位置,可以新建好需要设置的内容。
• 2.搭建PCIE3.0 的信号仿真模型,建立起PCIE3.0 信号互连通路模型。使用S参数,SPCIE,TX,RX模型,建立起HDMI的信号互连分析模型。
• 3.带入PCIE3.0 信号互连TX发送芯片的激励模型,带入RX信号的激励模型,带入S参数或者电路SPCIE的电路模型。
• 4.设置编辑端口。形成信号的互连通路设置
• 1.检查PCIE 3.0的互连通路模型参数,检查S参数文件或者SPCIE的参数,检查S参数的互连完整性,检查模型的参数。检查TX,RX信号互连的通路是否存在错误。
• 2.双击Spec_TX图标,设置发送的IBIS模型。注意IBIS模型是否存在错误,检查Pin Mapping中的Pulldown,Pullup,GND_Clamp,确保IBIS文件中有完整的信号和电源的互连回流。
• 3.DiffPin选项卡,检查引脚,因为PCIE 3.0的激励需要AMI算法模型支持,因此在该窗口中需要设置AMI模型对应的amiffe.dll文件和amiffe_pcieg3_bc.ami文件。
• 4.PCIE 3.0需要有AMI的模型支持,需要在仿真开始之前准备好AMI模型
• 1.在Connection中设置互连的Block端接互连参数。在弹出的Propery找到Stimulus选型卡中设置时钟的信号激励参数。设置激励源为NRZ,DataRate为8Gpbs这个就是数据速度。DataPattern设置成Random,datacoding采用128b130b,无延迟时间。不做上升下降时间的设置。
• 2.PRBS是Pseudo Random Binary Sequence的缩写,即“伪随机二进制序列”的意思。PRBS码具有“随机”特性,
是因为在PRBS码流中,二进制数“0”和“1”是随机出现的,但是它又和真正意义上的随机码不同,这种“随机”特性只是局部的,即在周期内部,“0”和“1”是随机出现的(码流生成函数与初始码确定后,码流的顺序也是固定的),但各个周期中的码流却是完全相同的,所以我们称其为伪随机码。PRBS码的周期长度与其阶数有关,常用的阶数有7、9、11、15、20、23、31,也就是我们常说的PRBS7、PRBS9、PRBS11、PRBS15、PRBS20、PRBS23、PRBS31。
• 3.random随机,sawtooth三角波,PCIE 3.0设置可以采用随机数或者PRBS7做为编码数据队列。
• 4.jitter&Noise抖动和噪声设置,sinusoidal用来建立正弦曲线参数,Frequency设置抖动的频率,Amplitude设置抖动的振幅一般为0.1个UI的时间。Frequency offset设置抖动允许便宜量默认100ppm,PPM是百万分之几的意思,百万分之一百就是100/1000000=0.0001=0.01%。
• 1.检查PCIE3.0的互连通路模型参数,检查S参数文件或者SPCIE的参数,检查S参数的互连完整性,检查模型的参数。检查TX,RX信号互连的通路是否存在错误。
• 2.双击Device图标,设置数据的参数。在Connection中设置互连的Block端接互连参数。jitter&Noise抖动和噪声设置,jitter Random Rj用来设置设置随机抖动的接收RMS,默认情况下随机抖动在UI的1的范围内,确定性抖动 deterministic jitter (DJ)
• 3.Noise Random Rn 随机噪声
• 1.点击Choose compliance item,设置PCIE3.0的模板和标准参数数据,然后对仿真的结果做对比性的项目仿真。
• 2.解读对比符合性的检查项目,熟悉各个参数的含义。
• 3.对需要仿真的项目打勾做对比的符合项目检查结果分析
• 1.Re-characerize channel 从新定义通道;
• 2.Redo frequency domain simulation 从新进行频域的仿真;
• 3.执行仿真,开始仿真并进行合规性检查分析