[分享] 【转载】最贻害无穷的画图方式!

Nubility   2023-11-30 17:04 楼主

本文转载自WX公众号 电子森林,作者苏老师,原文链接https://mp.weixin.qq.com/s/tbb46ixtI6Jh1FehqHY3Cw

 

几天前看一专业微信大号标题“必须收藏:原理图设计规范126条checklist“,点了进去,没想到标题下、所有内容前是如下的这么个电路图,后面的126条我一点读下去的兴趣都没了。 image.png  

看官们会说“why”,“我觉得这图画的很好啊”,“苏老师您觉得这图哪里不好?”,这正是我在微信朋友圈里贴出去之后获得的纷纷反应,更感觉这样的电路图给年轻人的贻害之深,我觉得太需要写一篇文章来说说这事了,无奈前几天都在连载时钟方面的文章,直到今天才抽出空来说一下了。

 

首先我问大家个问题:原理图画了是给谁看的?

90%以上的人会说,当然是自己看的了,自己做的设计,自己画的图嘛。苏老师要说  ---  错❌!原理图是自己画的,但不仅仅是给自己看的,更重要的是给其他人看,给机器(画图的工具软件)看!公司的其它同事、你的客户、帮你做Layout的工程师拿到你这张图,能很容易看得懂吗?显然很难看懂,至少要花很多时间琢磨才能看懂,太不直观了!比如你第一次到北京去旅游,下车你买了一份北京地图,每个区都分割成了块 - 海淀区、朝阳区。。。每个区的每条马路都用路名标示,你可以根据路名找到它们之间的连接关系。。。

 

我相信你拿着这样的地图一定会原地崩溃的,如果画图人在你面前,估计你抽他一巴掌的心都有。。。

 

其他人拿到你这样画的电路图也会有这种烦躁的心情的,别说替你Review了,根本就没心情去仔细看,Layout的工程师要根据你提供的原理图来做布局布线,估计他一边连线,一边骂你。

 

你会问 - 我画的图为什么要让他们看呢?这就是你的局限了,如果你一辈子都是在小公司里一个人玩硬件设计,这是OK的,你要想去BroadCom、想去华为,就这样的电路图拿出来,估计面试你的项目经理让你立马走人,因为你根本就没有Teamwork、Project flow这方面的意识。

 

你会问,那机器怎么就读不懂了?

从原理图到布局布线之间有个桥梁叫Netlist,这个netlist就是基于你原理图上的连接以及net名字,这里面就会存在着高度的风险 - 你认为A器件的管脚15跟B器件的管脚3都用了同一个net名字“Data3”,可是你在添加net name的时候手一哆嗦,把A器件管脚15的名字写成了Data8,由于页面上的net name太多,你也没有留意到这个错误,机器在生成netlist的时候并没有将这两个管脚俩连接起来,等你拿到板子花了两周的时间怎么也调试不出来的时候才发现这俩net名字标记错了,想飞线还飞不了, 因为器件是BGA的封装,你的脸估计都成“平方”了。

image.png  

 

 

你会说,我不会这么倒霉吧?毕竟是小概率事件啊,我也会认真查找的啊。哎,要知道小概率事件是会经常发生的,这是一个定律!你越是认为不可能出现的事情越容易出现,而且一出现就是大问题。即便这次侥幸没遇到,迟早有一天会让你吃尽苦头的。

 

你还会说,工具软件中不是有ERC检查么?我用ERC查一下不就好了。现在的工程师有多少人养成了每次都用ERC,并对ERC每行、每行都仔细检查的习惯?何况有的net名字拼写错误ERC未必能检查出来啊,比如在电路图上有多个VDD、VCC、VSS,你用错了其中一个,这些net是都在的,ERC是不报错的,但你确实连错地方了。

 

所以,第一张图,从别人理解的角度、从机器阅读的角度都是极不友好的,即便是对自己,检查每根信号线的连接也是一件非常费时费力的事情,总体上来讲对谁都不好。

 

有人会说,苏老师我同意你的说法,但这张图是针对开发板的,方便开发板用户使用才这么做的。那就更不应该了,因为很多用开发板的工程师以初学者居多,他们看到啥学啥,这种图、放在这么重要的一篇有理有据的文章的前面,给工程师产生的影响一定是非常大的,很容易让没有经验的工程师模仿这种做法,从而养成坏习惯。

 

那么,怎样才是比较好的电路图呢?我们看下面的一个跟我们小脚丫FPGA学习模块长得很像的MCU控制模块叫Teensy,3.6版本(网上可以搜到它的很多资料):

image.png  

 

 

它的电路图是这个样子的:

 

 

image.png  

是不是感觉非常清晰?看起来一目了然?而这个图中基本上没有用net进行信号的连接,基于这个原理图做的PCB布局布线出错的可能性也就大大降低。

 

总之,记住苏老师的两个观点:

  1. 原理图最重要的是要让别人凭着直觉就能一下子看懂,设计任何产品的时候都不能只是站在自己的立场上看问题,要更多地想想别人会怎么解读;

  2. 在原理图的绘制中要尽可能不用net来进行信号线的连接,实在没有办法的情况下用net也是可以的,但一定要反复检查,尤其是将ERC、Netlist打印出来进行检查,不要完全相信电脑上用眼看到的东西。

 

最后分享一个我们Hackaday的工程师设计的一个小产品的原理图:

1701334855064.png  

 

执古之道,以御今之有,能知古始,是谓道纪

回复评论 (11)

虽然有些地方说得夸张了一点,但是总体上说得还是很有道理的,尤其是帮同事检查原理图的时候更是感同身受

执古之道,以御今之有,能知古始,是谓道纪
点赞  2023-11-30 17:15

特别是软硬件分工的时候,有的原理图真是看的头疼

点赞  2023-11-30 18:43

同一个电路模块,还是尽量用连线画清楚,net也是免不了,都不用net, 连线太多,也会看得头晕。

点赞  2023-11-30 20:41

楼主位的原理图和PCB比我设计的好。

点赞  2023-11-30 21:04

主要是有的地方绕不过去才会用网络标识  

在爱好的道路上不断前进,在生活的迷雾中播撒光引
点赞  2023-12-1 10:33
引用: fjdeepblue 发表于 2023-11-30 20:41 同一个电路模块,还是尽量用连线画清楚,net也是免不了,都不用net, 连线太多,也会看得头晕。

可能还是要尽量避免像图一那样吧,像连接器和IC互联的情况,就实在没办法才用net label

执古之道,以御今之有,能知古始,是谓道纪
点赞  2023-12-1 11:49

我觉的你没说到点子上,你第一张图是比较复杂的,只能通过网络好连接;你后面举的例子,原理图都是比较简单的,所以可以直连;第一张图那么复杂怎么直连,只能那么接,然后仔细检查引线

点赞  2023-12-2 10:13
引用: 器铭123 发表于 2023-12-2 10:13 我觉的你没说到点子上,你第一张图是比较复杂的,只能通过网络好连接;你后面举的例子,原理图都是比较简单 ...

除了连接器没办法只能用Net Label来连接,其他的很多模块都是可以不用Net也能用线连接起来。 可以看一下TI和Intel这些大厂的参考设计,也基本上是能不用Net就不用

 

 

image.png  

执古之道,以御今之有,能知古始,是谓道纪
点赞  2023-12-2 11:54

不太认可,接线太多反而太乱,眼花缭乱

最好还是按照功能多分几个子图,然后标号命名要讲究一些,和写代码时变量命名一样,取的好自然就不会乱

下面是我司内部不公开的图纸,没有整理好,对外的图纸会整理的更到位

 

xxx.png

 

本帖最后由 dukedz 于 2023-12-6 15:31 编辑
点赞  2023-12-6 15:19
引用: dukedz 发表于 2023-12-6 15:19 不太认可,接线太多反而太乱,眼花缭乱 最好还是按照功能多分几个子图,然后标号命名要讲究一些,和写代 ...

凡事都不能走极端,这里说的是能用线连的就用线连。要是全用线连了之后会很乱,那肯定要另想办法啊, 元件太大就做成分裂元件,连线交叉太多就考虑引脚排列,总是有办法的。你net label满天飞,图都没法看了,板子大了之后自然问题就多

执古之道,以御今之有,能知古始,是谓道纪
点赞  2023-12-6 16:05
dukedz 发表于 2023-12-6 15:19 不太认可,接线太多反而太乱,眼花缭乱 最好还是按照功能多分几个子图,然后标号命名要讲究一些,和写代 ...

乱吗?没有吧,这里这么多线都没眼花缭乱

080d53d158425ea96236fe028326d7b2_115357h0f22ukfuulgz0x1.png  

执古之道,以御今之有,能知古始,是谓道纪
点赞  2023-12-6 16:13
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复