我是synopsys的重度用户,但是对于cadence的innovus工具,请叫我“小白”。
我认为工具的差异应该容易克服,重要的是我们的理论知识。因为基本知识都差不多。理论也都类似。各种基本概念类似。在这样的基础上,学习一种新的工具,肯定要远远比一个完全的初学者要快。
理论虽然如此,但是,根据我这两天的使用情况来看,两者的差异还是很大的。
从icc过度到icc2,基本命令非常类似,只是更加的规范,命令以及图形界面设计的更加合理,尽管具体的命令和变量有很大的变化,但是,其规范基本相同。比如,一般的命令都是,动词+下划线+名字的格式,例如,get_cell,get_net,set_attribute等等。这些规范会让初学者上手更快。而且命令也都非常的直白,很多直接看命令就可以知道这个命令的作用,并不一定需要查询在线手册。
而innovus,相对来说,各种命令比较杂乱。例如,有很多让人很困惑的命令,check_design, 以及其“兄弟”, checkDesign。不知道为什么这样设计,我猜测可能这是两个团队,在不同的时间来做的两个功能类似的命令。
当然,innovus也有非常值得称道的地方,它有个dbGet命令,非常强大。用好这个命令,相对于icc以及icc2,我认为会让代码非常简洁。图形界面目前还不是太适应,比如想看一条timing report中的timing path在GUI中如何显示,却发现,没有这个功能。
学习innovus这样的工具,我会这样做,首先我会先跑一下流程,看看log。然后看脚本以及log来学习其命令。再就是熟悉图形界面,和有经验的同事多交流,可以事半功倍。
以上是我使用innovus的一点感想,并不涉及到QoR的比较。当然,对于innovus的QoR,我并不怀疑,因为如此多公司在评估之后采用innovus也必然有其原因。
innovus学习心得,我将继续更新。