Cadence OrCAD: 跨页符和电源符号命名优先级的一个小问题
遇到的问题
最近项目中,有个电源需要做负载端的反馈,类似下图的signal1和signal1N,反馈使用类似伪差分线,把电压信号和负载端的GND都连到DC-DC控制器。DC-DC对应的反馈引脚都有自己的名称,比如EAP和EAN,所以就有了下图的设计,在信号和GND各使用了一对跨页符,连接PAGE1和PAGE2。(PAGE3只是为了说明这个问题)
在检查layout的时候,突然发现PAGE1和PAGE2的GND是悬空的,没有和其他几页的GND相连。 赶紧更新了原理图改了一版,差点就只能飞线了。
排查原因,发现对于这种 电源符号+跨页符
的设计,最终网络名称是 跨页符的名称
,就导致了PAGE1/2的网络名与PAGE3不同,虽然看起来都是接在GND,如下图。
对于这种问题,一般DRC不会报错。比如上面这个3页的例子中,PAGE1/2的"GND"网络有互联,PAGE3的GND连了至少2个引脚,所以各自都没有单端连接的错误。所以使用类似设计时需要特别注意。
似乎没有特别好的办法,最后还是删除了GND连接的跨页符signal1N,同时对layout的特别要求加了额外说明。
网络名称优先级
这个问题归结为网络命名优先级的问题。对于同一个网络,最终在网表中只有一个确定的名称,而在原理图中可能有各种不同的名字:自动生成的名称、alias、off-page、port、global(电源、地)等等,因此需要有一个规则来确定这个网络最终的名称。
查了OrCAD的手册,网络名称优先级从低到高为:
- 自动生成的名称
- Alias 别名
- Power object names 电源符号
- Off-page connectors 跨页符
- Hierarchical port names 端口
- 最高:Named nets (网络名?)
如果根据以上几点,还是不能确定网络名,则另外还有几点说明:
- 最靠近顶层(root)的网络名,优先级更高。The net name closest to the “root” of the project takes precedence over those further away.
- 如果网络是总线,那么最高位的alias有最高的优先级(不是太懂,举不出例子来,感觉也用不上)。If the net is a bus, the net alias assigned to the greatest number of bus members has the highest priority.
- 同优先级下,命名是按照字母顺序。Among net names of equal precedence, priority follows an alphabetical order.
手册中还有一个比较啰嗦的例子:
As you can see, a net may change names several times as Create Netlist works. For example, the net may start with an alias of
Battery
on one page, be renamedToBattery
from an off-page connector, change again to becomeDC
as a port is encountered, and finally change toBatteryBackup
when Create Netlist finds a named net closer to the root schematic folder. Once the netlist is created, you can select any piece of the net anywhere in the design and see the net’s name as it is recorded in the netlist (BatteryBackup
), not as it appears at that particular location.
简单搭了几个例子:可以看到,按照优先级从低到高的顺序,一层层把符号加上去,网络名称每次都与当前最高优先级的符号名称一致。
关于最高优先级的net name
双击某段网络,打开net properties(或者右键-edit properties)。这边可以选择一个,我看到可选的范围是来自各个符号的名称,比如跨页符和端口。在这里把网络名称改为跨页符名称,t_offpage
。
可以看到,net name的优先级比端口port更高,修改之后,网络名为t_offpage
,而不再是t_port
后记
看了优先级规则以后,发现之前的问题可以用改net name
的方法解决,但是个人觉得还是不要这样操作,似乎还是容易错。毕竟net name不够直观,在原理图上不能直接看到。
参考资料
多翻翻Help。一般问题都能找到,就是要花点时间。(还是值得的,毕竟有时候会花更多的时间在网上搜解决方法,却找不到有用的信息)
比如这次的问题。位于: