1、Cadence 原理图约束管理器的基本使用1.1 约束管理器简介约束管理器是一个交叉的平台,以工作薄(workbook)和工作表(worksheet)的形式通过用户定义约束管理来管理设计中的各个网络和管脚对。例如控制某条网络的阻抗值和布线长度等等。约束管理器具有以下功能:1) 它以数据表格的形式与用户接口,使用户能够快速的获取,修改和删除用户定义的约束值。2) 它能够所有的定义的约束进行语法检查。3) 它提供约束的继承,在高等级对象中定义的约束能够被低等级对象所集成。而且低等级对象可以重新定义约束覆盖从高等级对象继承下来的所有约束。能够产生原理图和 pcb 板关于约束捕捉的报告。2.1 原理图
2、和 pcb 板间约束捕捉的同步原理图和 pcb 的约束同步是指在原理图或 pcb 中定义或修改的约束在原理图和 pcb 之间可以相互传递的(原理图到 pcb 或 pcb 到原理图) 。如下图 1 所示:图 1 原理图与 pcb 板约束的同步3.1 带约束管理的设计流程带约束管理的设计流程与传统的设计流程相比,其主要包含了约束文件,该约束文件以设计板的名字命名,文件扩展名为.dcf ,该文件放在设计板目录下的constraints 目录下。例如在 E:KS8695P_DEMO_V100.1 目录下创建了KS8695P_DEMO_V100.1 工程,设计板的名称为 NETCAMERA,那么在E:K
3、S8695P_DEMO_V100.1WORKLIBNETCAMERACONSTRAINTS 目下会产生 netcamera.dcf 约束文件。带约束管理的设计流程如下图 2 所示:图 2 约束使能的设计流程3.1.1 从原理图导出约束管理到 pcb在使能约束管理器的设计流程中,candence 会产生 5 个必须发送 pcb 板上的文件:pstchip.dat,pstrxprt.datt,pstxnet.dat,pstcmdb.dat,pstcmbc.dat,其中前 3 个在传统的设计中也会产生,后 2 个是在使能约束管理器后产生的文件。其中: pstcmdb.dat:包含了在当前设计中关于约
4、束管理的相关信息。在传统的设计流程中,约束管理的信息存储在 pstxnet.dat 文件中,当使能约束管理器切换到带约束管理的设计流程时,约束管理的信息才转存到pstcmdb.dat 文件中。 pstcmbc.dat:包含了用在 PCB 中的约束管理信息。该文件是当从 PCB到约束信息到原理图时产生的。注:一旦设计流程切换到带约束管理的设计流程时,设计无法返回到传统的设计流程。从原理图导出约束管理到 PCB 的步骤如下:在原理图中选择【File】 【 Export Physical 】 , 则出现如下界面:图 3 约束管理原理图导出界面选中【Package Design】 , 【Update
5、Allegro Board (Netrev) 】和【Electrical constrains】 (如果有定义约束管理,系统会自动选中变成灰色不能修改)复选筐,在【Electrical constrains】中如果选择【overwrites current constraints】选项,意思是用原理图的约束覆盖 pcb 板中约束。如果选择【export changes only】表示仅传递原理图中变更的约束到 pcb。1) 点击【OK】导出。3.1.2 从 PCB 导出约束管理到原理图在原理图中选择【file】【Import Physical】 ,出现如下界面:选择【generate feed
6、back files】 【package design】 ,在【feedback】一栏中选择 allegro pcb edit,在【electrical constraints】一栏中如果选择【import change only】 表示设计同步仅仅导入 allegro 中电子约束改变的部分,如果选择【overwrite current constraints】表示覆盖原理图中的电子约束。1) 点击 OK 进行导入。图 4 约束管理原理图导入界面4.1 启动约束管理器在原理图中选择【Tools】 【Constraints】 【Edit】 ,然后出现以下图 5 所示的消息对话筐:注意:必须选择
7、Allegro Design Entry HDL 610 或者 Allegro Design Entry HDL SI 610 才能够获得约束管理器使用授权。点击【OK】进入约束管理,如果原理图没有展开,则还会弹出要求展开原理图的消息对话筐,点击【是】进入约束管理器。4.2 约束管理器的界面 进入约束管理器的界面后,可以看到界面包含了两个工作区,左边是工作簿/工作表选择区,用来选择进行约束的类型;右边是工作表区,是对应左边类型的具体约束设置值。例如点击左边的 impedance 类型,左边就是与impedance 相关的内容,如下图 6 所示:图 5 【constraint manager】对
8、话筐图 6 约束管理器界面在工作簿/工作表区有两个顶层约束类型,分别为【 electrical constraint set】和【net】 。在【electrical constraint set】文件夹中可以定义通用的设计约束,可以创建通用的对象分组,然后将这些设计约束集指定给相应的对象;在【net】文件夹中可以创建针对指定网络对象分组,可以定义基于网络相关属性的约束集。4.3 对象(object)对象是约束所要设置的目标,是具有优先级的,顶层指定的约束会被底层的对象继承,底层对象指定的同样约束优先级高于从顶层继承下来的约束,一般尽量在顶层指定约束。最顶层的对象是系统 system,最底层的
9、对象是管脚对 pinpair。对象的层次关系依次为:4.3.1 系统系统是最高等级的对象,除了包括设计(比如单板)之外,还包括连接器这些设计的扩展网络、互连电缆和连接器。4.3.2 设计设计代表一个单板或者系统中的一块单板,在多板结构中,每块板都是系统的一个单独的设计。4.3.3 总线总线是管脚对、网络或者扩展网络的集合。在总线上获取的约束被所有总线系统 s y s t e m设计 d e s i g n总线 b u s差分对 d i f f - p a i r扩展网络 x n e t / 网络 n e t相对或匹配群组 r e l a t i v e o r m a t c h g r o
10、u p管脚对 p i n - p a i r图 7 对象的优先级的成员继承。在与原理图相关联时,约束管理器不能创建总线,而且总线是设计层次的,并不属于系统层次。4.3.4 差分对用户可以对具有差分性质的两对网络建立差分对。4.3.5 扩展网络/网络网络就是从一个管脚到其他管脚的电子连接。如果网络的中间串接了被动的、分立的器件比如电阻、电容或者电感,那么跨接在这些器件的两个网络可以看成一个扩展网络。如下图 7 所示,网络 ClkoutA 和 ClkoutB 组成一个扩展网络。4.3.6 相对或匹配群组匹配群组也是网络、扩展网络和管脚对的集合,但集合内的每个成员都要匹配或者相对于匹配于组内的一个明
11、确目标,且只能在【relative propagation delay】工作表定义匹配群组,共涉及了三个参数,目标,相对值和偏差。如果相对值没有定义,匹配群组内的所有成员将是绝对的,并允许一定的偏差。如果定义了相对值,那么组内的所有成员将相对于明确的目标网络。 目标:组内其他管脚对都要参考的管脚对就是目标,目标可以是默认的也可以是明确指定的管教对,其他的管脚对都要与这个目标比较。 相对值:每个成员与目标的相对差值,如果没有指定差值,那么所有成员就需要匹配,如果此值不为 0,群组就是一个相对匹配的群组。 偏差:允许匹配的偏差值。C l k o u t A C l k o u t B图 7 扩展网
12、络示意图4.3.7 管脚对管脚对代表一对逻辑连接的管脚,一般是驱动和接收。Pin-pair 可能不是直接连接的,但是肯定存在于同一个网络或者扩展网络中5.1 约束对象的建立打开约束管理器后,在【electrical constraint set】工作簿栏对应的右边工作表中会产生两种对象:system 和设计(netcamera) ,如下图所示:在【net】工作薄对应的右边工作表区会自动产生四种类型的对象:system,设计(netcamera) ,总线(如 ARM_ADDR)和网络( 如ADC_RESET*)。图 8 【electrical constraint set】对象示意图图 9 【n
13、et】对象示意图1. 建立差分对如果在设计中有差分网络,需要对差分网络做些约束的话,必须首先建立差分对这个对象。a) 首先选择左边工作簿的任何一栏,然后在右键点击右边的工作区object 栏目下设计或网络(总线需要展开) 。例如选择工作薄中【net】中的【impadence】栏,然后右键点击右边工作区的设计netcamera。b) 在弹出的对话筐中选择 create,在扇出的菜单中左键点击differential pair。如下图所示:c) 左键点击 differential pair 后弹出的对话对话筐如下图所示图 10 创建差分对示意图图 11 差分网络选择图d) 在左上脚的下拉菜单中选择
14、 net,然后在网络选择筐中选择要创建差分对的两个网络,例如 USB1P+,USB1P 。e) 点击键, USB1P+, USB1P两个网络添加到左边的 【selection】筐中,并在 diff pair 的空白栏中自动添加差分对的名称,用户也可以修改差分对的名字。如本例中产生 USB1P 的差分对,如下图所示:f) 点击【create】按扭进行创建。g) 另外,可以点击【delete】按钮对差分对进行删除,点击【modify】进行修改。h) 如果继续创建差分对,先清空 selection 里的内容,再按照步骤d)f)创建差分对 USB2P,USB3P ;i) 点击左上脚的下拉菜单,选择 diff pair 可以浏览所有创建的差分对,如下图 13 所示。图 12 创建差分对图 13 浏览差分对示意图