cadence SPB17.4 - orcad - 层次原理图
前言
层次原理图的好处:
- 不用画一张大图(所有的电路都挤到一起,看不清,要来回局部缩放; 如果要将工程的一部分子电路给第三方做参考,也很方便,不用做脱敏处理), 在一张子图中将局部电路(或在顶层原理图中将子图模块之间的接口关系)看的很清楚,从顶层原理图到子图(或从子图回到顶层原理图)很方便。
- 层次原理图的子图间用接口连接,可以理清顶层总图和子图的电气接口连接关系。
- 如果需要迭代,当接口不变时,只需要改对应的子原理图就行。不用担心影响到其他子电路(每张子图的网络标号都是不同的(e.g. 子图A的GND为GND_A, 子图B的GND为GND_B, 2个子图的GND_X实际通过接口显示到顶层原理图, 在顶层电路图中, 用电气连线连接,实际上是一个网络)), 不用担心和其他人协同时,会互相引入错误。
- 如果子图接口规划的好,如果想将子图做成一个板子,也很方便. e.g. 将MCU子电路做成一个MCU核心板.
当多张子图中存在相同的网络标号名称时, DRC会报错:)
笔记
花了9周(大约 9 x 7 天, 遇到问题通过学习和实验来解决),从AD完全转到了cadence。
刚开始的时候, 画了层次原理图, 写了临时笔记, 但是不确认是否正确?
现在, 整个流程(从画原理图到出制板厂文件)都走通了,能确认层次原理图画的正确。
当时用了一周,画了一个板子的原理图,画出来挺美观的,看图也很方便。但是用SPB17.4的DRC检查,报错太多了。正在一种报错一种报错的解决。感觉是要记录一下才行。
将画层次原理图中的细节都记录一下,都是零散的知识点。
DRC检查设置
画层次原理图之前, 先将DRC检查设置好.这是第一步,否则好多错误发现不了.后面都白用功了
画好层次原理图之后,自己觉得挺美的,用来浏览电路模块也很方便。
但是原理图细节不一定对。
这时要靠orcad SPB17.4自带的原理图DRC检查来判断是否画的对。
经过原理图DRC检查, DRC全部通过后, 后续操作(e.g. 导出网表, PCB导入网表,放置元件)不会有任何错误.
这就突显做原理图DRC的重要作用.
DRC选项能检查的选项,钩要都打上。只有自己能确认的选项才关掉. (e.g. 引起不必要的原理图DRC检查错误)
下面是我已经通过全部DRC检查的测试工程的SCH DRC选项. 基本都勾上了,去掉的那些选项是试验过的.
最终要达到的目的:原理图完全正确, DRC完全通过(0错误,0警告).
Options
Rules Setup
Report Setup
ERC Matrix
这里用的选项就是默认的, 如果这里被改过,按Restore Defaults
按钮进行恢复.
Exception Setup
异常设置不用添加
工程设置好DRC选项后, 以后每次手工检查,就直接点击Run,开始检查就好了。
画层次原理图的基本步骤
绘制方法
自顶向下画.
如果想将现存的普通平面型原理图转成层次原理图, 遵循自顶向下的方法, 改造起来很快.
元素
层次原理图比普通原理图多出来5个元素如下, 其他画法(从图纸接口连出电气连线后)和普通原理图相同.
子图和顶层图纸中都能用的元素
Bus : 总线
Bus Entry : 总线入口
子图符号块中的元素:
Hierarchical Block : 子图符号块
Hierarchical Pin : 子图接口引脚
子图中的元素:
Hierarchical Port : 子图符号端口
例子
放置子图符号块
先在顶层图纸上放置字符符号块
指定子图名称,按OK按钮.
按下鼠标左键, 拖动一个矩形出来,松开鼠标左键, 子图符号块就放好了.
双击子图符号块, 会让我们给定子图名称,然后按OK按钮.
此时进入了子图
从子图回到顶层图纸
在子图中右击菜单, 选择Ascend Hierarchy
回顶层图纸.
回到了顶层图纸
现在子图符号和子图都建立好了,以后再从主图到子图,只需要双击主图中的子图符号块就直接进入了子图.
在子图符号块中增加子图Pin
是子图pin, 不是子图端口. 子图pin是放在子图符号块中的. 子图端口是放在子图中的.
选中子图符号块,才能使Place菜单中的子图pin条目变为可操作状态.
在弹出框中指定子图pin名称, 选择类型为Passive, 点击确定.
在子图符号中选择一个合适的位置左击
放好Port pin后,右击完成操作.
port pin 放完后,就可以从port pin上引出电气连线, 标上网络符号, 和顶层图纸上的其他网络相连.
从顶层图纸更新子图符号块的port pin 到子图
此时,子图中还没有我们新增的这个port pin对应的port, 现在可以从顶层图纸更新这个port pin 到子图,成为子图上的一个port.
向下更新完port pin 后, 自动进入了子图.
可以看到子图的左上角出现了一个对应的port.
注意: 如果手工分别放置子图pin, 子图port(没使用orcad提供的更新功能), 必须使子图pin和子图port是一种类型, 且和这个port pin 相连的其他同网络port的类型也要是同一种类型, 防止DRC报错.
在子图中手工增加子图port
上面我们用的自顶向下方法增加的子图pin, 更新后在子图中同步生成了子图port.
现在我们试试,在子图中手工增加子图port, 反向更新到顶层图纸中, 成为子图符号块的port pin.
我们在子图中放置和同步更新port一样类型的prot. 选择类型, 名称,点击OK.
选择图纸左上角的合适位置左击, 放好了port. 然后子图空白处右击,选择结束操作.
结束操作之后的port样子.
这时,我们想更新子图中手工添加的这个子图port到顶层图纸中的子图符号块中.
子图中是不能更新port的,需要回到顶层图纸.
左击选中顶层图纸中的子图符号块,右击菜单,选择从下向上同步.
可以看到,我们选中的子图符号,已经将子图中的port更新为了子图符号块的pin.
此时,在顶层图纸中,就可以从子图port拉出电气连线,标上网络标号使用了.
子图中的子图port, 现在也可以连出电气连线,标上网络,正常使用了.
需要注意:子图中的子图port名称和网络可以相同.
但是顶层图纸中的子图pin的网络不能和子图pin名称相同,否则DRC报错.
剩下的操作,就和普通图纸画图一样了, 都是在一张图纸(子图或顶层图纸)中操作, 图纸边界都是port或port pin
画完后, 要进行完整DRC检查. 如果第一次画层次原理图,会报好多错误.需要自己根据官方文档和自己的猜测实验来逐一解决, 直到DRC检查完全通过(0错误,0警告).
碎碎念
放大图纸
CTRL + 鼠标中键向上滚动,可以放大图纸。
为啥要先放大呢? 如果DRC检查结果有错误,双击出错条目后,会跳到报错点。如果图纸没放大,即使跳到报错点,也看不清是哪里报错。
跳转到DRC报错点
双击下面的报错条目, 会直接跳到报错点.
总线(bus)的使用
- 总线(bus)通常只能适合网络标号前缀一致,标号后缀增量加1的情况。
e.g. P0.0, P0.1, P0.2, … , P0.5, P0.6, P0.7 可以使用总线连接 - 如果网络标号不连续, 是不能作为bus连接的.
- 总线上必须放置bus网络标号(至少1个, 也可以放置多个(e.g. 在bus连接的2坨网络连接处都放bus网络标号))
e.g. 在总线连接的2断附近, 都标注上bus的网络标号为 P0[0…7]. 其实只要标注一个就行. 如果bus连线比较长,可以标注相同的bus标号多个. - bus网络标号的格式
P0.[0…7] 或 P0[0:7]
但是在一条总线上, 格式只能是同一种, 否则报错. - 连续的网络标号是指bus的一边是连续就行, e.g. 总的一处是P3.[0:3], 其他处是 P3.2, P3.3, 还有一处是P3.1, P3.0
如下所示:
- Bus Entry是没法设置什么信息的,只是用来连接wire和bus.
wire是没法直接连入bus的, 必须借助 Bus Entry。 - Bus Entry连接的wire上,必须放置网络标号。
- 如果使用了子图和子图端口(Hierarchical Port, Hierarchical Pin), 必须保证
Hierarchical Port 名称是全局(所有子图和顶层图)唯一的.
Hierarchical Port 和 Hierarchical Pin 的名称必须是一样的.
但是Hierarchical Pin连出的电气连线上的网络名称,必须是和Hierarchical Pin名称不一样.
e.g. Hierarchical Pin 的名称是 GND_SUB_PAGE1, 那么顶层图纸上从 GND_SUB_PAGE1 pin引出的网络必须是其他名称 e.g. GND.
否则DRC检查报错。
Hierarchical Port 只是代表子图符号和总图的连接点(接口),名字是啥都没事(只要保证和其他子图端口不重名),因为起决定作用的是网络标号。只有网络标号才代表真正的电气连接关系
Hierarchical Port 必须是唯一的名称. 否则DRC报错.
Hierarchical Port 在子图符号块(Hierarchical Block)中叫做 Hierarchical Pin
Hierarchical Port 在具体子图中叫Hierarchical Port.
Hierarchical Port 和 Hierarchical Pin 代表的是同一样东西,只是位置不一样。
PCB上的对应网络名称
等画好PCB, PCB和原理图上的网络名称对应关系:
- 如果是未命名的网络, PCB上用的是原理图产生网表时,自动产生的网络名称.
- 如果是子图上未经过接口的显势命名的网络名称, 和PCB上的网络名称相同.
- 如果是子图上经过接口的网络名称, 最终的网络名称是由顶层图纸的接口之间连线上的手工命令的网络名称决定.
就是说, 顶层原理图的网络标号优先于子图的网络标号. e.g. 子图A的GND_A经过接口到顶层图纸, 子图B的GND_B经过接口到顶层图纸, 在顶层接口用电气线连接后, 标注网络为GND. 那么PCB上显示的网络名称为GND.
高亮bus或单个网络名称的网络连接
查看或排错时, 有高亮网络或bus的需求.
选中电气连线(bus或wire), 右击选择Select Entire Net
高亮后, 整个网络就被点亮了.
离图连接器
层次原理图分2种:
- 一种是上面这种自顶向下方式的层次原理图, 从顶层原理图开始看图,双击子图符号,会跳到子图.
从子图也可以方便的从右键菜单上回到顶层图纸. - 还有一种方式, 是不带子图符号块的层次原理图.
在同一个原理图文件夹节点下,右击菜单New Page
建立一系列平行的图纸, 这些图纸没有主次之分.
每张图纸之间通过离图连接器作为接口连接.
这种没有上下级关系的层次原理图, 失去了软件辅助进行子图/主图互相切换的功能. 我没有采用这种层次原理图.
但是看ST这样的大厂给的demo板子原理图, 大部分还是采用了离图连接器这种层次原理图.
感觉使用离图连接器的层次原理图没有使用子图符号块的原理图方便.
END
因为不确认层次原理图画的是否正确, 等到全部流程(画原理图, PCB, 出制板厂文件)都走通了, 才做的层次原理图的正式总结.
第一次画层次原理图, 全部画完了, 才做的DRC, 好多错误, 排查了好久.
中间出的那些DRC错误,除了封装没填之外, 都不记得是啥了, 只记得自己用了很久, 才将那些DRC都消掉了.
结论 : 如果自己再用cadence SPB17.4 的 orcad capture and cis 画层次原理图, 是没有任何问题的.
补充 - 2022_0622_0910
和CSDN的同学讨论问题, 他的建议如下
感觉用offpage链接还是直观点吧,毕竟现在都是能用网络名就用网络名代替
我倾向采用port, 理由如下:
- 大厂出的图纸, 一般是使用离图连接器的.
但是使用离图连接器的层次原理图是平面的, 子图之间没有主次关系,失去了图纸之间的关系辅助(主图切到子图, 子图回到主图). - 如果是打印出来给第三方的图, 2种原理图都可以, 感觉差别不大.
- 如果是设计文件.dsn给自己或第三方用, 用port连接的有主次关系的层次原理图还是方便一些.
总结: 是否使用层次原理图? 是否使用平面型的层次原理图? 或使用port作为接口的层次原理图? 都可以, 看个人习惯. 不是多大的事, 不影响画原理图图/出网表/做板子.
补充 - 2023_0215_0955
有位同学留言, 学到东西了, 保存一下.
好运陈陈@CSDN
小伙子写的不错,把层次原理图的绘制写的很清楚,一直用平铺式原理图,看了你写的内容很容易就理解两者的差别了。 平铺式原理图主要适用于小项目,原理图页码不是特别多的产品上。层次原理图对于大型项目,从硬件架构到硬件详细设计这个流程化管理时才能体现出优势,否则层次原理图是要多出Port 到Net或off page重复工作的任务量。
END