2.3 HDMI信号完整性后仿真分析
按照布线前仿真得出的约束规则,在Cadence设计软件里绘制PCB板图。将PCB板图导入SIwave,联合Designer进行板级后仿真。
选用的Cadence设计软件和ANSYS仿真软件之间有很好的转接窗口。两款软件的相互支持度很高,这给电路设计工作带来很大便利,并提高了工作效率。
2.3.1 切割TMDS差分线
1.导入PCB文件
(1)启动SIwave,选择Import→ANSYS EDA Layouts→ANF…菜单命令,选中s4_pcie_devkit_revc_v2.anf文件,单击Open按钮,打开该文件。
(2)选择Import Configuration→Import Component File菜单命令,选中s4_pcie_devkit_revc_v2.cmp文件,单击Open按钮,选择yes to all项,打开该文件。
(3)ANF与CMP文件是从Cadence里的Brd格式的PCB文件导出来的。必须同时导入ANF与CMP文件,这样才算完整导入了PCB文件。同时,通过Cadence进行层和材料的选择,以及相关设置。
(4)单击File→Save菜单命令,将PCB文件保存为SIwave文件。导入PCB文件如图2-3-1所示。
图2-3-1 导入PCB文件
2.确认检查
利用SIwave首次打开任何设计文件时,最好先做一次确认检查,主要检查自相交多边形、未连接的节点、重叠节点及带重复过孔的节点。
选择Tools→Computation Tools→Validation Check菜单命令,单击OK按钮,开始进行确认检查,如图2-3-2所示。
图2-3-2 确认检查
检查完毕后,检查结果如图2-3-3所示。
单击OK按钮,关闭检查结果显示。
3.分割差分线区域
选择Tools→Transformation Tools→Clip Design菜单命令,打开切割选项对话框,如图2-3-4所示。
图2-3-3 检查结果
图2-3-4 切割选项对话框
分割差分线区域除了可以缩短SIwave执行有效性检查与计算S、Y、Z参数的时间,还可以缩短Designer导入SNP文件后的模拟分析时间。
选取TMDS_DATA_N0与TMDS_DATA_P0、TMDS_DATA_N1与TMDS_DATA_P1、TMDS_DATA_N2与TMDS_DATA_P2这三对HDMI差分对,切割完成后的PCB如图2-3-5所示。
图2-3-5 切割完成后的PCB
TMDS差分线参数见表2-3-1。
表2-3-1 TMDS差分线参数
完成切割后,要清理破碎的网络,具体操作如下。
(1)选择Home→Selection→Select All菜单命令,选定所有网络。
(2)选择Tools→Operate on Nets→Separate Disjoint Parts菜单命令。
(3)选择Home→Selection→Unselect All菜单命令。
4.自动生成端口
在仿真之前,必须要放置好端口“Port”,具体操作如下。
选择Tools→Design Tools→Generate Port on Selected Nets菜单命令,选中TMDS_DATA_N0、TMDS_DATA_P0、TMDS_DATA_N1、TMDS_DATA_P1、TMDS_DATA_N2、TMDS_DATA_P2复选框,单击Generate按钮,在选择的线上创建端口,如图2-3-6所示。
图2-3-6 自动生成端口对话框
单击Generate按钮自动生成12个端口,打开Components→Ports,可以看到自动生成的12个端口,如图2-3-7所示。
图2-3-7 TMFS差分对的端口
为了方便后续仿真结果的查看,我们把这些复杂的端口名修改为简单的阿拉伯数字。选中某一个端口,右击,从弹出的菜单中选择Edit Circuit Element菜单命令,打开端口属性对话框,如图2-3-8所示。
在Name栏里修改端口名称,修改完成后,单击OK按钮即可。
修改完成12个端口名称后,如图2-3-9所示。
图2-3-8 端口属性对话框
图2-3-9 修改后的端口
2.3.2 频域分析
S参数是一组描述传输线网络中行波散射参数的集合。当前,高速电路的工作频率已达几十吉赫兹,采用S参数描述比较合适和方便。
1.全局仿真设置
设置全局仿真:选择Simulation→SIwave→Options菜单命令,并查看如下默认设置。
打开SIwave Options窗口中SI/PI Advanced选项卡,在Mesh Refinement选区中选中Automatic单选按钮,勾选Perform ERC during simulation setup…和Exclude non-functional pads…复选框,在Coupling选区中勾选Coplane、Split-plane、Cavity field和Trace复选框,Cross-talk设置为-34dB,如图2-3-10所示。
图2-3-10 SI/PI Advanced选项卡
在Net Processing选项卡中,勾选Ignore nets named“DUMMY”or“Unused”during Simulation复选框,如图2-3-11所示。
单击确定按钮,保存这些设置的默认值。
2.运行SYZ仿真
选择Simulation→SIwave→Compute SYZ Parameters…菜单命令,运行SYZ仿真,如图2-3-12所示。
图2-3-11 Net Processing选项卡
图2-3-12 运行SYZ仿真
3.设置S参数
为了进行S参数扫描,分别在IC端与Connector端共设12个端口。
频率范围设置建议采取三段式设定法:DC取一点,1Hz~5GHz取“By Decade”,剩下取“Linear”,如图2-3-13所示。
如果要提取SPICE模型,记得勾选Set FWS generation parameters复选框。只要勾选这项,开始频率(Start Frequency)会被自动/强制设成0Hz,因为SPICE模型需要全频带(含DC)的信息。
这样的设定方法可以避免后面抽出来的S参数模拟遇到不收敛问题。不收敛问题常见于一般电路仿真软件(如HSPICE等)。导致模拟不收敛问题的几个可能原因如下。
(1)理想的电容或电感等效寄生电阻ESR=0,如果没定义初始电压或电流值,可使一些参数在开始时无法被计算出来(SPICE Issue),从而使电路上有的端口被接错。
图2-3-13 频率范围设置
(2)Power/Groupd plape阻抗很低,如果又放置很多端口,想进行SSP模拟,就容易导致模拟不收敛问题。
(3)当模拟的端口放置得太多时,以输入/输出所形成的S-parameter矩阵运算太过复杂。
(4)模拟设定、扫频的方式、HSPICE的设定都可能导致模拟不收敛问题。
4.S参数仿真
单击Launch按钮,开始仿真,仿真结束后,绘制结果曲线。
选择Results→SIwave→SYZ→TMDS SYZ Sweep 1→Plot Magnitude…菜单命令,选中列表中的(1,2)、(3,4)、(5,6)、(7,8)、(9,10)和(11,12)项。单击Plot In Electronics Desktop按钮,生成单端插入损耗曲线,如图2-3-14所示。
打开Results文件,右击XY Plot 1项,从弹出的菜单中选择Rename菜单命令,修改名称为Single-Ended Insertion loss,如图2-3-15所示。
5.差分S参数
1)设置差分节点
选择View→Show/Hide→Workspaces→Differential nets菜单命令,单击Auto Identify…按钮,弹出Auto Identify Differential Pairs对话框,单击Auto Identify按钮,如图2-3-16所示,删除第一对差分对,后三对TMDS差分对即所需。
图2-3-14 生成单端插入损耗曲线
图2-3-15 修改名称
2)差分S参数
图2-3-16 添加差分节点
添加差分对结束后,选择Result→SIwave→SYZ→TMDS SYZ Sweep1→Compute Differential S-parameters菜单命令,在Differential S-parameter Plot对话框中单击Compute Diff.S Matrix按钮,在Matrix Entries to Plot列表中选中TMDS_DATA0、TMDS_DATA0_1、TMDS_DATA1、TMDS_DATA1_1、TMDS_DATA2、TMDS_DATA2_1项,单击Plot In Electronics Desktop按钮,如图2-3-17所示。
图2-3-17 Differential S-parameter Plot对话框
生成差分对插入损耗曲线如图2-3-18所示。
图2-3-18 生成差分对插入损耗曲线
反映传输性能优劣的一个指标是插入损耗。插入损耗越大越好,插入损耗越大说明传输效率越高。插入损耗理想值是1,即0dB,在一般的高速电路设计中,要求插入损耗大于0.7即可,即大于-3dB基本可以满足传输要求。由上述可以很明显看出,单端和差分对的传输性能都非常好,但是比较而言,在相同频率下,特别是在高频部分,差分对的优势表现得特别明显。
6.差分对回波损耗
打开Results文件夹,右击Diff.Insertion Loss项,从弹出的菜单中选择Modify Report…菜单命令,选中列表中的TMDS_DATA0、TMDS_DATA0、TMDS_DATA0_1、TMDS_DATA0_1、TMDS_DATA1、TMDS_DATA1、TMDS_DATA1_1、TMDS_DATA1_1、TMDS_DATA2、TMDS_DATA2、TMDS_DATA2_1、TMDS_DATA2_1项,单击New Report按钮,并将其命名为Return loss,生成差分对回波损耗曲线,如图2-3-19所示。
反射损耗又称回波损耗。回波损耗出现的原因是连接线路的阻抗不合理而造成的线路折射。阻抗不合理的地方一般是连接器,或者产生特性阻抗的位置。回波损耗越小越好,一般小于-20dB即可达到设计要求。
7.远端串扰
打开Results文件夹,右击Diff.Insertion Loss项,从弹出的菜单中选择Modify Report…菜单命令,选中列表中的TMDS_DATA0、TMDS_DATA1_1、TMDS_DATA0_1、TMDS_DATA1、TMDS_DATA1、TMDS_DATA2_1、TMDS_DATA1_1、TMDS_DATA2项,单击New Report按钮,并将其命名为Far end crosstalk,生成差分对远端串扰曲线,如图2-3-20所示。
图2-3-19 生成差分对回波损耗曲线
图2-3-20 生成差分对远端串扰曲线
信号在高速发送和接收过程中,极易受到串扰的破坏。由麦克斯韦方程可知,电流会产生磁场,磁场干扰是串扰产生的根源。出现串扰问题的后果是信息丢失,发送、接收信息失误。在综合布线时,串扰也是非常需要重视的问题。串扰值=噪音信号/有用信号,串扰值越低表示有用信号越多,串扰值越高表示有用信号越少,所以串扰值过高会造成接收数据丢失。串扰与频率有关,高频区串扰值大于低频区串扰值。HDMI对于远端串扰的要求是小于-34dB。很明显,图2-3-20中的这个串扰非常小,远远超过协议要求,由此也验证了本次TMDS差分对布局的正确性。
由图2-3-20可以发现,第二对与第三对差分对之间的串扰相较于第一对与第二对差分对之间的串扰大30dB,这是由第三对差分线的地参考面不连续所造成的。在当今高集成、高密度的高速数字电路中,相邻信号线之间的信号耦合/串扰已成为影响系统性能的关键因素之一。尤其对于具有不完整参考面的互连线来说,受所激发的寄生槽线模式影响,极易将噪声耦合到其他互连线上,引起串扰现象的发生。此外,当两根信号线穿越同一个地参考面槽缝时,两根线的返回电流都被迫沿槽缝边沿流过,因此它们拥有相同的地返回路径,如果其中一根线上的信号开启,其返回路径相应的瞬态变化也会引起另一根线的信号开启,这就是所说的“地反弹”现象(ground-bounce)。普通电路中电流会流过小阻抗回路,对于高速电路则不同,电流会流过小感抗回路。具有相同返回路径的地参考面的传输线之间的串扰会显著增加。
8.TDR特性阻抗
通过TDR测试可以查看传输线特性阻抗的大小及连续性。
1)单端TDR
选择Results→Single-Ended Insertion loss菜单命令,右击,从弹出的菜单中选择Modify Report…菜单命令,在Domain栏中选择“Time”,单击TDR Options…按钮,弹出TDR Options对话框,如图2-3-21所示。
图2-3-21 TDR Options对话框
单击OK按钮,完成TDR Options对话框的设置。在Category栏中选择TDR Impedance项,并选中其右面所有项,在Function栏中选择<none>项,如图2-3-22所示。
图2-3-22 生成TDR曲线设置
单击New Report按钮,生成单端TDR结果曲线,如图2-3-23所示。
图2-3-23 生成单端TDR结果曲线图
2)差分对TDR
打开Results文件夹,右击Diff.Insertion Loss项,从弹出的菜单中选择Modify Report…菜单命令,其他按照上述操作,在列表中选择TDRZt(TMDS_DATA0:Diff)、TDRZt(TMDS_DATA0_1:Diff)、TDRZt(TMDS_DATA1:Diff)、TDRZt(TMDS_DATA1_1:Diff)、TDRZt(TMDS_DATA2:Diff)、TDRZt(TMDS_DATA2_1:Diff)项,生成差分对TDR曲线图,如图2-3-24所示。
图2-3-24 差分对TDR曲线图
3)共模TDR
在列表中选择TDRZt(TMDS_DATA0:Comm)、TDRZt(TMDS_DATA0_1:Comm)、TDRZt(TMDS_DATA1:Comm)、TDRZt(TMDS_DATA1_1:Comm)、TDRZt(TMDS_DATA2:Comm)、TDRZt(TMDS_DATA2_1:Comm)项,生成差分对共模阻抗曲线图,如图2-3-25所示。
图2-3-25 差分对共模阻抗曲线图
传输线特性阻抗最大值为63.6Ω,差分阻抗为106.4Ω。在传输时间内,传输线特性阻抗发生变化,这与布线时走线角度有关联,如果均匀互连线上有角度弯曲的走线,则此处的阻抗发生改变。在高速电路PCB上最好不要有90°的走线,这是布线质量的评价标准,锐角及钝角的走线也会引起阻抗不一样。分析差分阻抗可以看出,即使在500ps的短时间内,差分阻抗也会发生突变,但是差分阻抗最大值不超过108Ω,仍在协议要求范围内。
2.3.3 时域分析
下面将在Designer里进行时域分析。
1.提取S参数模型
在SIwave中选择Results→TMDS SYZ Sweep→Touchstone?Export Options菜单命令,在打开的Touchstone?Export Options对话框中,选中Renormalize Solution单选按钮,在Impedance文本框中输入50,单击OK按钮,如图2-3-26所示。
图2-3-26 Touchstone?Export Options对话框
2.创建等效电路
在ANSYS Designer里创建等效电路。
启动ANSYS Designer,选择Project→Insert Circuit Design菜单命令。右击Circuit 1项,从弹出的菜单中选择Rename菜单命令,将其改名为wxmhdmi,由此建立wxmhdmi.adsn文件。
1)建立S参数模型
将前面生成的S参数模型wxmhdmi.s12p文件拉入Designer界面,就可以看到从SIwave汇入的组件,如图2-3-27所示。
图2-3-27 S参数模型
2)调整S参数模型
初始S参数模型如图2-3-28所示。
右击wxmhdmi项,从弹出的菜单中选择Edit Component菜单命令,打开的对话框如图2-3-29所示。
图2-3-28 初始S参数模型
图2-3-29 Edit Component对话框
单击Symbol栏中的Edit按钮,会打开Definition Manager对话框,单击是按钮,如图2-3-30所示。
拖动引脚,放到需要改变的位置上,如图2-3-31所示。
图2-3-30 Definition Manager对话框
图2-3-31 调整引脚
调整好以后,单击保存按钮,双击wxmhdmi项,显示调整以后的S参数模型,如图2-3-32所示。
图2-3-32 调整以后的S参数模型
3)导入TMDS341的IBIS模型
在工程文件中,选中TMDS341的IBIS模型文件,将其拖入Designer界面中,弹出Import IBIS对话框,如图2-3-33所示。
设置Buffer Import选项卡如图2-3-34所示。
图2-3-33 导入IBIS模型
图2-3-34 设置Buffer Import选项卡
设置Pin Import选项卡如图2-3-35所示。
4)加入差分电源与差分探头
为了进行眼图分析,必须添加EYESOURCE_DIFF源和EYEPROBE_DIFF探针。
图2-3-35 设置Pin Import选项卡
TMDS341的IBIS模型导入后,选择Designer界面右边的Component Manager选区中的Nexxim Circuit Elements项,右击,从弹出的菜单中选择Independent Sources→EYESOURCE_DIFF和Probes→EYEPROBE_DIFF菜单命令。EYESOURCE_DIFF参数设置如图2-3-36所示。
图2-3-36 EYESOURCE_DIFF参数设置
5)等效电路
在Component Libraries窗口的IBIS Buffer Components选区中,选择IbisOpenSink4项,继续添加电阻和地,最终搭建的等效电路如图2-3-37所示。
3.Alter设定
为了在同一张图上导出多幅图,可以通过Alter功能在同一个Nexxim Design中设定不同的模拟条件,一次把所有结果显示出来进行比对。
图2-3-37 最终搭建的等效电路
在Analysis中设定Alter数据的取得路径。
右击Project Manager窗格中的Circuit1项,从弹出的菜单中选择Browse Netlist菜单命令,将Design的Stone File路径整行复制,如图2-3-38所示。
图2-3-38 Stone File路径
右击Analysis,从弹出的菜单中选择Add Alter Block…菜单命令,弹出Alter Data对话框,在Alter Data对话框中,单击Add按钮,然后在新增的Alter1列中,Alter Block Definition那一栏有个按钮,单击该按钮后输入刚刚复制的路径,然后单击OK按钮。按同样的方法依序加入其他组Alter设定,如图2-3-39所示。
图2-3-39 Alter设定
4.快速眼图仿真设置
在Project Manager窗口中选择Project选项卡,右击Analysis,从弹出的菜单中选择Add Nexxim Solution Setup…→Quick Eye Analysis菜单命令,打开Quick Eye Analysis对话框。需要注意的是,在Alter Block Definition的Name栏中选择 “AlterData”,如图2-3-40所示。
图2-3-40 快速眼图仿真设置
5.统计眼图仿真设置
右击Analysis,从弹出的菜单中选择Add Nexxim Solution Setup…→VerifEye(Statistical Eye)Analysis菜单命令,建立VerifEYE Analysis,如图2-3-41所示。
图2-3-41 统计眼图仿真设置
6.眼图仿真
完成设置后,右击Analysis,从弹出的菜单中选择Analyze菜单命令,进行眼图仿真。仿真结束后,右击Results文件夹,从弹出的菜单中选择Create Eye Diagram Report→Rectangular Plot菜单命令,如图2-3-42所示,在弹出的对话框中进行以下设置。
在Solution栏中选择第一组Alter1设定,将Plotting Range的Time Stop改成150ns(因为Unit Interval=0.625ns),第一次单击New Report按钮。
在Solution栏中选择第二组Alter2设定,将Plotting Range的Time Stop改成150ns(因为Unit Interval=0.625ns),第二次单击Add Trace按钮。
在Solution栏中选择第三组Alter3设定,将Plotting Range的Time Stop改成150ns(因为Unit Interval=0.625ns),第三次单击Add Trace按钮。
图2-3-42 眼图仿真设置
7.绘制眼罩
生成快速眼图后,双击眼图,打开眼图属性对话框如图2-3-43所示。
图2-3-43 眼图属性对话框
在Mask选项卡中单击确定按钮,打开Edit eye mask对话框,如图2-3-44所示。
单击Edit…按钮,打开Edit Dataset对话框,如图2-3-45所示。
图2-3-44 Edit eye mask对话框
图2-3-45 Edit Dataset对话框
按照眼罩规格,绘制眼罩,单击OK按钮,绘制完成的眼罩如图2-3-46所示。
8.快速眼图分析
快速眼图如图2-3-47所示。
右击眼图,从弹出的菜单中选择Trace Characteristics→Add All Eye Measurements菜单命令,显示眼图参数,如图2-3-48所示。
图2-3-46 眼罩
图2-3-47 快速眼图
图2-3-48 眼图参数
从眼图上很直观地看出,三组差分对的传输性能非常好,眼图远远超过眼罩要求,但是出现了些逻辑1过冲的问题。
9.浴盆曲线
通过眼图可以计算出系统的误码率。误码率(BER)是错误的比特数与比特综述的比值,可以很好地衡量通信系统的整体性能。BER与数据率、抖动和噪声相关。
右击Results文件夹,从弹出的菜单中选择Create Standard Report→Rectangular Plot菜单命令,创建浴盆曲线报告。设置浴盆曲线报告如图2-3-49所示。将Solution栏设置为VeriEyeAnalysis,将Domain栏设置为UI,将Category栏设置为Bathtub。将Primary Sweep栏可以设置为__UnitInterval来看时序抖动对应的误码率浴盆曲线,也可以设置为__Amplitude来看幅度噪声对应的误码率浴盆曲线,一般默认设置为__UnitInterval。
图2-3-49 设置浴盆曲线报告
单击New Report按钮,生成差分对浴盆曲线如图2-3-50所示。
图2-3-50 差分对浴盆曲线
评估时序抖动对误码率的影响。离中心点“0.5UI”越远,误码率越高。浴盆曲线的横轴是采样时间,以“UI”为单位,纵轴表示可以达到的误码率。
10.误码率曲线
右击Results文件夹,从弹出的菜单中选择Create Standard Report→Rectangular Contour Plot菜单命令,创建误码率曲线报告。设置浴盆曲线报告如图2-3-51所示。将Solution栏设置为VeriEyeAnalysis,将Domain栏设置为UI,将Category栏设置为Eye。
图2-3-51 设置误码率曲线报告
单击New Report按钮,生成差分对误码率等高线曲线如图2-3-52所示。
图2-3-52 差分对误码率等高曲线
对于误码率等高曲线,横坐标是采样时间,纵坐标是采样电压。误码率等高曲线由一系列等高曲线组成,即误码率等高曲线给出了特定误码率的区域。如果眼图模板在某一个等高曲线内,则可以相应地预测通道的误码率。同时,从误码率等高曲线可以看到,从外圈到里圈误码率逐次减小,即较小的等高曲线表示最佳的采样区域。当给定误码率时,对应的等高曲线区域应足够大,即应有足够的容限。
2.3.4 差分对匹配
从眼图可以看出,TMDS差分对传输线的信号完整性问题主要是出现逻辑1过冲。下面通过T型匹配来减小这种过冲,并比较差分信号匹配和共模信号匹配对过冲问题的影响。
1.差分信号匹配
采用T型匹配。
1)参数获取
当进行T型匹配时,首先要求出匹配电阻大小。由TDR仿真可以得到差模阻抗和共模阻抗,从而可以推导出奇模阻抗和偶模阻抗,进而计算出T型匹配的电阻R1和R2的值。T型匹配参数见表2-3-2。
表2-3-2 T型匹配参数
2)绘制原理图
差分信号匹配电路如图2-3-53所示。
图2-3-53 差分信号匹配电路
3)眼图仿真
差分信号匹配眼图如图2-3-54所示。从图2-3-54中很明显地看出,过冲减弱,而输出幅值有所衰减,但仍在可接受的范围内。
图2-3-54 差分信号匹配眼图
2.差分信号和共模信号匹配
1)绘制原理图
按照T型匹配网络进行差分对的短接匹配,差模信号和共模信号均匹配。差分信号与共模信号均匹配的电路如图2-3-55所示。
图2-3-55 差分信号与共模信号均匹配的电路
2)眼图仿真
差分信号与共模信号均匹配眼图如图2-3-56所示。
相较于仅仅差分信号匹配,差分信号与共模信号均匹配对过冲问题只有些微改善。针对本次设计中出现的过冲问题,通过差分信号匹配即可解决。
图2-3-56 差分信号与共模信号均匹配眼图
2.3.5 实测对比
对于规范的实际测试,先要插入专门的HDMI夹具到SI开发板,随后让HDMI设备创建相应的模型,最后使用实时示波器测试边缘连接器的眼图。
由于Tektronix DPO71604C示波器具有16Hz的带宽,因此可以用其完成HDMI的测试。其安装的后处理软件可以自动创建HDMI测试报告。TMDS实测眼图如图2-3-57所示。
图2-3-57 TMDS实测眼图
与针对PCB仿真得到的眼图相比较,TMDS实测眼图的主要参数基本匹配,如眼高、眼宽、抖动要求等,验证了本次仿真设计的正确性。