连通性和多表设计

Old Content - visit altium.com/documentation

在 多图表设计中讨论了结构和连通性等相关问题,随后介绍了各种浏览工具,您可以利用这些工具验证网络连通性。

工 程师着手多图表设计的原因很多,其中最主要的就是项目大小;一些项目因为太大或太复杂而无法在一张表上完整显示。即使设计不是特别复杂,将项目整合在多张 图表上也极具优势。例如,设计包括各种模块化部件,将这些模块变成独立的文档可以让多个工程师同时操作同一个项目。另一个原因就是使用该方法可以启用小型 化打印,例如激光打印机。

每 个多表项目都需要做两个决定——图表的结构关系和在表格电路之间实现电气连接的方法。根据项目的大小和类型及个人喜好,用户可以做出不同的选择。

定义图表结构

当 项目文件将多个源文档链接在一个项目中时,文件自身包含的信息会定义文档之间以及网络连通的关系。多表设计项目排列成了呈层次结构的多个逻辑块,逻辑块可 以是原理图表,也可以是HDL文件(VHDL或Verilog)。结构的顶部是一张主原理图表,更普遍的说法是项目的顶层图表。
图 表结构本身是由名为图表符的符号构成的。设计中用到的所有源文档都位于顶层图表,用一个图表符表示。图表符的文件名属性引用了该图形表示的原理图子图表 (或HDL文件)。反过来,原理图子图表也可以包含更细化的图表符,表示更低层次的原理图表或HDL。这样一来,您就可以根据需要定义源文档的结构层次, 可以很简单,也可以很复杂。

多 表项目在编译过程中,会实现设计的逻辑关系并创建结构框架。这是一个树形结构,由原理图顶层图表开始,分支到同一层或另一层的所有其他原理图子图表。
图1 是两个已编译设计层次的示例。左侧是已编译PCB设计项目(*.PrjPcb)的结构层次。右侧是已编译FPGA设计项目(*.PrjFpg)的结构层 次。

图1 显示出源文档之间的层次关系的已编译多表设计项目。

建立层次结构

原 理图绘制环境提供了一系列功能,利用这些功能,您可以快速有效地建立多文档和层次结构。具体要选择使用的功能取决于个人的设计方法——自顶向下或自底向 上。

自顶向下的设计

可 以使用下列命令建立自顶向下的设计层次。

  • Create sheet from symbol——利用该命令在指定图表符下创建一张图表,其中添加了用于连接导线的匹配端口。
  • Create VHDL file from symbol——利用该命令创建一个Shell VHDL文件,其中声明了包含与指定图表入口匹配的端口定义的实体。
  • Create Verilog file from symbol——利用该命令创建一个Verilog文件,其中声明了包含与指定图表入口匹配的端口定义的模块。
  • Push part to sheet——利用该命令将一个放置好的部件“推送”至新的原理图分表,用表示新分表的图表符取代父图表中原有的部件。将在分表中添加匹配端口,并将端口 连接到分表部件。右击元器件访问该命令。

自底向上的设计

您 可以使用下列命令用自底向上的方式建立设计层次。

  • Design » Create symbol from sheet or HDL——利用该命令从指定的原理图表、VHDL文件或Verilog文件创建 成一个图表符。在启动该命令之前,需要将包含新建图表符的图表变成活动文档。
  • Convert part to sheet symbol——利 用该命令将选中部件转换为图表符。图表符的Designator字段初始值为部件的标号,Filename字段初始值为部件的备注文字。更改文件名指向目 标子图表;根据该子图表定义的端口更改图标入口。右击元器件访问该命令。

混合型原理图/HDL文档层次

在 创建设计层次时,您可以很容易地在总原理图表上使用图表符引用下层的原理图子图表。这可以扩展到通过混合原理图和HDL代码进行原理图设计。VHDL或 Verilog子文档的饮用方式与原理图子图表相同,都是在图表符中指定子文档的文件名。

在 引用VHDL子文档时,是从图表符连接到VHDL文件中的实体定义。要表示名称不同于VHDL文件名的实体,则图表符需要包括VHDLEntity参数, 参数值即为VHDL文件中定义的实体名称。

在 引用Verilog子文档时,过程是类似的,只不过是从图表符连接到Verilog文件中的模块声明。要引用名称不同于Verilog文件名的模块,图表 符需要包括VerilogModule参数,其参数值即为Verilog文件中声明的模块名称。

图2 是混合层次示例,其中使用了同一张图表符来引用一个设计实例的原理图分表和另一个设计实例的VHDL子文档实体。在这两种情况下,子文档执行的是相同的电 路(BCD计数器)。

图2 通过放置图表符创建文档层次,表示下层的文档。

维护层次

当 您定义了多表设计的层次结构后,需要对其进行维护。Altium Designer提供了多种功能,帮助您进行维护。

同步端口和图表入口

如 果图表符的所有图表入口都与子表上相应的端口匹配——包括名称和输入输出类型,则图表符与其引用的的子表是同步的。通过端口与图表入口同步对话框(图3) 维护图表符与匹配分表之间的链接(从Design菜单命令中选择Synchronize Sheet Entries and Ports from the Design)。

图3 确保图表入口和端口同步。

图表符子表重命名

在 设计过程中,您可能需要更改原理图子表的名称,例如,改动子图表电路之后,需要重命名以便更适当地描述图表功能。您无需将图表重命名,然后再手动更改每个 引用该子图表的图表符,只需使用提供的Rename Child Sheet命令(可以通过Design菜单访问)。利用该命令,您可以:

  • 重 命名子表,并更新当前设计项目中的所有相应图表符。
  • 重 命名子表,并更新当前设计工作空间(*.DsnWrk)中的所有相应图表符。
  • 创 建一个分表的重命名复件,并更新当前图表符指向该复件。

支持多通道设计

设 计环境中包含了对电路重复项目的支持功能,以及单一图表符=一张子图表的功能,您还可以创建多次引用同一张子图表的结构。这就是所谓的多通道设计。

有 两种方法可以实现多通道设计:多个图表符引用同一张子图表,或在单个图表符中使用Repeat命令。在编译设计时,任何重复的部分(或通道)都会按照需要 的数量进行实例化。多通道设计的优势在于您只需维护源通道的单个文件,即使设计已经进行到FPGA或PCB阶段。

Repeat 命令用于图表符的Designator字段,格式如下:

Repeat(SheetSymbolDesignator, FirstInstance, LastInstance),其 中SheetSymbolDesignator是图表符的名称,FirstInstance和LastInstance共同定义需要实例化的通道数量。需 要注意,FirstInstance参数必须大于等于1。图4说明了如何使用Repeat命令实例化一个音频混频器的8个输入通道。

图4 使用Repeat命令进行多通道实例化。

创 建项目后,编译器在建立内部编译模型时按要求的数量对通道进行实例化,使用选定的标注方案对每个通道的元器件进行唯一识别。通道子图表是无法复制的,一经 编译,主设计窗口中子表文档的底部就会出现独立的选项卡,分别表示该图表的各个通道,图5为示例。

图5 在单个子原理图表上实例化通道的示例。

定义网络连通性

在 同一个项目中的多张图表之间传递信号的唯一方法就是使用网络标识符。这些标识符对象可以建立逻辑连接而非物理连接(电线)。当然,也可以局限于单张图表中 使用网络标识符,如下所示。

这 些图片分别展示了如何用网络标签、端口和电源端口代替电线。这些就是所谓的网络标识符,将在下一章节详细介绍。

下 列图片为常见错误:认为如果网络标识符名称匹配,则不同类型的网络标识符(如网络标签和端口)也可以进行逻辑连接。实际上,事实恰好相反:不同类型的网络 标识符名称可能有区别,但仍可以连接在一起,形成一个单独的网络。

这 些图表都是在单张图表内用网络标识符代替物理链接。您还可以利用网络标识符在多表项目中的图表之间自由切换网络。如何实现这一点要根据设计中使用的网络标 识符以及网络标识符范围设置确定。

网络标识符

最 基础的网络标识符是网络标签。网络标签的主要功能是对网络进行命名,同时降低同一张图表内的导线连接的数量。有时也会需要在多个图表之间使用网络标签建立 连接,但通常情况下只用于单张图表内部。

端 口与网络标签类似,总是连接到位于同一个文档的匹配端口。与网络标签不同的是,端口是专门为表内连接设计的。可以进行水平连接或垂直连接。水平连接应用最 广泛,因为水平连接不用考虑多表结构,将项目中所有名称相同的端口连接到一起。层次式连接则更容易控制,因为层次式连接只将子表和父表之间的信号进行垂直 连接。垂直连接不是通过匹配端口实现的,而是在子表端口和父表的图表入口之间建立连接,图表入口必须放在表示该子表的图表符内。

利 用表外连接,您可以在选定的图表组之间建立水平连接。对这些图表进行分组的方式是将多个图表名称放在一个图表符的文件名字段中,用分号隔开。接下来,为需 要在分组图表之间传递的信号放置表外连接器。表外连接器可以连接到与之匹配的表外连接器,但只能局限于父图表符上的同组图表之间。如果图表符只引用了一个 子图表,那么表外连接器就不会连接到项目中其他匹配的连接器。

电 源端口(也称电源对象)完全不考虑项目结构,而是与已链接图表中的所有匹配的电源端口进行连接。也可以用隐藏引脚实现此类连接,只需在Connect To字段(位于引脚属性对话框里)中输入一个值。如果是从Protel 99 SE或更早版本导入的设计,所有的隐藏引脚都会在该字段自动生成一个网络名。

表1. 网络标识符一览表

网络标签

总是与同一张图表中名称相同的网络标签连接。如果网络标识符范围设置为Global,也可用于图表间的水平连接。

端口

如果与父表图表符上的图表入口匹配,则进行垂直连接,无论使用的是层次或自动网络标识符范围。使用“扁平”或“全局”范围 时,与所有匹配端口进行水平连接。

图表入口

总是垂直向下与图表符引用的子图表中的端口进行连接。

表外连接器

与扁平设计中匹配的表外连接器进行水平连接,否则将仅限于被单个图表符中引用的图表群组。注:端口交叉引用无法应用于表外 连接器,因此在可能的情况下要尽量使用端口。

电源端口

与整个项目中的所有匹配电源端口进行全局连接。

 

隐藏引脚

对项目中所有匹配Connect To值的隐藏引脚进行全局连接。

对网络标识符设置低电平有效标识

如 果需要对网络标签、图表入口或端口设置低电平有效标识(在名称上方放置一个横条),有两种方式可以实现:

  • 在 网络名的每个字符后加上一个反向斜线字符(如,E\N\A\B\L\E)。
  • 勾 选Preferences对话框中Schematic - Graphical Editing页面上的Single '\' Negation选项,然后在网络名的开头加一个反向斜线字符(如,\ENABLE)。

设置网络标识符范围

在 编译多表项目时所创建的连通性视网络标识符范围而定,该范围指定了网络标识符如何连接:Flat - 端口在所有图表之间进行全局连接;Global - 端口和网络标签在所有图表之间进行全局连接;Hierarchical - 只在端口和匹配图表入口之间创建垂直连接(图表符与分表)。

您 可以在项目选项对话框(Project » Project Options)的选项标签页中设置网络标识符范围来定义连通性。 除 了上述3个选项(Flat, Global, Hierarchical),还有一个Automatic选项。一般来说,最好将范 围设置为Automatic,Altium Designer会根据图表结构以及端口和图表入口的有无从3个选项中选择最合适的选项。

有 两个始终被视为全局连接的特殊网络标识符对象:电源端口和隐藏引脚。表外连接器的连接与网络标识范围无关。

扁平和层次连通性

在 文档结构方面,所有多表设计项目都有层次地组织在一起,即使层次仅有两层(即,顶层图表包括所有图表符,图表符表示下一级分表)。在连通性方面,设计可以 采用“扁平”结构或“层次”结构。两者之间的根本区别在于,层次设计会根据您创建的图表结构在图表之间传送信号,而扁平设计则不会考虑图表的结构安排。

需 要注意的是在设计FPGA项目时,采用的连接模型必须是层次型的。

无顶层图表的扁平设计

如 果您的设计不是层次型的——即,子原理图表都位于同一层,没有图表符表示细分的图表——则将这种设计称为扁平设计。在这种情况下,您无需创建包含表示下级 图表的图表符的顶层图表。如果没有项目文件,则需要顶层图表,没有项目文件,软件不得不依赖于顶层图表上的图表符来确定项目中有哪些图表。如果要对没有顶 层图表的项目进行测试,可以右击项目面板中的文件名,在右键菜单中选择Remove from Project命令。

已 经包含了顶层图表的扁平设计项目可以正确编译,但如果您愿意,也可以用Altium Designer创建无顶层图表项目。

连通性示例

以 下四个图示将显示检测到或选定的网络范围将对相同的表间结构中的网络标签和端口的连通性产生怎样的影响。 第五个图示显示表外连接器是如何工作的。

示例1 – 层次结构

由 于父图表上包含图表符及图表入口,所以将自动按层次范围对该原理图项目进行检测。 各分表上的网络标签C1和C2不会连接到其它分表上相同名称的网络标签,但在各自的分表内保持连通。该示例中的端口具有不同的名字,但即使它们有相同的名 字,也不能在分表间互相进行横向连接。 与此相反,端口只能进行垂直跨表连接,向上可以连接至上层父图表。 若想正常工作,分表上的端口必须在对应的父图表符内找到相匹配的图表入口,然后在父图表上通过图表入口连接到引脚或其它网络标识符上。

在 此示例中,父图表上的图表入口互相连接(注意图表入口的名字并不相同,属于物理连接,而非逻辑连接)。 在更高复杂的结构设计中,这些信号可以连接至端口,并与更上层父图表中图表符的图表入口相匹配。

示例2 – 全局端口

由 于该设计中端口的存在及图表入口的缺失,网络标识符范围自动转变为全局端口范围。 这实质上是在对项目进行扁平化处理,所有项目中的具有相同名称的端口将进行全局连接。 网络标签无法实现此功能,只会在各自的分表中实现连通。

因 为该设计项目是扁平形式的,所以顶层图表可以从项目中移除,并且设计仍会正确编译。谨记,Altium Designer需要使用项目文件来确定哪些图表是属于设计项目的。

示例3 – 全局网络标签

该 项目中完全没有图表入口和端口。这是多图表设计中网络标签自动进行全局连接的唯一案例。不管结构如何,网络标签将与项目中所有相匹配的网络标签连接。

再 次重申,因为该设计项目是扁平形式的,所以顶层图表可以从项目中移除,并且设计仍会正确编译。

示例4 – 全局网络标签和端口

该 网络范围无法自动检测,Altium Designer保留了该设置以便与之前的软件版本兼容。其中,网络标签和端口会以横向方式与相匹配的网络标识符进行全局连接。实现这种连通性的唯一方法 是在项目选项对话框的Options标签页中,并将网络标识符范围改为Global (Netlabels and ports global)。

因 为该项目是扁平的,所以顶层图表可以从项目中移除,并且设计仍会正确编译(项目文件本身包含源文档信息)。

示例5 – 表外连接器

在 该示例中,顶层图表仅使用了两个图表符来引用四个分表。这通过在图表符Filename字段中引用多个原理图文件实现,原理图文件名由分号隔开。表外连接 器将在位于单个图表符内的图表群组中建立扁平连接,即使项目内的其它图表是垂直连通。

图 表分组不会影响任何网络标识符,除了表外连接器。图表分组将在设计内另辟空间进行扁平连接,但这只能在相匹配的表外连接器间创建。须注意维持组内连接的方 法。 不能连接至其它组内,即使其包含带有与之相匹配的表外连接器。

许多工程师可能从没使用过表外连接器。对表外连接器进行介绍主要是作为从其它设计软件包无缝导入设计的一种方式。

使用总线

许 多原理图包含象征分组信号的总线。总线通常会比电线绘制得更粗以便识别。从图形外观而言总线是非常有用的工具,但总线包含的信号也可以按照先前所述连通性 的一般规则在图表之间进行传递。

图7 设计中的图形总线和逻辑总线示例

以 上图6中的电路示例包含4条总线:两条图形总线和两条逻辑总线。使用总线语法,将逻辑总线连接至网络标识符(网络标签或端口)上。要进一步了解总线语法, 可以参考下例中的逻辑总线:

这 八个节点符合纳入总线的条件,因为它们的网络标签有相同的前缀,并使用数字后缀。逻辑总线由网络标签按照语法D[0..7]进行创建,其中D是共享前缀, 数字0和7代表后缀中最小和最大数字。任何非负数都可在后缀中使用,只有当同一条总线上存在其它网络标识符时,顺序才需要特别重视。例如,我们可以将网络 标签D[0..7]变为D[7..0],从而改变在该设计顶层图表上与之相匹配的连接端口和图表入口的顺序。

建 议网络标签前缀不要以数字结束,例如Headphone[1..8]网络标签,Headphone作为前缀只有字母字符。Headphone1[1.. 8]网络标签在前缀末带有数字1,此前缀可扩展至Headphone11..Headphone18,从而造成设计中网络命名冲突。

注 意,逻辑总线由网络标签创建,而非总线基元。总线的电气功能是连接网络标识符。记住,不同类型的网络标识符不能自动互相连接,即使它们共享同一个名字。这 也适用于带有总线语法的网络标识符;网络标签D[0..7]不会自动连接至带有同一个名字的端口上,需要使用总线将其连接在一起。

其 余延伸到单个网络的总线部分主要用于图形显示。总线入口不具有连通性,用于在总线周围留出间隙用于连接导线(因为在同一点接触总线的两根导线将会短路)。

该 示例原理图中的两条总线完全使用图形表示,没有使用任何网络标识符。此时,在匹配的网络标签间将进行实际的连接。删除此类总线不会对图表的连通性造成影响 (虽然会使原理图更难理解)。

事 实上,该示例中的网络不满足逻辑总线连通性的条件,因为其名字不符合总线语法的要求。记住,单条总线中的所有网络必须分别标示同一个前缀,并通过单独的数 字后缀互相区分。

多表设计浏览

使 用上/下层次功能,点击按 钮,在设计层次中向上或向下浏览。如果点击图表入口,你将看到分表上相匹配的端口;如果点击图表符,将看到整个分表。要通过层次结构向上浏览,应点击端 口,其父图表上与之匹配的图表入口将会出现。

通 过按Ctrl键并双击端口、图表入口或图表符,还可直接浏览层次结构。

原理图和PCB间的交叉探查

因 为从原理图绘制到PCB设计是反复迭代的过程,导航器面板也允许在原理图和PCB文件间进行交叉探测。打开PCB文件,在原理图源文件上浏览对象时按住 Alt键并点击 - 该对象会在原理图和PCB中同时被高亮。

导 航面板的交叉探查功能与工具菜单中的交叉探测命令有些微不同。后者在原理图和PCB环境下都是可用的,而导航器面板只用于项目的原理图部分。交叉探查工具 不会将当前的高亮设置应用到正在探查的文件,只有目标文件才会对此响应。最后,交叉探查工具可以跳跃探查,按住Ctrl键点击目标对象即可。这不同于导航 器面板工具,导航面板探查会高亮PCB对象,但不会将其变为活动文件。

连通性知识

You are reporting an issue with the following selected text and/or image within the active document: