在原理图文件中使用设计指令
Contents
为了获得预期的结果,Altium Designer使用的指令都是针对软件特定零件的指令。设计指令(给出其完整名称)是仅放置在原理图图纸限制下的对象。各种指令的用途与以下三个领域相 关:
- 与源原理图文件编译相关的指令。
- 用于将原理图图纸中定义的信息传递到PCB的指令。
- 在FPGA源原理图节点的实时分析中使用的指令。
接下来的章节将就这三个领域及提供的指令做进一步的介绍。
如欲了解更多关于设计指令的信息,包括放置与编辑,请参阅原 理图编辑器、面板与对象引用中的内容。
编译相关的指令
罗马不是一天建成的。这同样适用于设计项目的绘制过程。设计在这一阶段进行绘制的可能性是很大的,它带有明确的用于电源电路、I/O接 口等的原理图图纸。
绘制完成后系统一定会对电气及工程图错误进行全面的检查(当所有电路已指定并用导线连接后)。在最终检查之前,由于设计会随时间变化,故在本阶段对该设计 的电气完整性进行确认是十分普遍的,以确保电路元件都已按照用户的需要放置完成并使用导线正确连接。
在 绘制过程的间歇阶段中单个原理图文件(或整个项目)的编译往往会因为电路尚未绘制完成或电路分块间的导线接口不完整而产生一些错误信息。这时这些信息没有 使用价值(因为用户已经知道图纸符号B中通过E的图纸项A下没有对应的端口,因此在周四早上的会议及另一个已经到截止日期的项目Gerbers最终检查之 前都无需定义该派生图纸。
如果能够抑制这种视觉上的杂讯(这些信息的“噪声”)、仅留下与那些实际存在的电路元件相关的信息的话,不是很好吗?Altium Designer对这个问题给出了肯定的回答,并提供了使用其No ERC指令及编译屏蔽指令的解决方案。
No ERC指令
主要文章:原理图的No ERC 指令
可将No ERC指令放置在电路节点上,以抑制编译原理图时可能生成的任何报告警告及错误。在对其余电路进行检查时,可使用该指令来专门避免对电路中用户知晓将生成 错误的特定零件的错误检查(比如未连接的输入引脚、端口和图纸项)。
用 户可能会看到与编译器相关的“信号X未载入”的消息。通常情况下,这是由于电路中存在未连接到其他零件的输出引脚,或是该输出引脚完全未使用。可将No ERC指令放置在该引脚上以抑制该消息。如果用户完全不使用该引脚,可任由No ERC指令放置在其中,或在将该引脚用导线连接到其目标时将指令删除。
多次收到某个网络无驱动源的警告之后才发现该消息完全可以忽略?也许输入引脚是连接到连接器的,而该连接器的引脚通常是无源的且驱动信号仅在外部电缆插入 时出现?也许该网络的信号源是上拉电阻或开关,其一般也是无源的?下面的策略之一也许可以用来解决该种警告:
- 用 户可以更改网络上某个源引脚的电气特性。这是一种修复而非抑制,但由于它包括操作对引脚默认模式的修改,可能会在之后产生麻烦。例如,需要考虑到设计中导 线的变更,其中引脚方向的图形显示未启用。这种更改可能导致某个输出连接到某个无源器件的引脚上。如果该器件的引脚已设置为电气输出(以减少之前的驱动源 警告),则用户将生成一个连接上的冲突。
- 用户可以将相关冲突检查的报告模式(在项目对话框项的错误报告选项卡中定义(项目»项目选项(Project » Project Options))) 设置为无报告。这将禁用这些特定冲突的检查,但用户也将不能在设计的其他地方获取任何真正的错误消息。
- 第三个(可以证明是最好的)选项为将No ERC指令放置在网络中。与抑制用户知晓并不是问题的警告信息杂讯不同的是,用户将无法更改该设计。
如欲了解更多关于ERC放置与编辑的信息,请参阅No ERC。
编译屏蔽指令
如 欲对少量未连接的引脚、端口、图纸项或仅包括无源器件引脚的网络进行抑制,No ERC是一个很好的方式。也许这些指令用在FPGA器件未使用的引脚或连接器引脚上最多。如果用户希望快速“覆盖”设计电路中更大的区域(包括元器件、网 络标识符及导线互连),则需要考虑使用编译屏蔽指令。
正如其名称所指示的,该指令仅用于指示编译器忽略所有完全落在已定义的屏蔽范围中的对象。请完全按照放置节点或矩形对象的方式放置屏蔽。
请参考图4中原理图电路的例子,其中连接到LCD1器件的导线尚未完整。如果只编译该原理图(项目»编译文件(Project » Compile Document)), 将导致大量的冲突消息(也如图中所示),其中各个冲突都是由于不完整的电路引起的。
通过将编译屏蔽指令放置在不完整的电路周围,编译器将忽略这些冲突,而原理图中其余电路(已使用导线连接完整)将被检查。需要注意的 是,真正屏蔽的对象(那些完全落在屏蔽矩形范围中的对象)将显示为灰色。
如欲了解更多关于编辑器屏蔽的信息,请参阅编译屏蔽(Compile Mask)。
PCB相关指令
作为完全集成的设计环境的一部分,Altium Designer提供了在布置电路板之前定义PCB要求的功能。这可通过将参数添加到并制定为放置在原理图图纸中的对象来实现。
对于某些确定的原理图设计对象(例如元器件、图纸符号、端口等等),这仅包括将相关的参数添加为对象属性的一部分。对于诸如导线和总线之类的网络对象,参 数无法直接添加为导线或总线的性质。相反,它需要保存信息的参数将使用专门的设计指令来指定。
以下信息可使用指令指定,它们将在设计同步时转换为基于PCB的相应的定义。
- PCB布线的限制
- 网络组
- 差分对
为什么要指定这些信息与预布线?
为什么用户要定义原理图中的设计规则、网络组与差分对呢?这个问题经常被提到(毕竟,每一个都可以在PCB中容易地指定)。通常情况 下,需要对该种信息进行预布线定义共有两种方案:
- 用户可能希望在原理图中完全定义设计要求,这样原理图将成为设计的“主要记录”。对设计做出的任何修改都将仅在原理图中执行并送 达到PCB中。
参数设置指令
之前列出的所有信息类型都是使用参数设置指令指定的。就如其名称所指示的一样,该指令仅是一个或多个参数的容器,这些参数会将原理图设 计中所需的网络对象设为目标。
默认的参数设置指令是缺乏参数的,它可被放置(放置»指令»参数设置(Place » Directives » Parameter Set)) 且相关的参数可添加到该指令中。而对于列出信息的三种类型,可使用预定义的参数设置指令(在同一子菜单中可用)。下面的章节将就使用这些基于参数的指令做 进一步的介绍。
如欲了解更多关于参数设置放置与编辑的信息,请参阅参数设 置。
PCB布线指令
在导线或总线上放置PCB布线指令以定义一个或多个指向相关网络的设计限制。
在该种指令类型中定义的参数必须为基于规则的参数。具有未定义的值的默认规则参数将在新放置的PCB布线指令中显示。可从选择设计规则类型对话框中定义规 则参数,该对话框在参数的相关属性对话框中可用。
可使用选择设计规则类型对话框来选择需要作为规则参数添加到指令的规则。双击某个规则将可访问相关的编辑PCB规则(从原理图中)对话 框,在其中用户可以定义规则的限制(如图8所示)。
参数值字段的条目将为所选的规则类型,包括制定的限制。图9展示了PCB布线指令的多个已定义的规则参数。
当设计转换为PCB时,将会基于指令中包含的信息创建相关的设计规则。子原理图将在各个生成的规则的名称中使用,以区分该规则的源。
图10展示了图9中定义的PCB布线指令的PCB规则及限制编辑器对话框中生成的规则项。
可使用添加相关参数来指定其他设计对象的设计限制信息,这些信息将被配置为规则。如欲了解更多信息,请参阅在 原理图文件中使用设计指令章节。
规则同步
好 了,所以说我可以在我的原理图中定义规则指令并将其作为相关设计规则转换到PCB中了。太棒了。但我如果想对其中某一方进行微调怎么办?不用担心,规则指 令与其相应的PCB规则之间的同步可通过使用唯一的ID来实现。在将设计参数添加到原理图中的对象时,每一个规则都会获得一个唯一的ID。相同的ID将附 给PCB中创建的对应的设计规则。有了这个唯一ID,规则的限制就可在原理图或PCB中进行编辑了,而更改将会同步。
图11展示了将PCB布线指令添加到原理图中的导线的例子。在这个例子中,将定义导线的宽度规则,而同步过程中将该更改传递到PCB设计中时,该宽度规则 将显示为额外的宽度规则。重要的是,参数的唯一ID项与PCB设计规则是相同的。
网络组指令
网络组指令可用于在原理图中创建用户自定义的网络组。当PCB从原理图源文件中创建时,网络组指令中的信息将用于创建PCB中对应的网 络组。如欲使某个网络成为网络组的成员,只需将该类型的指令附加到相关的导线或总线,并将指令的组名参数与期望的组名设置为相同的即可。
图12展示了使用网络组指令来将三种单独的电源网络(POS1_8V,POS3_3V,POS5V)添加到某个名为PowerNets的新网络组的例子。
也可通过将组名参数添加到所需的元器件,以在原理图中定义元器件组。如欲了解更多信息,请参阅在 原理图文件中使用设计指令章节。
差分对指令
可使用差分对指令来在原理图中定义差分对。构成一个对的两组网络必须使用后缀_N和_P来命名,且一个指令必须添加到这两者中。图13 展示了这两个差分对的定义。任意一个对都由这两组网络构成(一正一负)。差分对指令可以添加到四组网络中的任意一个。
那么覆盖下面的是什么?双击某个指令可以看到包含单个参数项的参数对话框,其名称为DifferentialPair且其值为真(True)。此参数正是 我们所需要的(用户不需要编辑任何对象)。唯一要做的就是放置N!
差分对的定义将在设计同步期间转换到PCB中,它可以使用PCB面板进行快速验证,并在差分对编辑器模式(如图15所示)中进行配置。
如欲了解更多关于差分对的信息,请参阅交互式布线与差分对 布线应用笔记。
间接设计指令
附加信息可在原理图中指定,当设计转换到PCB中时,它也将用于创建相应的对象。这种信息不是通过放置指示对象来定义的,而是通过将一 个或多个参数添加(并定义)到相关原理图对象来定义的。本质上,这些都是基于参数的指令。
指定附加的设计限制
附加的设计限制可在原理图中指定,它将转换为带有合适范围的PCB设计规则。例如,用户可能希望对特定元器件定义较高的限制,或是在设 计中对所有对象设定许可限制。定义了限制的所需参数将作为规则添加到该对象,它将采用与参数添加到PCB布线指令中相同的方式。
相应PCB设计规则的范围作为设计同步处理过程的结果创建,且由参数(添加为规则)分配到的对象的性质所决定。表1总结了原理图参数到PCB规则范围选项 的对应,其中包括放置PCB布线指令所定义的内容。
添加参数(作为规则)到... | 从... | 对于PCB规则范围... |
引脚 | 引 脚属性对话框的参 数选项卡 | 焊盘 |
端口 | 端 口属性对话框中的参 数选项卡 | 网络 |
导线 | 在使用放置»指令»PCB布线(Place » Directives » PCB Layout)命令将PCB布线指令(参数设置对象)放置到导线上后,得到的参数对话 框。 | 网络 |
总线 | 在使用放置»指令»PCB布线(Place » Directives » PCB Layout)命令将PCB布线指令(参数设置对象)放置到总线上后,得到的参数对话 框。 | 网络组 |
线束 | 在使用放置»指令»PCB布线(Place » Directives » PCB Layout)命令将PCB布线指令(参数设置对象)放置到线束上后,得到的参数对话 框。 | 网络组 |
覆盖 | 在使用放置»指令»PCB布线(Place » Directives » PCB Layout)命令将PCB布线指令(参数设置对象)放置到覆盖的边缘上后,得到的参 数对话框。其中包括用来创建覆盖下所有网络的网络组的组名参数,该网络组将在规则范围中使用。 | 网络类 |
元器件 | 元器件属性对 话框的参数区域 | 元器件 |
图纸符号 | 图 纸符号对话框的参 数选项卡 | 元器件组 |
图纸 | 文 档选项对话框中的参 数选项卡(设计»文档选项(Design » Document Options)) | 所有对象 |
指定元器件组
与此类似,元器件组可以在原理图中定义。只需将标准参数添加到某个元器件,其名称设置为组名且值设置为期望的组名即可。
当设计转换到PCB时,仅当项目对话框选项的组生成选项卡中,生成元器件组的选项(对用户自定义的组)已启用时,所定义的元器件组才会被创建。
FPGA相关的指令
作 为LiveDesign方法的一部分,Altium Designer提供了分析FPGA设计网络的功能,且它将在目标物理器件中运行。当设计网络直接连接到某个物理器件的引脚时,用户可以实时监控该引脚的 状态。通过使用虚拟仪器,如逻辑分析仪,用户可以获得关于设计方面的操作信息。
“达到”并交互式分析设计网络的功能提供了在生产之前确定最终开发需要的边界,从而缩短推向市场的时间,并使产品更优秀。
为了帮助这一分析方法,Altium Designer提供了探针及仪器探针指令。
探针指令
采 用物理方法将飞线(fly-lead)探针附加到芯片的引脚并分析状态已经过时了。器件(尤其是FPGA)已经处于引脚饱和的状态,即使用户可以看到引 脚,它们也过于精细,无法从外部访问。何不妨从设计中(直接从原理图图纸中)对这些引脚进行监控?使用LiveDesign及仔细放置的探针指令可实现这 一功能。
在设计中直接连接到该物理FPGA器件的引脚的任意网络(导线或总线)中放置一个探针指令。当该设计已经编入到该器件中时,该种引脚的 状态将可在原理图图纸中直接实时监控(如图16所示)。
引脚状态显示的关键是该指令的ProbeValueDisplay参数。事实上,用户可以放置一个参数设置指令来代替,只要该参数是为其定义的,所得到的 结果就是相同的。
仪器探针指令
此外,当仪器探针指令附加到直接连接到某个FPGA器件引脚的网络时,它将按照探针指令运作。同样地,JTAG浏览器面板必须处于打开的状态。
从 原理图中探测器件引脚的功能固然很好,但能进一步对设计电路进行分析并找到潜在的错误吗?没问题。只需放置一个仪器探针指令,它可用于监控设计中的任意一 点(不仅仅是FPGA器件引脚的状态)。诸如导线或总线的部分放置到某个网络对象中时,它将指示系统将相关的网络直接连接到监控仪器的输入端(例如:逻辑 分析仪),而无需将设计的层次结构明确地通过导线将网络连接到包含该仪器的图纸中。
将指令从一个简单的探针转变为重要的对点监控帮助的关键部分是 其拥有的额外InstrumentProbe参数。当该指令放置到所需的点时,该参数将被使用,以有效地“链接”到监控器件的点。只需为该探测点输入一个 可用的名称(比如需要监控的相关网络或特定信号的名称),然后为所需监控仪器的输入连接导线并将网络标签附加到该导线,该标签的名称与用户为 InstrumentProbe参数定义的名称相同(如图17所示)。
关于探测总线
当仪器探头指令附加到总线时,无论用户分配到InstrumentProbe参数的名称是怎样的,整个总线都将放置到顶层图纸中。当用 户将网络标签添加到监控仪器的输入端时,必须定义所需的总线宽度。
例 如,在较下层的图纸中有标识符Port1_Out[7..0],并已将仪器探针指令附加到总线中。该InstrumentProbe参数的值则可设置为 Port1_Out。整个总线将连接到监控器件的图纸中(例如:可配置的LAX文件)。如果要将整个总线用导线连接为该器件的输入信号,用户需要将总线放 置到所需的输入端,并添加Port1_Out[7..0]的网络标签。如果需要特定信号或是总线中的信号范围,只需在已附加的网络标签中定义所需的宽度 (例如:Port1_Out[4..2])。