第一次发帖,不了解这儿的行情,随便填的,还请见谅,现在将全文贴上,仅供参考;
关于Cadence skill语言二次开发的一些经验前言Skill语言是基于Cadence软件的二次开发语言,其语言格式简单,方便,只要有一般编程语言基础的就可以能应用自如。笔者在接触此语言之前了解VB,C和汇编,但对C不算熟练,只是了解,skill语言在某些格式上类似C,下文仅对所做过的程序进行分析综述,不涉及任何公司的机密,若有雷同的地方,还请了解:天下乌鸦都是黑的,天下代码都是堆得,切记! 正文笔者现在从事的工作其实与开发毫无关系,但笔者在从事这项工作的时候发现很多人力能做的事完全可以用机器完成,而且准确率更高,因此在业余时间略作研究了skill语言。关于allegro软件,目前很多大公司在使用,而他们的二次开发水平也参差不齐,有些公司早在十年前就开始研究了这方面的工作,因此技术很是全面,完全能把笔者上面说的事情人工机器化;在这方面,国内的公司首推华为,从网上的资料来看,华为这些资料大部分都是2002年左右完成的。 在笔者看来,PCB板的制作(在华为叫CAD,在中兴叫EDA)总体来看,可以分为四个部分; 1.、前期准备阶段(包括导入网表,导入器件,设置规则等) 2、布局设计阶段 3、布线阶段 4、校验阶段 在这四个阶段中,skill语言都可以发挥重要的作用,下面对四个阶段逐一进行分析: 前期准备阶段在前期准备阶段中,笔者认为可以将叠层设置,差分线规则,单线规则以及需要设定的一些阻抗要求一键式完成,笔者在业余时间设计了一个简单的四合一子程序。实际上从一个公司来讲,对于PCB厚度以及叠层信息以及阻抗都应该是统一的,这些都应该在一个服务器上,因此在设置叠层时可以将这些信息预置进去;对于操作者来说,层厚选择,层数选择,阻抗选择,叠层信息选择四步完成后点击鼠标即可以能将预设的信息全部显示完整,并且可以在CAD的标注表中显示一些PCB的制作信息以及设计人,设计日期,同时在规则栏中植入了需要的差分规则和单线规则,甚至若做的精细,连电源的规则以及其他重要的规则都可以设置进去。 布局设计阶段布局阶段主要考虑一些板厂的加工能力和PCB的密集程度,每个公司都会有一些PCB制作时器件的间距要求;在这点上若是在做库的时候注意在Place_Bound这一层设置好,并在布局设置时打开距离规则,就应该能很好的解决;但是随着加工能力的发展,很多5年前甚至10年前的库设置的规则不适合如今的规则;譬如,5年前要求电容电阻到BGA要5mm,而现在只需2mm甚至1mm,那之前做的库就存在问题,另外,很多物料有不同的供应商,这些物料大小略有差异,这就造成了整理库是一件很难的事,这项工作繁琐却不见显著的效益,因此很多公司都不是很重视这一点,因此运用skill语言自动检查器件间距是否符合公司的规范就可以起到显著的作用,实际上器件之间的距离归根结底可分为四类:丝印框到丝印框,丝印框到焊盘,焊盘到丝印框,焊盘到焊盘,利用这一点就可以编写相关的语言来检查器件间距了,这一点还只是检查,若是将检查进一步发展下去,将检查反推至将不符合项移动到符合项,并循环,直至整版都符合,这是开发的第二步,再以后,自动布局就自动而生了;但自动布局的难度在于一个公司从硬件开发到PCB设计到校验都应该有统一的标准和规则,这点上几乎都很难达到。不过作为终极目标,笔者觉得还是有必要写下来。 布线阶段实际上笔者没有怎么在布线阶段运用skill语言,因此也不便多说;但是笔者在自动部丝印方面做了一点工作,觉得还是可以将丝印方面的工作时间节省下来的;笔者始终认为,PCB设计若是靠人用时间来堆出来的话,那只能说明我们的人力实在是太便宜了,而对于想在智能化方面发展的笔者来说,这是不希望看到的。 校验阶段在这一阶段,笔者看到好多关于字符检查的例子,笔者只想说,大致的方法和其他兄弟的差不多,通过将TEXT的范围设定BOX,在这box内若存在管脚或者是其他字符,就证明相压,这个方法的缺点是始终存在误报,没有办法根治,笔者试过很多的办法,在不想漏报的情况下,误报无法消除,但是这种误报还是很少的,所以目前来看,这种方法还是比较有效的,另外笔者还想到一个方法,即将字符分块分区域逐一进行比较,这样缩小了范围,但是计算量会大一些,不过这个办法我没有时间去实施,有兴趣的兄弟可以去尝试一下,另外笔者还根据公司的规范设定了一些距离检查项,效果不错,实际上很多大公司都用valor来检查这些,但还需要人工进行一部分的检查,valor的好处是全,但是误报也存在,而且取决于服务器的计算能力,时间上耗时较多,skill开发的检查程序好处是灵活,可以根据自己的需要随时增减,同时针对于某一项,能多次反复检查,重复性较好。 结论笔者在尝试很多次的失败后发现skill语言还是很有用处的,尤其对于一些正在发展而又用不起valor那种大型软件的新兴公司,这是改善PCB设计,提高设计质量的一条捷径。若以上有错误或者不对的地方还请大家见谅,因为不是专职从事这个工作的人,若有什么可以相互交流的话可以邮件我! |