热度 3| |
当年上学时,曾经听到传说,资深的模拟设计大师是不用gui的,都是用命令行。当时听了觉得神奇的不得了,又觉得不可思议。因为自己那时也由于条件限制,曾经手写过网表,发现问题很多。一个是其实在写之前还是必须把电路图画在纸上,标上节点名称,否则规模一大绝对搞不定。另一个是如果出了问题,想找到问题难上加难。
后来工作了,见的人多了,才知道有些传说也就是娱乐娱乐而已。要真有那样的大师,也不是因为他觉得gui不好,而是由于之前没有方便的gui,习惯了手写的方法。gui还是有一定优势的,直观,加上能够high light节点,找起画电路的问题效率高的多。那些option也往往是按照一定规律安排的,对于初学者来说简单明了,重点也突出。
再后来,自己也开始向cmd靠拢了。因为gui毕竟是给原始的套了个壳,有时候你想用的option它没给包装,要用就需要自己想办法包装一下,有时甚至想自己包装而不成。再比如一些模板化的东西,要是每次都gui去一点点点击,不如想办法搞个脚本,扔给计算机了。还有就是gui有时掩盖了对cmd的深入了解,有时到了命令行,看了手册才知道其实还有很巧妙的用法。
当然,用了cmd也不是就傻乎乎的自己从头开始,那种得要自己把一本手册先通读,再细读,费的精力太大。很多情况下,gui给了通往cmd的捷径,可以保存一个脚本,在这个脚本的基础上修修补补,再查查相关的文档就省事多了。
最后说说cmd下需要的东西吧。perl是个挺有趣的语言,虽然现在没python流行了,但我觉得用习惯了挺舒服,一个是文本操作方便,一个是数据结构方便。shell我有些怕,不同的shell差异太大,所以我就学学最简单的用法,复杂的扔给perl就成,awk等也类似,不学也罢。不过vi是个例外,学好vi还是能节省不少时间的。进到工具里,cadence用skill一统天下,skill其实挺复杂的一个语言,加上cadence本身给的文档问题,想对cadence里的数据操作,很难很难。为了做一些功能,比如让电路中的器件换模型,我就需要不停的google才行。直到今天,我也只是见招拆招,学到了skill在cadence中的一些用法。ocean虽然是附带在skill中的,但是ocean本身用的更多些,循环着跑仿真就很方便。一般cadence 会产生ocean的脚本,所以初级用法不学就会。高级用法文档也不算多。当然了,spectre的语法是必不可少要看的。有时在spectre里能找到不少有趣的东西,比如bsource,虽然号称要被veriloga代替,但简单的用来写一些东西,挺方便。除此之外,提取有calibre用的语法,快速仿真有hsim用的语法,veriloga有veriloga的语法,vec有vec的语法。隐藏在cmd后面的是许许多多的语言,当然我们也不需要一一精通。但用到哪个,有时间了看看user guide和reference对提高效率还是很有帮助的。