当前位置: 首页 > java >正文

高速系统设计实例设计分析之三

6.7 约束实施和布线

通过以上对 DDR 的仿真分析和约束定义,我们已经完成了对 DDR 的设计约束及约束的验证工作,下一步就可以在设计中使用这些约束进行布线了。但是在 CM 约束管理器中,读者会观察到,约束 DDR1_A 应用到 DDR1_A 这个总线上时,它的颜色是红色的,也就是说这个约束并没有映射到 DDR1_A 总线上。展开 DDR1_A 总线,可以发现约束只是在 DDR_A<13>的网络上的映射有问题,其他的网络约束都是正确的。右键单击红色的 DDR1_A,选择“Audit Electrical CSet”命令,可以检查约束实施情况。

从图 6-43 的检查报告中,对比“Cset end point”和“Xnet end point”这两部分的内容,我们可以发现是由于 DDR_A<13>这个网络中缺少和约束相匹配的管脚。对于这种错误,只有两种可能,要么是原理图所定义的器件符号中 DDR 芯片 A<13>管脚的属性定义有错误,要么就是我们对 DDR 器件指定的模型中关于 A<13>管脚的 I/O 模型有错误,需要逐一检查对错误进行定位。

 首先我们检查设计中 DDR 芯片及其管脚的属性信息,在 PCB 的设计环境中,查看 DDR 芯片的属性。

参考图 6-44 中信息,我们发现,DDR1_A<13>管脚是 NC 属性,而且也没有 I/O 模型,其他地址总线管脚,A<12>到 A<0>的属性都是 IN,并且也具有正确的 IO 模型 T27B_INPUT。这说明由于 DDR1_A<13>管脚属性不对,从而造成设计的约束不能正确实施在该网络上。但是,由于此时已经给 DDR 芯片赋予了器件模型,我们还不能确定该错误是来源于原理图符号设计的错误,还是器件模型中的错误。为了对错误定位,我们可以把 DDR 芯片的器件模型卸载掉,然后再检查该器件的属性。把 DDR 器件模型卸载掉后,再次查看 DDR 器件信息,如图 6-45 所示。

 从图 6-45 中我们发现,DDR 芯片的所有地址管脚都具有 IN 属性,并且也都有默认的 CDSDefaultInput_2p5V 的 I/O 模型。这说明,原理图中设计的 DDR 芯片是正确的,前面检查到的 DDR1_A<13>管脚是 NC 属性,这应该是来源于 DDR 芯片的器件模型。因此,我们打开 DDR 芯片的模型文件,对模型中所定义的器件信息进行检查(这里包括两个模型文件,一个是 IBIS 文件,一个是 DML 文件,读者可以选择熟悉的文件类型进行检查,此处的示例作者使用 IBIS 文件,并且为了对比说明,作者将原来的 IBIS 文件改名为“L27b_original.ibs”)。

 从这个文件中,找到器件“[Component] MT46V64M4TG-75E”所在的位置,并查看所属管脚信息。从图 6-46 中可以看到,地址 A<13>管脚的位置 F9 在文件中的第 457 行,管脚属性确实是 NC,也就是该约束中的错误是由指定的模型引入的。为了进一步搞清原因,我们打开 DDR 芯片的数据手册“512MBDDRx4x8x16_BGA.pdf”,看看数据手册中是如何对芯片 A<13>管脚进行定义的。在芯片数据手册的第 10 页,我们找到如图 6-47 所示的信息。

 这说明,器件模型中的 NC 定义是没有错的,原理图中为了预留对 DDR 系统的扩展能力,对 DDR 器件的设计也是没有错的,只是两处信息的出发点不一致而已。为了能够让 DDR1_A 的设计约束正确实施到设计中,保留系统的扩展能力,我们需要对器件的 IBIS 文件进行修改,将文件中的第 457 行,修改成:
F9 A13 INPUT 59.4m 2.12nH 0.46pF

当然,RLC 的参数不是很精确,参考其他的地址线管脚,定义一个相近值就可以了。保存文件后,再将 IBIS 模型转装成 DML 模型,重新指定给 DDR 器件,如果读者在重新指定 DDR 器件模型之后,能够看到如图 6-48 所示的信息,管脚 A<13>的类型和模型就都得到了纠正,说明问题得到解决。这个过程就不再重复叙述了,读者可以自己动手实现。现在回到 CM 约束管理器中,我们可以发现关于 DDR1_A 的设计约束已经没有红色标记了,说明约束已经全部实施到 DDR1 地址总线的所有线网中了。

 现在,我们已经完成了对 DDR1 中地址、控制和数据总线的设计规则定义和实施。由于在本实例中,DDR1 子系统和 DDR1 子系统在逻辑结构上是完全一致的,使用的器件也是一样的。所以我们可以把对于 DDR1 的设计约束无缝地实施到 DDR2 设计中,这样我们就完全完成了对于本实例中所有 DDR 设计约束的定义和实施。恭喜你,下面我们就可以在这样的约束下放心地进行 PCB 的布线,按照这样的流程和方法设计出的系统一定会满足 DDR 的性能要求。

6.8 布线后的仿真验证

如果读者确实按照上面介绍的方法和流程,亲自动手设计完成了 DDR 的仿真分析和布线设计。那么在这里我们要进行仿真流程中的最后一步工作,对于布线后的设计进行仿真验证。

布线后仿真验证工作的必要性和目的我们已经在上一章中详细讲解过。在本节中,我们将按照后仿真的工作流程,首先检查前仿真所做的约束是否得到了有效的实施,如果存在违反电气规则的 DRC,那么就需要分析 DRC 产生的原因,是由于约束要求太严格,还是在布线时违反了设计的约束,然后根据检查结果去调整相应的设计元素。对约束 DRC 的检查很简单,可以通过直接从菜单中选择“Tools→Reports...→Design Rules Check Report”命令查看文本形式的报告,或者可以打开 CM 的约束管理器,在 CM 的约束管理器中出现红色区域的网格就是 DRC 错误位置。在我们的这个设计实例中,打开 CM 的约束管理器检查 DRC 结果,幸运地是看到一片绿色,说明所有的设计约束都已经得到正确执行,如图 6-49 所示。

当然,对于一个设计而言,所有设计约束一次通过的几率并不大,通常要有二或三次对设计约束进行调整。在这个设计实例中,我们的目的是为了让读者体会一个流畅的设计流程,而不是非常严格的产品设计,所以在前仿真中我们没有设计过多的约束,而且关于 DDR 部分的约束也是比较宽松的,因此留给布线的设计余度比较大,使得设计能够一次通过。在本书提供的资料中,有一个名为“Booksi_Demo_Allegro160_Finished.brd”的设计文件,这个文件就是作者按照前面做出的约束完成布线的设计。

在检查 DRC 之后,读者可以启动后仿真分析,对设计中感兴趣的地方进行后仿真分析。在菜单中选择“Analyze→SVEMI Sim→Probe”命令,然后在系统打开的网络列表界面中选择感兴趣的信号,如图 6-49 所示,比如 DDR1_DQS<0>信号,再指定 Driver Pins 为 UI_AB28,Load Pins,为 U5.E3 进行分析。单击下方的“Reports”按钮,进入“Analysis Report Generator”界面。

 在图 6-50 的界面中,首先需要关注的是“Report Types”这个区域。在这里,用户可以根据需要选择进行后仿真的类型,然后逐步选择和仿真类型相关的仿真参数。对这个界面中的大部分参数设置,不用再详细介绍,相信读者能够根据自己的理解进行正确的仿真类型选择,以及进行相应的参数设置。但是有一个参数需要读者注意,在“Reflection Data Simulation”区域中,有一个“Custom Stimulus”单选项,这个单选项是为了精确仿真而进行的激励设置。选中这个单选项,并单击“Assign...”按钮,系统将打开如图 6-51 所示的仿真激励设计界面。

 在如图 6-51 所示的“Stimulus Setup”激励设置界面中,是当前设计中所有网络的列表,并且在每个网络列表后面跟随的是对当前网络的激励设置。这个界面在很大程度上为全板信号的仿真分析提供了方便的激励设置,用户可以在这里定义接近于系统真实运行情况的激励模式,从而得出可信度比较高的仿真分析报告。对于我们这个设计实例,由于 FPGA 器件没有以整个器件的形式赋予仿真模型,因此如果执行部分信号的后仿真分析,那么 FPGA 的所有管脚将被赋予默认的 IO 模型,这和实际的系统运行情况不符,也就失去了做后仿真的意义。但是我们依然可以拿 DDR1_DQS<0>信号做例子,通过对单个信号线抽取拓扑的方式,对其布线进行分析验证。在图 6-49 的界面中,通过单线抽取 View Topology 的方式,在 SigXP 中可以看到如图 6-52 的 DDR1_DQS<0>信号布线后的拓扑结构。

 读者可以看到,布线后抽取的拓扑结构中,原来理想的传输线模型已经被实际的传输线模型,以及实际布线长度所取代,并且加入了相应的过孔结构模型。通过对这个拓扑结构进行适当的修改,比如替换掉 FPGA 的管脚模型并加入适当的激励,再次进行仿真分析,将这个结果和 6.6.4 中的前仿真结果进行对比,几乎没有什么差别(请读者自行练习做前后仿真结果的对比)。这说明,我们在前仿真中所过的工作非常充分,不但保证了布线的约束规则能够正确的实施,也充分地考虑到布线后各种因素对信号完整性的影响,从而使布线前后的仿真结果非常吻合。但是如果读者在实际的设计中发现后仿真的结果和前仿真的结果相差甚远,那就需要认真考虑前后仿真条件的差异,确实找到影响仿真结果差异的因素,从而决定是否接受当前的布线设计。最不幸的情况就是,通过后仿真分析发现前仿真分析的条件设置错误,例如,使用了错误的器件模型,或者设置了错误的仿真激励条件。在这种情况下,必须从前仿真开始,所有工作重新做一遍。这样的错误所造成的项目延期和设计成本的增加通常是巨大的,但是,在 Cadence 这套高速设计流程的控制下,至少要比投板生产之后再发现问题要高效得多。

对于这个设计中 DDR 总线的后仿真分析验证讲解,本书就提供这么多内容,但是后仿真分析的内容并不限于本书中所讲的这些内容。本书的目的是告诉读者仿真分析软件使用的理念和基本使用方法,不可能将软件中所有的功能一一展示出来,更多功能需要读者在这个基础上进一步去练习和体会。比如,如果读者想做全板的串扰分析,可以通过修改 FPGA 的 DML 模型,对 FPGA 的每个信号管脚按照其实际的使用状态赋予相应的模型,在这种情况下,后仿真分析引擎 SigXNoise 就会按照正确的模型进行串扰分析,或者进行其他类型的仿真分析。这部分工作留给读者通过自己动手实践去体会和掌握。

6.9 DDR 总线的其他分析技术

6.9.1 DDR2 和 DDR3 介绍

DDR 全名为 Double Data Rate SDRAM,简称为 DDR。DDR 本质上不需要提高时钟频率就能加倍提高 SDRAM 的速度,它允许在时钟的上升沿和下降沿读写数据,因而其速度是标准 SDRAM 的两倍。至于地址与控制信号与传统 SDRAM 相同,仍在时钟上升沿进行数据判决。如图 6-53 所示的是 DDR 总线的系统结构。

 DDR 技术到目前为止,已经发展经过了 DDR、DDR2 和 DDR3 等时代,DDR3 理论上速度可以支持到 1600MT/s。DDR 总线走线数量多、速度快、操作复杂、探测困难,给测试和分析带来了巨大的挑战。从系统设计的角度看,从 DDR 到 DDR2 在系统结构上没有什么本质变化,除了大幅度提升系统工作频率外,还增加了 ODT(On Die Termination)功能,DDR 把匹配逻辑放在 PCB 上,而 DDR2 则把匹配直接设计到 DRAM 芯片内部,用来改善信号品质和减轻系统设计压力。同时,DDR2 把工作电压从 2.5V 降低到 1.8V,降低了系统功耗。而 DDR3 和 DDR2 相比,有了更多的改变。

大幅度提高了工作频率,DDR3 时钟工作频率可在 800MHz 至 1066MHz 下运行(目前可能更高)。
进一步降低工作电压,新一代 DDR3 是在 1.5V 电压下工作,而 DDR2 则是在 1.8V 下工作,这样可以弥补由于过多的操作所产生的高能耗,同时,减少的能量消耗可以减轻系统的设计压力。
DDR3 内存 Bank 增加到了八个,比 DDR2 提高了一倍。所以相比 DDR2 预读取会提高 50% 的效率,是 DDR2 标准的两倍。
更重要的是,由于在更高的运行频率下,DDR3 内存在模组的信号完整性上要求更加严格,在极端频率下,信号完整性很难得到保障。因此,DDR3 采取了 Fly-By 的拓扑结构,采用点对点的传输模式,地址线与控制线单一的路径取代 DDR2 的 T 型分支拓扑结构,从内存控制器串行连接到单个 DRAM 芯片上。这个体系结构的变动使得系统设计的难度大大降低。如图 6-54 所示,是 DDR3 和 DDR1、DDR2 的信号拓扑结构的对比。

 DDR3 的 Fly-By 这种拓扑结构的改变虽然降低了系统设计难度,增强了信号完整性,但是对于信号完整性的时序分析过程稍稍变得复杂一些。由于地址和控制信号到达每个 DRAM 芯片的时序不一致,在做时序仿真和设计约束时,要采用特别的技术对地址和控制信号进行分组处理,以配合数据响应的读写时序。这部分功能将在 Cadence 的最新版本 V16.3 中得到体现,作为技术发展和设计方法的更新,本书中还不能做更多的介绍,仅为读者能够紧跟技术发展提供信息。

6.9.2 DDR2 仿真分析设计方法

在前面的章节中,我们用了大量的篇幅来介绍如何设计由 DDR 芯片搭建而成一个 DDR 存储模块。这样做的目的是使读者能够更加全面深入地掌握 DDR 设计和分析技术。虽然 DDR 已经是非常成熟的设计技术,发展到今天,已经没有什么神秘性可言,但是只有熟练地掌握了最简单的技术,才有可能去实现更复杂的设计。

在前一节中,我们简单介绍了 DDR、DDR2 和 DDR3 技术的发展趋势,以及它们之间的联系和区别。在目前主流的服务器和 PC 机中,DDR2 已经逐渐取代 DDR,成为内存模块设计的主流技术,所以掌握 DDR2 的仿真设计技术尤为重要。相对与 DDR 来讲,DDR2 的改变有如下几个方面。
增加了 ODT,把终端匹配直接设计到 DRAM 芯片内部;
DDR2 把工作电压从 2.5V 降低到 1.8V;
大幅度提升了工作频率,可达 800MHz,甚至 1066MHz。

在以上的几种技术更新中,哪个是最级应用设计工程师最不愿看到的呢?当然是速度的提升。前面两个技术的改进实际上是有利于降低系统复杂度的,而只有速度的提升会给系统设计带来更多的麻烦。随着信号工作频率的提高,最直接的问题就是信号本身质量的问题,也就是信号完整性问题,然后是多个相关信号之间的时序问题。为了说明速度的提升给 DDR2 系统设计带来的复杂性,我们以一个 DDR2 芯片的数据手册作为例子来说明,在 DDR2 的设计中需要考虑哪些因素。

本例中使用的仍然是来自 Micron 的 DDR2 芯片,芯片产品类别为:512Mb:x4,x8,x16 DDR2 SDRAM。其数据手册位于网上下载资料中的“Datasheets\512MbDDR2.pdf”。我们直接来看一下手册中关于 DDR2 的输入信号 AC 特性时序图,如图 61 页的“Figure 26: Nominal Slew Line for tDQS and Figure 27: Tangent Line for tDQS”,也就是读者在本书中看到的图 6-55,为方便读者对比阅读,图 6-55 将两种信号的序图放在了一起。

这个时序图中要表达的信息是,当信号频率升高后信号本身的波形质量会下降,首先信号波形的一致单调性将很难得到保证,其次,在高频信号中,信号有效的采样窗口会变得很窄,例如,对于 800MHz 的 DDR2,其采样窗口仅为 1.25ns。如图 6-55 所示,在这样有限的采样窗口内,信号质量又得不到保证的情况下,需要定义更加严格的采样时间。

在图 6-55 中,我们以上述的 DQ 信号为例,定义了两种信号上升斜率,用来计算 Setup 时间 tDs。

● 额定斜率 Nominal Slew Rate,如果仿真结果中,DQ 信号出现如左图中单调性比较好的情况,那么就使用 Nominal 这种计算方法来计算 tDS;
● 切线斜率 Tangent Line Slew Rate,如果仿真结果的 DQ 信号出现如右图中单调性不好的情况,那么就使用 Tangent 的计算方法来计算 tDS。

这两种计算方法的主要区别是 DQ 信号在穿越 VDDQ 和 VDDQ/2 所用的时间间隔 ΔTR,一个是实际信号的穿越时间间隔,一个是在信号单调性被破坏的情况下,由切线的穿越时间间隔来确定的时间间隔。这样,对于不同的信号质量就可以得到不同的斜率 Slew Rate。在仿真结果中需要以图 6-55 作为模板对波形加以判定,以决定到底使用哪一种斜率计算方法。完成了波形的斜率计算之后,我们还需要根据斜率去计算 tDS 和 tDH 这两个参数。

 DDR2 的器件数据手册中,对于 tDS 和 tDH 的定义,也不再像传统的 DDR 那样定义一个唯一的值,而是在一个定义好的参考值的基础之上,再根据实际信号的质量来确定最终的 tDS 参数。如表 6-15 所示,差分 DQS 信号下的 tDS 和 tDH 的 Derating 参数表。这个表格在本使用方式是,根据对 DQ 信号的仿真结果,计算出 DQ 信号的斜率,在表中找到相应位置的数值,和器件手册中对 tDS 和 tDH 定义的基本值相加,就是当前设计中的 DQ 信号的 tDS 和 tDH。有些工程师将这个表理解成性能退化表,实际上并不确切,因为读者根据斜率的计算方法和表中的数据可以知道,在 Slew Rate 比较大的时候(也就是信号波形质量和信号的单调性比较好的时候),tDS 和 tDH 的性能是得到加强的(表中的数据为正数)。对于这个表格的使用,有几个注意事项。首先,由 Derating 的格式也可以看出,我们不仅要对 DQ 信号进行斜率计算,同时也需要对 DQS 信号进行斜率计算,这两个斜率相对应的值,才是我们要找的性能参数。而且这个表对 DQS 信号要求是严格单调的,也就是说,对 DQS 信号来讲,是不存在切线斜率的,只能有 Nominal 额定斜率存在。其次,如果在这个表格中,没有我们计算出的斜率值,不论是 DQ 信号的还是 DQS 信号的,我们都可以通过表中的数据进行线性插值得到我们需要的数据。

 上面我们讲解了对 DQ 信号中的上升沿与下降沿时间参数进行计算的过程。同理,读者可以理解和掌握其信号下降沿相关时间参数的计算。通过以上的介绍和讲解,希望能够使读者对于 DDR2 的设计有个基本的概念。其基本设计流程和思路与 DDR 设计是一样的,都是通过数据手册查找到设计规范要求,然后进行设计分配和预算,最后在仿真中进行分析和优化,能够符合最初的设计要求就是一个成功的设计。唯一的区别是,具体规范中的参数解读和获取有所不同。

从 DDR2 的设计要求中可以看出,DDR2 规范中对各项设计参数的计算更加烦琐,不像 DDR 中那样可以直接获得,而且对 DQS 斜率的计算要和仿真图形的模板进行比对,才能决定使用哪个斜率计算方法。也正因如此,在目前的 Cadence 版本的仿真软件中,还没有办法进行自动的参数计算,即使用前面我们介绍的 Custom 测量方式,也难以实现 DDR2 的参数计算方法。因此,对于 DDR2 的设计,作者的体会就是,仍然需要 SI 工程师大量而细致的人工工作,而这也正是我们的价值所在。

6.9.3 DIMM 系统设计分析方法

在前面的章节中,我们介绍的都是如何设计由 DDR 芯片搭建而成一个 DDR 存储模块。希望通过这样的方式,能够让读者从 DDR 设计的最基本技术入手,更加全面深入地掌握 DDR 存储系统的组织结构和设计分析技术。但是在实际工作中,更多的情况是使用的 DIMM Module 模式的设计。这样的设计实现上更加简单,因为留给读者的是一个 DIMM 连接器的接口,我们只需要保证从 DDR 控制器到 DIMM 接口的时序就可以了。但是,由于系统中使用的是插槽,不是有源器件,那么该如何进行 DDR 的仿真分析?其实答案很简单。

方法有两个。
● 方法一,强行把 DIMM 定义为有源器件,也即将 DIMM 的连接器定义为 U 类器件,并按照管脚定义自己做一个器件的 IBIS Model 文件,Model 中的数据还是从供应商处得到,然后需要修改器件说明部分,把这个 Model 器件描述成 DIMM 接口的结构,再把这个 Model 指定给 DIMM 接插件,这样就可以把 DIMM 接插件当做一个有源器件来处理了。这种方式比较方便,不受 DIMM 模型性的限制,仿真速度也比较快,但是这种方法忽略了 DIMM 连接器及从连接器到存储芯片之间的传输线,所以仿真精度不是很高,但对于做主控的设计而言,其结果还是可信的。只是在实施的过程中,对 Model 模型中器件的描述需要人为修改,如果对 IBIS 文件结构不熟悉,做起来会有些困难。
● 方法二,某些 DIMM 厂商会提供 DIMM 的 Module,这样就可以使用 Cadence 提供的 DesignLink 功能。通过该插件上的管脚定义,在仿真时把厂商提供的 DIMM Module 当做一个 Design,进行板级联合仿真。这种方式的精度和可信度比较高,实施过程中不容易出现人为错误,但是并不是所有的 DIMM 都能找到相应的设计 Module。

在实际的仿真工作中,可能会遇到各种各样的问题,这些问题也不一定能够在工具中找到现成的解决方案。Cadence 高速设计系统的强大之处在于它提供了丰富的功能,用户在充分理解仿真意图和工具使用方法后,可以按照实际的设计需求,自己去探索如何灵活使用 Cadence 系统所提供的各种功能,通过合理的组合完成看似很难的设计任务。这也是本书写作宗旨之一,通过一个完整的设计分析实例,让读者能够实实在在地掌握一种分析方法,而更多的软件功能和使用技巧仍需要读者自己去领会和开发。

6.10 电源完整性——多节点仿真分析

布线完成后,我们还需要对电源完整性进行分析。按照 5.10.2 中对电源完整性分析的设计步骤,应该很容易完成对电源完整性分析所需的设置过程,并进入到如图 6-56 所示的“Power Integrity Design & Analysis”界面中。在这个界面中,读者可以针对所要分析的电源平面对,设置电源完整性的分析条件,比如电源波动及最大电流强度等,如图中设计的 4% 应该说是比较苛刻的条件了,通常设计者应该在相关器件的数据手册寻找这些数据。在本书的设计实例中,我们选择了 PCB 中位于第四层的 2.5V 电源平面和第二层的地平面作为平面对,来分析其电源完整性。对于分析中所使用的电容的设置应该在库文件中做好,那么接下来还需要在多点分析中加入实际的电源模块和噪声源。

 在 PCB 的设计环境中,单击鼠标右键,将打开交互界面,如图 6-57 所示。通过这个界面,用户可以在系统中加入电源模块和噪声源(也就是当前电源的负载)。当然,电源模块和噪声源的行为特征也要根据具体器件手册中的参数获得。确认电源模块和噪声源的物理位置及参数都设置好之后,就可以进行多点仿真分析了。单击多点仿真分析“Multi Node Simulation”按钮,软件就开始电源完整性分析了,并且自动调出 SigWave 界面对仿真结果进行显示,仿真结果如图 6-58 所示。在这个仿真结果中,我们发现对于 2.5V 电源的工作频率点 133MHz,电源平面的实际阻抗小于目标阻抗,在 200MHz 以后,电源平面的实际阻抗才慢慢高于目标阻抗。因此可以说,当前设计满足电源完整性要求。

事实上,在这个设计中,由于我们采用了过度的电容数量,因此电源完整性不是问题,但是应该有很大的优化空间。

另外,多点分析中,还有一个很好的功能,那就是仿真结果的交互功能 Crossprobing。在多点分析的结果出来之后,用户可以在 PCB 设计环境中,任何一个电源网格上通过单击鼠标右键选择观察此网格位置的电源阻抗特性,那么在 SigWave 界面中,就会出现所选择网格的电源阻抗曲线。这个功能对于优化电源系统设计,具体来说,就是优化去耦电容的数量和位置提供了很好的帮助。

6.11 灵活使用 Cadence 高速设计流程

Cadence 的高速电路设计系统,提供包含了从芯片封装设计、FPGA 设计、高速信号分析仿真工具及布局布线一整套的设计工具,其关于高速电路设计的帮助文档累计达几万页,要掌握好这样一个庞大的设计工具确实有些难度,而且随着高速电路设计工艺和技术的发展还在不断地增加和扩充新的功能和设计方法。因此如何尽快地掌握并熟练使用这个工具也是我们需要考虑的问题。

了解 Cadence 工具发展的历史可以知道,Cadence 工具最初都是从 Linux 平台上发展起来的,其各个工具及功能模块都是相对独立的,但相互之间可以通过动态链接进行调用,这就为我们灵活使用 Cadence 的各种功能提供了可能。中国有句古话“工欲善其事,必先利其器”,但是我要告诉读者的是“工欲利其器,必先知其义”。也就是说,在读者灵活运用 Cadence 工具之前,必须先对各个工具有充分的了解,在没有了解工具本身的特点之前就打破传统的默认工作流程是不切实际的,那就是老子说的“妄为”。所以,作者建议作为初学者,还是应该按照 Cadence 提供的标准工作流程,逐步完成每个设计环节,在这个过程中逐渐提高工具的使用熟练程度,并加深对工具所提供功能的理解,以及领会每个工具在整个设计流程中所处的地位和担当的角色。经过几个标准的流程实际设计磨练之后,可以尝试按照工作的需求去调整适合自己的流程。这里,作者根据多年实际工作经验,总结了自己的高速设计流程,如图 6-59 所示,提供给读者作为参考,读者可以和前面我们介绍的 Cadence 标准高速设计流程相比较,体会其中的区别和联系。

我们可以看到,该流程实际上是由两个交互的并行流程组成。左边实际上是传统的系统设计流程,右边是高速仿真和约束规则流程,在适当的环节上加入了两个流程的交互而构成高速系统设计流程。从这个意义上理解,这两个流程既可以单独工作,也可以作为一个整体的工作流程模式而共存。

 

围绕着“布线规则应用”环节,有很多的出口链接,这意味着本工作环节的工作重要性。通常,作者所掌控的项目会在这里停留相对较长的设计时间,以充分验证布局布线规则的可实施性。这样在“布线后仿真验证”环节上,通常不会出现反复的情况,从而大大增加了设计成功的可靠性,减少产品设计周期。而且,即使在后仿真阶段出现设计规则的反复,由于前面已经考虑得比较充分了,工作量也是很小的,对问题可以很快定位、查找原因,通过简单的修改,马上就能够得到实施。

而初学者在这一点上往往会犯急躁的毛病,在做完一些仿真分析之后,没有仔细考虑仿真结果所代表的含义,盲目得出布局布线设计的规划,而且急于拿到布线阶段去验证,这样在布线后仿真中会发现很多错误,不得不再次返回到仿真分析的环节。然后在布线类型和数量比较多,也不能很快解决问题,接着再一次去布线环节中实施新的设计约束,疲于奔命在仿真分析和布线验证之间。这样的工作方法,完全丧失了高速设计流程带来的好处,高速设计工具不仅没带来效率和设计可靠性,反而成了设计者的累赘。因此,作为一名 SI 工程师,有责任充分保证布线规则的可实施性,这对于整体项目的成功及设计效率至关重要。

需要注意的是,尽管在该流程图中,有固定的箭头指向相应的流程环节,然而这里表达的是大多数流程的一般应用情况,并不是固定唯一的流程模式。在实际工作中,并不排除各个流程环节以其他的方式进行衔接,比如,对于 SI 的分析及布局布线的规则生成,既可以和原理图同步进行,按照流程图中的切入点,在适当的环节与 PCB 工作交互进行,也可以作为独立的工具,配合 PCB 的工作流程需要,随时提供交互的信息。对于第二种方式,就需要基于 PCB 工程师和 SI 工程师对 Cadence 高速设计流程的灵活掌握,非常明确在设计的哪个环节上需要怎样的信息进行交互及如何高效地完成信息交互。

通常,为保证设计的顺利进行和流程的质量控制,在设计的各个阶段应该对下一个设计环节提供一定形式的工程文件,这些文件包括。
● 各类总线的描述:应该包括总线类型、位宽、总线驱动和拓扑结构特征描述,以及需要在 Layout 阶段注意的电气物理特性等。
● 对于特殊信号线和拓扑结构的特征描述。
● 推荐使用 Excel 电子表格的方式,对仿真获得的参数和结论进行描述,包括匹配特性、时序特性和串扰特性等,以及各种 Noise Margin 参数(虽然 Cadence 工具已经提供了 Constraint Manager 对仿真结果和设计约束进行统一的管理和信息共享,但它毕竟是专用工具,不是和项目相关的每个人都能够安装 Cadence 工具。对于项目控制和更通用的项目信息共享需求,需要像 Excel 这样的普通通用的文件格式来承载设计信息,以便共享和交流)。

● 拓扑结构文件和布局布线说明:SI 工程应该提供 Cadence 格式的拓扑结构分析文件及相应的 Word 格式文件,对拓扑结构和相应的布线规则进行说明,以便 Layout 工程师能够从工具及说明性文档两个方面理解设计意图。实践证明,在缺乏这两种文件的情况下,如果 Layout 工程师对于复杂的拓扑设计逻辑没有能够透彻理解,那么对于 SI 工程师提出的设计要求和约束就很难实现和满足,这样,不可避免地造成 SI 工程师和 Layout 工程师之间在设计周期上的反复。

在实际项目中,这些文档并不一定全面,也不一定适合读者的工作需求,所以仅仅提供给读者作为项目管理参考,读者可以根据自己的工作环境和设计需求,定义在项目管理中所使用的文档形式和内容。

http://www.xdnf.cn/news/7379.html

相关文章:

  • 蓝桥杯2300 质数拆分
  • 码蹄集——N是什么、棋盘
  • JVM(Java 虚拟机)深度解析
  • web基础常用标签
  • More Effective C++:改善编程与设计(下)
  • Seata源码—6.Seata AT模式的数据源代理三
  • 洛谷U536262 井底之“鸡” 附视频讲解
  • 提示词专家的修炼秘籍
  • harris角点检测
  • VisionPro:轴承错位标识
  • QT之绘图模块和双缓冲技术
  • MapStruct Date 转 LocalDate 偏差一天问题
  • 【C++】异常解析
  • AGI大模型(28):LangChain提示模板
  • MySQL中的Change Buffer是什么,它有什么作用?
  • 火山 RTC 引擎9 ----集成 appkey
  • 5月19日笔记
  • 4.7 时间模块
  • 网络传输(ping命令,wget命令,curl命令),端口
  • 接口排查不能靠猜:实战中如何用抓包工具精准定位问题(含 Charles 使用示例)
  • 人工智能、机器学习与深度学习:全面介绍与对比分析
  • 组态王通过开疆智能profinet转ModbusTCP网关连接西门子PLC配置案例
  • 队列和栈的区别
  • 【科研项目】大三保研人科研经历提升
  • Windows多功能工具箱软件推荐
  • gcc: attribute: packed
  • 区块链blog2_中心化与效率
  • 将 Element UI 表格拖动功能提取为公共方法
  • SpringBoot(二)--- SpringBoot基础(http协议、分层解耦)
  • HGDB中如何为表增加自增主键