文章目录

  • cadence SPB17.4 - orcad - Hanging Wires规则的验证实验
  • 概述
  • 笔记
  • 换个思路来验证
  • 现在用官方工程试试
  • 来讨论一下hang wire什么情况下是bug, 什么情况下不是bug
  • 总结
  • 还有一点区别
  • END

cadence SPB17.4 - orcad - Hanging Wires规则的验证实验

概述

以前做板子, 都将Hanging Wires规则关了. 做回板子来验证, 没吃过亏. 就没在意了, 以后每个工程都会将 Hanging Wires 规则关了.

今天和csdn同学讨论, 他说了一种状况, orcad(SPB16.6)中, 由于grid设置的小, e.g. 开1/10网格, 肉眼看, 感觉电气线和元件管脚连上了, 但是放大后, 实际却由于格点的原因, 没有连在一起. 所以他想开hang wire规则. 而且他开了(SPB16.6)hang wire规则后, 只要元件和线都连好了, 并没有DRC报错.

我也想开hang wire规则, 奈何DRC通不过.
今天从头建立一个小工程, 来验证一下hang wire规则的问题. 看能不能解决掉, 看看是SPB17.4的bug, 还是咱用的不对.
另外验证一下, 如果线和元件管脚没连到一起, 到底报的是什么DRC.
因为换一个SPB版本, 时间好长. 自己现在的工程就在SPB17.4上弄的, 就不换到SPB16.6上去了. 就看看SPB17.4上的hang wire规则问题.

笔记

我的CIS库都配好了, 画一个小图来测试.
先将DRC能勾的选项都勾上, 包括online DRC的选项.
画的原理图, 先将管脚和线直接连一起, 不要网络名称.

就上面这个图, DRC是通过的.
现在将元件管脚的线都拆掉, 每个元件管脚上都用电气线和网络标号代替.
DRC检查, 马上就出了 hang wire DRC.


hang wire DRC是警告, 不是错误. 但是太碍眼了.

WARNING(ORCAP-2354): Warning Detected By Custom DRC :
Wire {165.1,144.78:149.85,144.78} is hanging at Point { 149.85, 144.78 } on  PAGE=PAGE1 in SCHEMATIC=SCHEMATIC1

hang wire DRC在DRC窗口中是不显示的.在报告中是有的.

打开报告看看.

在DRC报告中搜索err, 没有.
在DRC报告中搜索warn, 有以下内容

 Checking for Hanging Wires WARNING(ORCAP-2354): Warning Detected By Custom DRC : Wire {182.88,116.84:200.66,116.84} is hanging at Point { 200.66, 116.84 } on  PAGE=PAGE1 in SCHEMATIC=SCHEMATIC1
WARNING(ORCAP-2354): Warning Detected By Custom DRC : Wire {165.1,116.84:149.85,116.84} is hanging at Point { 149.85, 116.84 } on  PAGE=PAGE1 in SCHEMATIC=SCHEMATIC1
WARNING(ORCAP-2354): Warning Detected By Custom DRC : Wire {180.34,129.54:200.66,129.54} is hanging at Point { 200.66, 129.54 } on  PAGE=PAGE1 in SCHEMATIC=SCHEMATIC1
WARNING(ORCAP-2354): Warning Detected By Custom DRC : Wire {170.18,129.54:149.85,129.54} is hanging at Point { 149.85, 129.54 } on  PAGE=PAGE1 in SCHEMATIC=SCHEMATIC1
WARNING(ORCAP-2354): Warning Detected By Custom DRC : Wire {165.1,144.78:149.85,144.78} is hanging at Point { 149.85, 144.78 } on  PAGE=PAGE1 in SCHEMATIC=SCHEMATIC1
WARNING(ORCAP-2354): Warning Detected By Custom DRC : Wire {185.42,144.78:203.2,144.78} is hanging at Point { 203.2, 144.78 } on  PAGE=PAGE1 in SCHEMATIC=SCHEMATIC1
WARNING(ORCAP-2354): Warning Detected By Custom DRC : Wire {187.96,162.56:205.73,162.56} is hanging at Point { 205.73, 162.56 } on  PAGE=PAGE1 in SCHEMATIC=SCHEMATIC1
WARNING(ORCAP-2354): Warning Detected By Custom DRC : Wire {167.64,162.56:149.85,162.56} is hanging at Point { 149.85, 162.56 } on  PAGE=PAGE1 in SCHEMATIC=SCHEMATIC1Checking for Overlapping Buses and Wires 

正好8条警告, 对应8个小绿圈.
这8个警告说的只是wire是hang的, 并没有说线上的网络标号有问题.
现在尝试, 在这个图上, 用电气线将网络连接起来.再DRC试试.

将线连上之后, 马上正常, DRC全部通过. 被SPB17.4干没电了.
这…, 感觉还是SPB17.4 S026的bug. 是不是以后有新补丁就好了呢?

现在验证一下csdn同学说的线之间看着连上了, 实际上没连上报什么错?
现在假设用一条电气线, 将可调电阻短路掉. 模拟自己手误, 没有将电气线连到元件管脚上.
运行DRC, 看到告警真的为hanging wires…
那这么看, 还真不能将hanging wires规则关掉.

我的图都是orcad的层次原理图, 用网络标号的量挺大的, 这种hanging wires DRC几百个, 让我咋人肉检查? 直接被SPB17.4搞死了.
这咋弄?

换个思路来验证

如果自己来画图来折腾, 都这么简单的图了, 不知道还能咋折腾…
换个思路.
假设就是SPB17.4没问题, 就是咱不会用.
cadence安装完, 是有例子工程的, orcad, allegro的工程都有官方的.
官方给的工程标准是很高的, 我们在官方工程上验证一下.
如果官方工程正常, 那就是咱不会用.
在官方工程上添加个元件,或者就将上面这个实验的小图搬进官方工程, 看看能不能DRC报错.
如果报错了, 那找区别就简单了, 这是工程师擅长的地方(对于每一个工程师, 找区别的能力, 都是千锤百炼, 妥妥的将区别找出来).
有一个正常的, 有一个不正常的, 2者之间区别增量很小, 找出区别来难度不大. 就按照这个思路来折腾.

安装完的SPB17.4, sch例子工程位置 : D:\Cadence\SPB_17.4\tools\capture\samples\Schematic

但是我加了自己的CIS库之后, 将配置文件改了, 直接DRC, 连封装都找不到.
还好早就预料到会有遇到麻烦的一天, 早就在SPB17.4 原版安装完, cadence SPB17.4 S026补丁安装完后, 分别做了备份.
已经做过笔记 cadence SPB(16.6 or 17.4) backup and restore
现在, 我还原SPB17.4 S026的备份. 在原版 SPB17.4 S026上打开官方sch例子工程学习.
还原备份, 主要是解压缩, 不到30分钟就搞定的事情.
刚还原完.

现在用官方工程试试

用官方工程BCD, 默认DRC有封装找不到的错误, 不管了.
去看.DRC, 看看有没有hang wire警告, 没有.
尝试去打开DRC中的hang wire警告(只多勾选一个hang wire), 再次DRC.
居然没有hang wire警告.
从官方图上, 复制粘贴了一个元件, 拉出2根线, 填上已经存在的网络标号, 再次DRC.
又出现了hang wire警告.

这也许是咱不会用SPB17.4吧.
看了BCD这个工程, 所有的电气线都没有悬空的, 如果有网络标号, 也是另外一段有端口符号.
其他的电气线, 都用总线连接到一起了.
就是说, 这个BCD官方工程确实没有悬空的电气线, 不出 hang wire警告是正常的.
换个官方工程看看, 找找有没有一端是pin, 然后拉出电气线, 电气线另一端是悬空的, 但是有网络标号的.

orcad没关, 打开另外一个工程Bench, 看到hang wire选项没打开.
说明DRC选项不是全局的, 跟着工程走的, 每个工程的DRC选项可以不同.
只多打开hang wire选项, 进行DRC.
原理图是原版, 我都没动呢, 查看DRC报告, 出来一堆hang wire警告…

 Checking for Hanging Wires WARNING(ORCAP-2354): Warning Detected By Custom DRC : Wire {8.69,9.4:8.69,9.5} is hanging at Point { 8.69, 9.4 } on  PAGE=E in SCHEMATIC=BENCH
WARNING(ORCAP-2354): Warning Detected By Custom DRC : Wire {17.39,3.5:17.7,3.5} is hanging at Point { 17.39, 3.5 } on  PAGE=C in SCHEMATIC=BENCH
WARNING(ORCAP-2354): Warning Detected By Custom DRC : Wire {17.39,3.6:17.7,3.6} is hanging at Point { 17.39, 3.6 } on  PAGE=C in SCHEMATIC=BENCH
WARNING(ORCAP-2354): Warning Detected By Custom DRC : Wire {17.39,5.6:17.7,5.6} is hanging at Point { 17.39, 5.6 } on  PAGE=C in SCHEMATIC=BENCH
WARNING(ORCAP-2354): Warning Detected By Custom DRC : Wire {17.39,5.7:17.7,5.7} is hanging at Point { 17.39, 5.7 } on  PAGE=C in SCHEMATIC=BENCH
WARNING(ORCAP-2354): Warning Detected By Custom DRC : Wire {7.6,2.0:8.19,2.0} is hanging at Point { 7.6, 2.0 } on  PAGE=BENCH in SCHEMATIC=BENCH
WARNING(ORCAP-2354): Warning Detected By Custom DRC : Wire {10.8,2.0:11.4,2.0} is hanging at Point { 10.8, 2.0 } on  PAGE=BENCH in SCHEMATIC=BENCH
WARNING(ORCAP-2354): Warning Detected By Custom DRC : Wire {4.0,2.1:4.5,2.1} is hanging at Point { 4.0, 2.1 } on  PAGE=BENCH in SCHEMATIC=BENCH
WARNING(ORCAP-2354): Warning Detected By Custom DRC : Wire {7.6,2.1:8.19,2.1} is hanging at Point { 7.6, 2.1 } on  PAGE=BENCH in SCHEMATIC=BENCH
WARNING(ORCAP-2354): Warning Detected By Custom DRC : Wire {10.8,2.1:11.4,2.1} is hanging at Point { 10.8, 2.1 } on  PAGE=BENCH in SCHEMATIC=BENCH
WARNING(ORCAP-2354): Warning Detected By Custom DRC : Wire {4.0,2.2:4.5,2.2} is hanging at Point { 4.0, 2.2 } on  PAGE=BENCH in SCHEMATIC=BENCH
WARNING(ORCAP-2354): Warning Detected By Custom DRC : Wire {7.6,2.2:8.19,2.2} is hanging at Point { 7.6, 2.2 } on  PAGE=BENCH in SCHEMATIC=BENCH
WARNING(ORCAP-2354): Warning Detected By Custom DRC : Wire {10.8,2.2:11.4,2.2} is hanging at Point { 10.8, 2.2 } on  PAGE=BENCH in SCHEMATIC=BENCH
WARNING(ORCAP-2354): Warning Detected By Custom DRC : Wire {4.0,2.29:4.5,2.29} is hanging at Point { 4.0, 2.29 } on  PAGE=BENCH in SCHEMATIC=BENCH
WARNING(ORCAP-2354): Warning Detected By Custom DRC : Wire {7.6,2.29:8.19,2.29} is hanging at Point { 7.6, 2.29 } on  PAGE=BENCH in SCHEMATIC=BENCH
WARNING(ORCAP-2354): Warning Detected By Custom DRC : Wire {10.8,2.29:11.4,2.29} is hanging at Point { 10.8, 2.29 } on  PAGE=BENCH in SCHEMATIC=BENCH
WARNING(ORCAP-2354): Warning Detected By Custom DRC : Wire {4.0,2.4:4.5,2.4} is hanging at Point { 4.0, 2.4 } on  PAGE=BENCH in SCHEMATIC=BENCH

去看下原理图上的DRC小绿圈.
有好多小绿圈, 有些不是hang wire警告. 如果手工点击小绿圈, 一个一个的点开报错信息对话框来找hang wire警告不容易.
来查找DRC错误.
在工程节点上右击, 选择Find, 在对话框中只Find DRC. 然后IDE下方的Find Results中找hang wrie, 然后点击跳转过去.
警告和错误多的不得了, 在Find Results中找了好一会, 找到了hang wire警告.


官方工程是没开hang wire的DRC警告的.
这可是官方工程啊, 一点都没动. 就多加了一个hang wire的DRC选项. 现在DRC, 好多hang wire警告.
这说明, 不是咱不会用.而是SPB17.4确实有bug, 只能等官方发补丁了.
我现在用的SPB17.4 S026, 这个补丁不是最新的, 够俺用了, 没心思去打最新的补丁.

来讨论一下hang wire什么情况下是bug, 什么情况下不是bug

如上图, hang wire不是bug. 原因, 管脚上拉出的电气线上有网络标号, 这和直接将电气线拉到另外一个管脚上是等效的.

如上图, 拉出的线是想连接到另外一个元件的管脚上的, 但是手误, 没连接.
这条电气线, 实际上也有网络标号的, 只是没在拉出线的右边写上, 在线的左边, 可以看到网络标号是VCC_3V3.
这种情况, 如果让软件来检查, 确实只能报出hang wire警告. 为啥SPB17.4不报为错误呢? 因为这种不太好算作一个错误, 只能作为警告供作者参考.

即使一条线从元件引脚上引出, 没有任何标号, 但是实际做好板子时, 也是有个自动命名的网络标号的.
可能人家厂家, 认为这就是一个hang wire警告.
我们自己想想, 也确实是hang wire警告哦.
除非工程的作者自己人肉检查才靠谱, 让SPB17.4检查出真不是hang wire的hang wire警告, 真的有点难为SPB17.4了.

总结

从这个验证结果看, SPB17.4确实不好判断哪些是真的hang wire警告.
我先前将hang wire规则关了, 也是搞不定才关的. 如果找不到解决方法, 那就还得继续关掉hang wire规则, 要不DRC完成后, 一堆warning, 人肉检查也看不过来啊.

至于前面模拟出的那种手误引起的真正的hang wire错误, 只能靠自己反复人肉检查吧. 如果检查不出来, 就自求多福吧.
或者像和我讨论问题的csdn同学一样, 看看其他SPB版本是不是可以开hang wire规则, 但是没有这种假hang wire问题的版本来用.
主流的SPB版本就几个, 大家试试吧.
我是不想因为这个问题就将版本换了, 暂时就继续关掉hang wire规则, 自己小心点就好.

其实我感觉cadence官方是不会针对这个问题出新补丁的, 因为我们人肉检查才能检查出来这种真正的hang wire问题, 用软件来检查这个hang wire规则, 真不好弄. 即使真的出一个判断逻辑(e.g. 电气线拉出超长, 而且离另外一条线很近, 就算作hang wire警告), 也不能100%的保证不漏掉真正的hang wire啊(e.g. 我奇葩, 就拉出很短的一条线, 也没有手工标注网络标号, 离目标元件的管脚很远, 但是我确实是手误啊, 这种情况, 软件没法理解的, 就是换了一个不是工程作者本人的工程师, 他人肉检查也大概率发现不了啊, 可能他觉得手误拉出的只是一条废线, 随手就帮你删掉这条废线了).

但是我觉得问题也不大, 只要不是刚画个板子就上批量(没谁会这么搞吧?), 打个样板, 回来调试一下软硬件, 要不就是调通, 要不就是发现问题, 那就知道板子到底是不是一版过了.

能一版过的大神还是少数, 咱就羡慕一下好了.

大部分工程师不得打个2~3次样板, 才能定稿啊?

还有一点区别

大部分野生工程师用的SPB软件都是试用版.
是不是正版的SPB17.4或者只要是正版的SPB软件(不论版本号是多少)都没有这个hang wire问题呢?
这个就不知道了, 等以后有条件了, 咱也用用正版SPB软件.

用程序员的思路来琢磨, 感觉是不正版和试用版的区别吧?
正版和试用版区别只在授权这块.

哪个软件作者或厂家那么有病, 试用版里面还加个bug? 还要一直保持存在这个试用版bug的前提下, 其他试用版功能和正版一起进化?
那咋维护啊? 不大可能啊. 人家大厂不差钱, 这种骚操作的可能几乎为零.

END

cadence SPB17.4 - orcad - Hanging Wires规则的验证实验相关推荐

  1. cadence SPB17.4 - orcad - Capture CIS export BOM

    cadence SPB17.4 - orcad - Capture CIS export BOM 文章目录 cadence SPB17.4 - orcad - Capture CIS export B ...

  2. cadence SPB17.4 - orcad Illegal character(s) present in the name or value

    cadence SPB17.4 - orcad Illegal character(s) present in the name or value 前言 前几天, 重新做了CIS库, 重新放置了元器件 ...

  3. cadence SPB17.4 - orcad更新指定元件的位号(保持其他元件编号不变)

    cadence SPB17.4 - orcad更新指定元件的位号(保持其他元件编号不变) 前言 原理图已经画好了, 元件位号不是自动编号的. 而是按照参考设计原样照印. 这意味着, 已有位号绝对不能动 ...

  4. cadence SPB17.4 - orcad - ORCAP-2434 Footprint is missing

    文章目录 cadence SPB17.4 - orcad - ORCAP-2434 Footprint is missing 概述 备注 END cadence SPB17.4 - orcad - O ...

  5. cadence SPB17.4 - CIS DB - add MECHANICAL part

    cadence SPB17.4 - CIS DB - add MECHANICAL part 文章目录 cadence SPB17.4 - CIS DB - add MECHANICAL part 概 ...

  6. cadence SPB17.4 - allegro - 区域规则设置 - 以smd_pin_to_smd_pin为例

    cadence SPB17.4 - allegro - 区域规则设置 - 以smd_pin_to_smd_pin为例 概述 将板子的网络初步连通, 进行DRC, 出现报错, 说smd pin to s ...

  7. cadence SPB17.4 config local sqlite part database

    前言 对于怎么建立本地CIS元件库,已经做了预研. 现在准备从头做一个自己的本地元件库. 实验 还原SPB17.4 在预研时,已经动了SPB17.4中的配置. 还好,我早想到这种情况,当初刚安装完SP ...

  8. cadence SPB17.4 - allegro - Artwork will be rounded down

    cadence SPB17.4 - allegro - Artwork will be rounded down 前言 出装配图时,弹出如下警告对话框 具体提示信息如下: -------------- ...

  9. cadence SPB17.4 - 用autoCAD2022画一个PCB板框

    前言 如果是规则板框(长方形),在cadence SPB17.4的板框层中直接画线就行. 如果板框复杂(异形),可以在autoCAD中画形状,然后另存为.DXF文件给SPB17.4导入板框用. 试了一 ...

最新文章

  1. 【12】AngularJS 事件
  2. python 绘制柱状图-Python使用Plotly绘图工具,绘制柱状图
  3. Nginx负载均衡策略之轮询与加权轮询
  4. 信息学奥赛一本通 1226:装箱问题 | OpenJudge NOI 4.6 19:装箱问题
  5. Stack Overflow 上人气最旺的 10 个 Java 问题
  6. CFFI - 简介及简单使用
  7. DB2 SQL Error: SQLCODE=-668, SQLSTATE=57016错误解决方法
  8. 相似度计算 java_Java基于余弦方法实现的计算相似度算法示例
  9. 游戏筑基开发之测试篇2(C语言)
  10. 高质量的C/C++编程(2)----程序员必看系列
  11. Axure 元件 模板 MES系统 全套(带下载地址)
  12. 国外科研论文搜索网站汇总
  13. 计算机可移动磁盘无法显示图片,移动硬盘不显示盘符原因及解决方法步骤介绍【图文详解】...
  14. 去除桌面图标文字阴影的4种方法
  15. jetson-inferenc显示fatal error: connect_parts.hpp
  16. IjkVideoView的视频宽高比怎么设置
  17. the info.plist in the package must contain the CFBundleShortVersionString key.
  18. IT中高端人才招聘技巧
  19. php 如何缩小一张图片,放大和缩小图片的技巧_PHP
  20. 关于ARM Kinetis MCU唤醒源NVIC和AWIC的工作过程解惑

热门文章

  1. 一、SSM整合按步骤详解(清晰的思路加代码)从零开始一步步整合【一】
  2. matlab软件中GUI界面开发学习——双色球选择小工具
  3. 服务器SMP、NUMA、MPP体系学习笔记。
  4. linux smp 引导多核源码分析
  5. 如何用python把pdf转为word_Python-PDF转为Word
  6. js/jq/HTML5实现 鱼骨图(因果图) 附下载地址demo
  7. vsco和lr哪个好_vsco手机版和pc版哪个好?
  8. Nmap学习10 - 对目标主机使用 NSE 脚本
  9. Unite2019技术专场第一天总结
  10. 论德国人的计划取向意识