在原理图和PCB之间同步约束.docx
《在原理图和PCB之间同步约束.docx》由会员分享,可在线阅读,更多相关《在原理图和PCB之间同步约束.docx(77页珍藏版)》请在冰豆网上搜索。
在原理图和PCB之间同步约束
第一章约束管理器介绍
约束管理器是一个交叉的平台,以工作簿和工作表的形式在CadencePCB设计流程中用于管理所有工具的高速电子约束。
约束管理器让你定义、查看和校验从原理图到分析到PCB设计实现的设计流程中每一步的约束。
可以使用约束管理器和SigXplorerExpert开发电路的拓扑并得出电子约束,可以包含定制约束、定制测量和定制激励。
本培训教材描述的主要是怎样在约束管理器中提取约束,并且约束如何与原理图和PCB的属性同步。
本教材的内容是约束管理器、ConceptHDL和PCBDesign的紧密集成的集锦。
所谓约束就是用户定义的限制条件,当在板上走线和放置元件时会遵守这些约束。
电子约束(ECSets)就是限制PCB上与电行为有关的对象,比如可以设置某个网络最大传输延迟为2ns。
教材主要内容如下:
∙第1章~第7章主要关于原理图约束管理器使用:
∙在约束管理器中提取ECs(电子约束);
∙在原理图和约束管理器中执行ECO;
∙在Concept和PCBDesign中传递ECs。
这部分面向ConceptHDL的约束管理器的初学者,但是要熟悉ConceptHDL和PCBDesign。
此教材不讨论ConceptHDL和PCBDesign不同模式和属性的细节,但是会详细地讨论约束管理器过程。
为了快速理解约束管理器的主要特点,可以看看ConceptHDL的多媒体教材。
请见Help–LearningConceptHDL–DemosinConceptHDL。
将练习文件project.zip解压缩到一个空的路径\design。
确认设置环境变量CONCEPT_INST_DIR到Cadence安装路径(一般安装时设置好了)。
∙第8章~第12章主要关于PCB约束管理器使用,但是省略了与原理图相同的部分。
∙本培训教材附两个练习文件:
project.zip和golderboard.rar。
1.1约束管理器简介
约束即用户定义的附加到网络或者管脚对上的要求,电子约束管理着网络和管脚对的行为。
可以使用约束管理器来提取和管理电子约束。
Cadence推荐使用约束管理器来提取约束,因为约束管理器有下列特性:
∙提供工作表为基础的用户接口,允许快速的提取、修改、删除约束。
∙支持语法检查
∙支持约束继承,高层的约束可以被继承,低层的约束可以覆盖高层约束。
∙可以定义电子约束集。
∙创建约束报告。
约束管理器在流程中的位置和作用请见下图:
加入约束管理器的设计流程请见下图:
在下图中约束管理器保存电子约束信息在根设计一个新的目录下,约束视图包含*.dcf文件,里面包含设计的电子约束信息。
在此流程中,在打包时Packager-XL创建5个pst*.dat文件,包含传统设计流程中的3个文件(pstchip.dat,pstxprt.dat,pstxnet.dat),还有两个文件pstcmdb.dat,pstcmbc.dat。
pstcmdb.dat包含当前设计中的电子约束,是constraints视图中的*.dcf文件的拷贝。
pstcmbc.dat包含的是板中的约束,在执行importphysical时产生的。
如果没有*.dcf存在,Packager-XL就允许在传统的流程。
约束管理器是以表格为基础的应用,很容易使用,并且允许创建通用的约束并将其同时应用到很多网络上,如果需求发生改变,可以编辑通用的约束并自动更新用到此约束的网络。
请见图1-1约束管理器界面。
图1-1约束管理器用户界面
在约束管理器,你可以工作在对象(objects)(比如网络、管脚对)和ECSets(Electricalconstraintsets电子约束集)。
你可以以电子约束的形式定义一个或者多个约束以满足设计需求,然后指定合适的约束给设计中对象,如果需求变更可以交换ECSets或者重新定义当前的指定。
一个ECSets可以被很多对象应用,对象和ECSets对于整个设计可以是通用的,或者仅设计中的指定网络应用。
约束管理器的特点请见表1-1:
表1-1约束管理器的特点
特色
优点
对象分组
可以对对象进行分组成为容易管理的单位,例如bus或者matchnet,可以比较容易应用约束给成员
概念性定义
可以先定义概念性的约束,之后再应用于物理的、网络的对象
重新定义约束
不用一一修改每个网络的约束,只要重新定义ECSets,那么所有应用这个约束的对象被同时更新。
交叉检查
你可以用其他工具比如ConceptHDL,PCBSI或者PCBDesign运行约束管理器,在约束管理器中选择Net查看相关的对象,它在原理图、分析、布线里都是动态更新的。
相反,当在某个工具中更改了约束,约束管理器会更新它的值。
拓扑开发(注1)
在约束管理器中可以启动SigXplorer来确定管脚顺序并得出通用的、网络相关的约束。
可以包含定制约束、定制测量和定制激励。
拓扑样本可以导入约束管理器。
设计重用
约束可以被导出被重用。
克隆约束
可以拷贝并修改参数存为另外一个约束。
分析
约束管理器可以完成设计规则检查,有必要的话,还可以进行仿真分析。
分析结果以DRC标记,结果也可以在工作表中显示,还可以与定义的约束进行比较,显示出裕量。
系统级约束
约束管理器能够提取板到板的互连约束。
永久保存
可以保存在板数据中,原理图数据中。
注1:
拓扑模板的存在比约束管理器早,拓扑模板与约束管理器的集成提供一个优选的创建和编辑ECSets的环境。
拓扑模板除了提供图形环境来访问指定的管脚对和定义网络节点排序(scheduling)也可以使用电子约束。
拓扑模板和ECSets可能会交换使用,但是应该注意此功能是可选的。
在约束管理器中可以管理所有的ECSets,并且ECSets可能仅包含规则而没有相关的拓扑。
1.2约束管理器界面简介
请见图1-1,约束管理器包含以下几个部分:
∙menu和icon命令选择
∙worksheetselector用于选择合适的工作表
∙worksheets用于提取、编辑和校验约束
∙statusbar反馈对象选择和约束进程
注意当在约束管理器中选择一个目标时,按右键可以弹出一个上下文敏感的菜单,选择命令执行。
1.2.1worksheetselector
使用worksheetselector启动想要编辑的合适的工作表。
在约束管理器中通过worksheetselector通过Objecttype管理约束和属性。
Objecttype就是最上层的文件夹ElectricalConstraintSet和Net。
请见图1-2。
图1-2Objecttype和Workbooks
在ElectricalConstraintSet文件夹中定义通用的规则,创建通用的对象分组(比如相对或者匹配群组和pin-pair),然后再将这些约束ECSets指定给相应的对象。
在Net文件夹可以创建针对指定网络对象分组(symtem,design,bus,diff-pair,Xnet,net,relativeormatchgroup,andpin-pair)。
也可以创建基于网络相关属性的ECSet。
这个ECSet将放在ElectricalConstraintSet文件夹中。
当扩展ElectricalConstraintSet或者Net文件夹时,工作簿通过设计规则组织这些对象,比如SignalIntegrity,Timing,Routing,andCustomMeasurements,此外在ElectricalConstraintSet文件夹还有一个AllConstraints工作簿,包含所有工作表中的约束。
在AllConstraints的下面有一个User-defined文件夹包含SigXplorer定义的独特的约束。
一般,你定义一个约束在某个指定的工作表中,那么只能设置这个工作表相关的约束,不能设置其他工作表中包含的约束,你可以在AllConstraints工作簿中定义这个约束的其他设置,而不用另外再建一个约束。
在AllConstraints工作簿也可以用于不同工作表中约束的比较。
1.2.2用户接口
Cadence约束管理器的基本操作与Windows基本操作基本相同。
下面仅将快捷键介绍一下。
提供的快捷键如下:
表1-2快捷键
快捷键
功能
F3
FindNext
F9
Analyze
Cntrl+F9
AnalysisModes
Shift+F9
AnalysisSettings
Cntrl+F6
ViewOptions
1.2.3View选项
约束管理器提供很多选项以定义自己的用户界面。
设置View选项
1.在启动约束管理器之前,首先打开项目文件project.cpm,然后打开原理图。
2.在ConceptHDL界面,选择【Tools】/【Constraints】/【Edit】。
弹出约束管理器对话框,提醒使用约束管理器要考虑兼容性。
3.选择【Don’tshowmethemessageagain】单选框。
4.点击OK按钮。
5.点击Yes按钮。
在设计展开之后,启动约束管理器界面。
注意在约束管理器标题栏标识“connectedtoConceptHDL”,表示约束管理器中的约束来自ConceptHDL。
请见图1-3。
图1-3约束管理器界面
6.选择【View】/【Option】命令,进入【ViewOptions】对话框。
【Colors】栏的几个颜色选择对应不用状态的颜色选择:
【Pass】:
当分析结果与指定的约束匹配时显示的颜色。
【Fail】:
当分析结果与指定的约束不匹配时显示的颜色。
【Analysiserror】:
当分析不能完成时显示的颜色,在状态栏会显示错误的原因。
【Directlyset】:
直接对网络相关的约束设置时显示的颜色。
【Dividers】:
规定Objects集的分隔显示的颜色。
【Usedefaults】:
选择此选项时表示使用缺省设置,如果不选使用用户的设置。
【Usecolors】:
选择此选项时表示使用颜色设置,如果不选不分类显示颜色。
关于【Names】栏的意思以后章节会详细解释。
1.3启动约束管理器
上一节讲了一个启动约束管理器的方法,可以从以下几个工具启动约束管理器:
工具
菜单命令
PCBSI,PCBDesign,
AdvancedPackageDesigner,or
ChipI/OPlanner(后边两个工具我们不用)
Setup–ElectricalConstraintSpreadsheet
ConceptHDL
Tools–Constraints–Edit
也可以点击约束管理器图标
进入约束管理器。
第2章
Objects介绍
上一章已经提过对象(objects)这个词,本章将具体介绍objects。
约束管理器强制执行objects的优先顺序,最顶层的是System,最底层的是pin-pair。
为顶层对象指定的约束会被底层的对象继承,为底层对象指定的同样的约束优先级高于从上层继承的约束。
尽量在高层次指定约束,层次关系如下:
图2-1Objects层次图
注意此Object层次图描述的是网络相关的对象类型,电子约束对象类型不包括网络相关的信息(Xnet和Net),但是与网络对象类型有同样的优先级。
对象的排序让你尽可能定义约束在最高层次,在低层次仅设置要覆盖的约束。
注意在某个工作表中,对象的子层次反映的分析结果,不会被用于约束优先的层次。
这些对象结果与一般的约束层次是不区分的,但是可以读,不能编辑这些约束。
图2-2多板结构对象层次举例
图2-2描绘了多板system结构,包括主板A_TO_B和两个子板设计A和B。
也包含net,Xnet,diff-pair,和bus对象分组。
2.1Pin-Pairs
Pin-Pair代表一对逻辑连接的管脚,一般是驱动和接收。
Pin-Pairs可能不是直接连接的,但是肯定存在于同一个net或者Xnet(所谓Xnet即网络的中间可能串接电阻或者接插件,比如图2-3中的U1.8到U3.8的连接中间经过了一个电阻,即Xnet,在2.2节会详细讲解。
)。
可以使用pin-pairs来获取net或者Xnet指定的pin-to-pin约束,也可以使用pin-pairs来获取ECSets通用的pin-to-pin约束,如果参考了某个ECSets会自动定义net或者Xnet的pin-pairs。
可以指定pin-pairs(比如U1.8U3.8)或者基于下面的格式直接提取。
当从SigXplorer导入拓扑并应用ECSets给net,约束管理器基于导入的拓扑文件创建net或者Xnet的pin-pairs。
∙Longestpin-pair
∙Longestdriver-receiverpair
∙Alldriver-receiverpairs
图2-3Longestpin-pair
注意:
ConceptHDL数据库不能直接支持pin-pair对象,约束管理器能够更新和校验原理图中的pin-pair约束。
创建pin-pair的方法请见3.1.1节15~19步具体操作。
2.1.1Pin-Pair规则
下面的规则应用于创建Pin-Pairs,Pin-Pairs仅能在以下工作表中创建。
工作簿
工作表
AllConstraints(不可以)
SignalIntegrity/Timing/Routing
Timing
Switch/SettleDelay
Setup/Hold
Routing
Impedance
Min/MaxPropagationdelay
RelativePropagationDelay
∙在对象中一定要存在某个管脚,才能创建相应的pin-pair。
∙在AllConstraints和Timing工作表中的对象一定要有驱动和接收。
∙Pin-pairlength如果已经完成走线则是两个管脚之前走线的长度,如果没走线,就是连接两个管脚的鼠线的曼哈顿距离。
∙约束管理器确定longest/shortestpin-pairlength是基于驱动和接收,如果没有任何驱动和接收,就考虑Xnet。
∙对于相对传输延迟约束,仅仅确定longestpin-pair。
2.2Nets和Xnets
请见图2-4很容易理解Cadence的Nets和Xnets的区别。
所谓nets就是从一个管脚到其他管脚的电子连接。
如果net的中间串了无源的、分立的器件,比如电阻、电容或者电感,那么在数据库中每个网络段通过一个独立的net来表示。
约束管理器解释这些网络段作为相邻的扩展的网络或者Xnet,Xnets在多板连接的结构中也可以贯穿连接器和电缆。
可以将Nets和Xnets与ECSets联系起来。
图2-4Nets和Xnets的区别
2.3Buses
总线代表diff-pairs,Xnets或者nets的指定的集合。
在总线上获取的约束可以被所有总线的成员继承,可以通过SigXplorer定义管脚的连接顺序并增加约束信息。
∙Bus规则
∙可以在所有网络相关的工作表中创建总线。
∙当与ConceptHDL关联时,约束管理器不能创建总线。
∙总线一定是design-level,不能是system-level。
2.4MatchGroups
MatchGroup是nets,Xnets或者pin-pairs的集合,此集合一定要都匹配(delay或者length)或者相对于组内的一个明确的目标。
如果delta值没有定义,组内的所有成员都将是绝对匹配的,并允许有一定的偏差。
如果定义了delta值,那么组内所有成员将相对匹配于明确的目标网络。
下面的是MatchGroup的必要属性:
∙Target-组内其他pin-pairs都要参考的pin-pair就是目标(Target),可以是默认的也可以是明确指定的pin-pair,其他的pin-pairs都要与这个目标比较。
∙Delta-每个pin-pair成员与目标pin-pair的差值,如果没有指定此差值,那么所有成员就需要匹配,如果定义了此值不为0,则此群组就是一个相对匹配的群组。
∙Tolerance-允许匹配的偏差值。
下面用三个例子来说明不同情况下的匹配群组(绝对的和相对的)。
例1
Net
Target
Delta
Tolerance
Comments
Data1
未指定
未指定
10mil
这个例子中没有参考,所有的网络都必须彼此匹配在10mil之内,如果三个网络中的一个是1000mil,其他两个网络必须在990mil~1010mil之间,delta值未指定(不是0)是绝对的匹配延迟,target也未指定。
Data2
未指定
未指定
10mil
Data3
未指定
未指定
10mil
例2
Net
Target
Delta
Tolerance
Comments
Data1
0mil
10mil
Data3是此群组参考值,所有的网络都必须匹配Data3在10mil之内,如果Data3是1000mil,其他两个网络必须在990mil~1010mil之间,delta值被指定是相对的匹配(传输)延迟。
Data2
0mil
10mil
Data3
X
0mil
10mil
例3
Net
Target
Delta
Tolerance
Comments
Data1
X
100mil
10mil
Data1此群组参考值,所有的网络都必须匹配Data1在100mil之内并加上或者减去指定的偏差值10mil。
如果Data1是1000mil,其他两个网络必须在990mil~1110mil之间,对于相对的匹配(传输)延迟delta和tolerance值被指定。
Data2
100mil
10mil
Data3
100mil
10mil
2.4.1如何确定targetpinpair
一旦pin-pairs中的一对被选择作为目标,其他的pin-pairs都要与此目标以给定的delta和tolerance内来匹配。
约束管理器决定目标pin-pairs的方法如下:
∙明确指定的pin-pair。
∙如果所有的pin-pairs都有delta值,那么有最小delta值的网络就是目标。
如果超过一对管脚对有同样的最小的delta值,那么有最长的曼哈顿长度的网络被选为目标。
∙如果所有的管脚对都没有delta值,那么就没有选择目标,所有的管脚对就进行相互比较。
2.4.2相对/匹配的群组规则
∙MatchGroup仅能在Routing工作簿的RelativePropagationDelay工作表中的指定。
∙可以为整个群组设置相对的/匹配的群组约束,群组中每个成员可以根据要求修改tolerance。
∙相对/匹配的群组之间的延迟可以在system和design一级设置。
∙匹配延迟约束从14.0版数据库升级Delta值为0,暗示所有的群组成员都要匹配一个指定的目标管脚对。
2.5DiffPairs
约束管理器支持两种类型的差分对:
∙模型定义的差分对
可以在器件信号模型中指定差分对,可以使用PCBDesign,PCBSI,SigXplores来将模型指定给相应的元件。
∙用户定义的差分对
可以在约束管理器中Net一级的对象中创建差分对,可以灵活的更改差分对命名和更改差分对成员,但是没有模型指定差分对的精确性。
注意约束管理器不支持系统级的差分对。
2.5.1差分对工作表
可以在Routing工作薄中的DifferentialPair工作表中指定差分对约束,参考图2-5形象的描述出差分对规则检查和分析边界值和事件。
请见图2-6约束管理器差分对工作表界面。
图2-5差分对GatherPoints和CouplingBands
∙PinDelay
此值指一对网络之间管脚封装上的延迟,单位是时间ns或者长度mil。
∙UncoupledLength
此值限制差分对的一对网络之间的不匹配的长度。
如果gathercontrol被设置为ignore,则实际不耦合长度包括两个gatherpoint之间的耦合带之外的长度,当超过Max值时,就会产生冲突。
LengthIgnored包含p43。
∙PhaseTolerance
PhaseTolerance约束确保差分对成员在转换时是同向的和同步的。
单位是时间ns或者长度mil。
Actual值反映的是差分对成员间的时间或者长度的差值,当差值超出tolerance值时,就会有冲突。
∙LineSpacing
最小线间距约束指的是差分对之间的最小距离,在分析之后actual指的是间距最小值,如果小于Min值,则会报告冲突。
注意:
设置的最小间距值一定要小于或者等于PrimaryGap减去(-)Tolerance值,也一定要小于或者等于NeckGap减去(-)Tolerance的值。
图2-6差分对工作表
∙Coupling
根据Coupling的约束确定已经完成走线的不耦合事件。
约束管理器使用这些事件去决定不耦合的长度和相位偏差。
差分计算器可以帮助你确定输入进primarygap,neckgap和tolerance的值。
∙PrimaryWidth-设置的是差分对成员的理想宽度。
∙PrimaryGap-设置的是差分对之间的边到边理想间距。
(+/-)tolerance值是允许的偏差值,如果间距偏差在范围内,差分对被认为是耦合的。
∙NeckWidth-设置的是最小可允许的差分线宽度,当在比较密集的区域走线时,要切换到Neck模式。
∙NeckGap-设置的是最小可允许的边到边差分线间距,当在比较密集的区域走线时,要切换到Neck模式。
最小可允许的gap包括NeckGap减去(-)Tolerance。
当差分对的间距低于ECSet指定给差分对网络的Minneckwidth规则值时,NeckGap覆盖任何PrimaryGap值。
∙确保neckgap不要低于任何Minlinespaing值。
∙如果设置了(-)tolerance值,不需要定义neckgap,因为已经说明了需要的neckgap。
2.5.2差分计算器(DifferentialCalculator)的使用方法
使用差分计算器可以完成综合线宽和线距的计算以获得特殊的差分阻抗。
在约束管理器中右键点击PrimaryGap,NeckGap,或者(+/-)tolerance相应的单元格,在弹出的菜单选择Change命令,然后点击
按钮,即可启动差分计算器。
图2-7差分计算器
差分计算器仅能完成边对边耦合的差分对计算。
2.5.3差分对规则
分模型定义的差分对和用户定义的差分对来说明:
模型定义的差分对
用户定义的差分对
可以在