首先介绍什么是LVS,LVS可以是低速扫描(Low Velocity Scan),也可以是版图vs.原理图(Layout VS. Schematic)。LVS的作用就是检查版图和你的原来设计的网表的端口(Port)数量,实例化后实体(Instance)的数量,还有网络(Net)数量和网络的连接是不是一样的。只有你的版图和你的网表是一样的,才能够认为这两者之间是等价的关系。至于为什么你在进行物理实现的时候会造成与原来设计网表的差异,作者也不甚清楚。不过如果你认为你RTL代表写好了,综合出来的Layout就应该和原来的RTL代码是等价,也就相当于你已经默认了你所使用的Tool是毫无问题的,但这是不太可能的,Tool也可能存在bug,所以LVS是非常有必要的。
对于LVS,可以使用的工具也不少,其中有Mentor Graphical的Calibre,还有Cadence的Assura,也有Synopsys的Hercules。其中Hercules我看到的最新版都只到2008,据实验室的博士讲,Hercules已经落伍了,落伍的原因自然是因为其进行LVS和DRC的功能不好,所以后面的晶圆制造厂商,fountry都不提供供Hercules使用的rule文件了。不过在ICC的过程中,还是可以调用一下Hercules跑一下LVS或是DRC,可能早一些发现问题。Assura一般多用于对模拟的版图过LVS,对于数字电路怎么过LVS,作者也不知道,也没有找到相关的资料。而Caliber可以说是芯片验证领域的老大了,在DRC和LVS方面十分权威。所以我们数字和模拟版图拼版后也是使用Calibre来过LVS的。这里我们提出一种理论上可行的方法。作者认为可以,但还没有具体实践过。
要过LVS需要有从版图抽取出来的网表文件,这个不用管,Calibre可以做到。另外一个就是你设计的网表文件,对于Cadence可以由原理图来提取,生成CDL文件。对于.v文件可以使用v2lvs来进行转换,转换成Spice网表。不过Hercules中有一条NetTran命令可以把.v文件转换成CDL文件。所以也就是说,你可以把.v文件转换成schematic,然后在cadence中,把这个数字的schematic和模拟的相连接,再通过这个schematic来生成CDL网表文件与Layout抽取出来的Spice网表文件比较。因为数字部分的CDL文件包含了整个数字RTL设计的进行LVS所必需的信息的,所以理论上而言是可行的。而已这整个过程都没有需要手工修改的部分,这样就可以避免人修改时造成错误所造成的麻烦。
未经允许不得转载:TacuLee » 数字模拟版图拼版后过LVS的方法