火冰狐 发表于 2015-11-21 02:39:58

用Verilog-a描述的底层单元搭建的电路怎样做LVS

  

  首先介绍verilog-a,这是一种类似verilog风格的模拟描述语言,可以用来实现对单元的行为级描述。
  他的好处在于,可以直接用行为级语言描述一个模块(或者cell),并带入到spectre中进行仿真。
  

  如非门的verilog-a代码(cadenc的ahdlLib library中的nand_gate cellview)如下:

  

  具体的语法细节就不多说了。写完一个verilog-a后,可以由此生成一个symbol,并由此symbol辅助搭建电路。
  

  下面是关键问题,怎样做这个电路的LVS(Layout Vs Schematic)。
  我们需要有对应的版图,layout部分已有,麻烦的地方在schematic。
  众所周知,calibre工具的LVS只能对已有的单元做LVS,对于verilog-a写成的单元,由于没有对应网表信息,无法形成网表(netlist),也就没法做LVS。
  

  这里提供一个只检查单元之间连线的方法。注意:这里不对单元内部做LVS,事实上这也不可能做到,因为单元是用verilog-a写的。
  

  如下图,为用verilog-a单元写成的symbol搭成的电路。
  



  

  图中的三个门均是以verilog-a为基础生成的symbol。下面来做它的LVS,我们只检查这些PIN之间的连线有没有问题。
  

  对于每一个门的cell,本身是没有schematic的cellview的,我们新建一个,在其中只放入5个PIN,如下图,


  

  对所有的门都新建一个这样的schematic的cellview。
  注意这里的PIN 的名字必须和版图,symbol中的PIN名都一致,这样才能对应起来。
  

  然后就可以做LVS了。
  不过,再强调一下,这里的LVS只会检查PIN之间的连线是否正确。
  
页: [1]
查看完整版本: 用Verilog-a描述的底层单元搭建的电路怎样做LVS