文/黄焖Jimmy饭&玉庆&张勇&陆永民
来源/知乎
是模电难还是数电难?相信不同的技术狗有不同的看法,模拟电路实际搭建设计时存在许多玄学的地方,经验很重要,数字电路复杂多变,逻辑,时序等等,下面就是在网上搜集来的关于此问题的一些看法。
  A:准确来讲,都很难。只是难点不同。我发现一件很有趣的事是,模电搞的久的往往觉得数字那块更复杂、差距更大;数字设计做的久的,觉得模电很玄学。
  如果你是想问本科的课本哪个更难,那应该说模电更难。因为模电课本涵盖的范围更广,基本上覆盖到了模拟技术最主要的几个方面:器件,幅度放大,功率放大,高频电路,阻抗匹配,电源,滤波等。这几个方面是模拟电路一直以来最核心的内容,关心的主要是信号放大的线性度和输出功率大小,以及如何提高电路的频率(射频)。模电课本让你形成一个基本的概念和认识,更多的在于后来的继续学习和积累。而数电课本基本只讲了数字逻辑的组合和最基本的时序电路,内容浅显易懂,但是只涵盖了数电技术很小很小的一部分,一般都没怎么讲VHDL或者Verilog。往上的去的DSP、VLSI还有Architecture都是非常博大精深的,需要花一些时间才能掌握的。
应该说模拟/数字技术上的好坏跟这门课分数高或低没有根本联系。光靠那些知识也做不了什么,恐怕现在连电赛都应付不了。
   模电其实也不是要靠天赋。模电很多人觉得难主要是给出的电路模型太抽象了,不光有非线性的分析,而且不少都是定性的而不是定量计算。现在国内普遍使用的模电书(比如童诗白的)上给出的很多计算方法和模型本身没有问题,但是实际当中我很少会用到。计算传输系数的方法,主要是过去的SPICE软件需要手动计算传输函数,所以在当时是必修课。三极管分立器件放大器现在很少有用的了,毕竟运放这么好用。但是这些知识对于理解模拟系统的设计有很大的帮助,我现在觉得获益匪浅。
  本科阶段知识掌握的有限,加上做模电的老师一般也比较少,很容易把电路中出现的奇怪现象当是“玄学问题”,然后觉得做模电太难太靠经验不如去写代码。其实是因为本科阶段经验不够丰富以及掌握的理论工具不够强大。很多“奇怪现象”都可以用电磁的观点都可以去解释,比如布板不合理导致的自激、谐振,震荡电路对电源的影响等等。计算电磁学的发展使得现在可以对模拟或者微波电路做非常精确的仿真,很多算法比如有限元(FEM)、矩量法、时域有限积分法(FDTD)都可以提供很精确的结果,即便是60GHz频段的毫米波电路,只要制造没大问题,误差就可以控制在5%以内。
  但是经验还是很有用的,本科的时候有一个老师模电很厉害,100Mhz的分立器件电路,看一眼波形完全不动手算就从元件盒捏出一个电容告诉你接在哪里,果然work了。
  现在回头看过去学习的模电知识和高频设计,在低频和弱电情况下还是适用的,但是有些等效模型还是有一些局限性。还是得继续学习。
  布板上讲,现在模数混合器件的发展,让layout更加简单了,至少过去模拟地数字地分开处理的做法很多情况下都没有了必要。加上集成化程度越来越高,低频电路在设计上能发挥的空间越来越小,大多数时候只要不犯大错误,基本上都可以用。
  B:如果是从课程的角度来说,初步的模电和数电难度相当,高级一点的课程的话模电更难。
  一般而言,大一大二上的数电主要是状态机和逻辑门,模电无非是三极管,MOS和运放,难度差不了太多。
  大三大四的话,模电开始上拉扎维,数电上设计透视,或者是CMOS超大规模集成电路,这时候模电的难度要大于数电。因为这个时候,模电已经快进入实战阶段了,数电还是在讲概念和打基础。
  再往上,二者就越离越远了。模电继续实战,进一步专精某一块,RF、ADDA、POWER等,技能点点起来。
  数电的功夫开始往电路外面走,体系结构,信息论,通信,视频,看具体方向,总要开一点新的科技树,要么CS要么通信之类的。毕竟纯实现很难支撑一个硕士以上的论文。
  这时候,个人感觉,模电的功夫在电路以内,数电的功夫在电路以外了。
  C:两者没有可比性,因为不对等。如果单纯从大学的课程来说,模电要比数电难学,毕竟数电其本质便是将模拟信号理想化为一连串的0和1后再进行电路设计。
但是从设计规模上讲,模电难以实现大规模设计,始终停留在电路设计的方式上,而数电则已经立足于系统层次上了,这时数字工程师考虑的已经不是电路了,而是系统架构,cpu效率,各种通讯协议,算法的实现了。
换句话说,模电靠的是经验,不需要多少技能点就能点亮整个技能树,数电的技能树却大得吓死人,对技能点的需求近乎无限。
  D:学电子的,我看见很多都学不下模拟去搞数字,单片机,上层的arm一类,但是数字转模拟的,几乎不见。
  很多人表示学不会模拟电路,因为现实工程和理论完全不一样。特别是高频,举个例子,同样做比较器,很多人做的电路无法在低输入电压的时候稳定翻转,为什么,因为干扰噪声窜进了比较端……
  于是都转码农去了。毕竟CPU总是(比较)准确的执行每个指令,考虑的因素需要少很多。
     不知你怎么看,欢迎大家各抒己见。。。