EDA工具的比较
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
EDA 后端工具比较最近部门一直在考虑关于后端工具的选择,大半年了,synopsys 和cadence 两家的技术支持
不停的来做技术讲座,都说自家的工具好。
最近一周,cadence 的售前又来做技术讲座,顺便再次分析了自家软件的好处,使得我开始对synopsys 的工具有点怀疑了。
好在今天终于看到了一片不错的文章,详细、客观的分析了2 家公司的后端工具优劣,因此转贴到这里,以备参考。
起个唬人的名字而已,无意挑起Synopsys 和Cadence 的战争,恐怕没有热闹可看。
最近看到水木MeTech 上关于Astro 和Encounter 的讨论,回想起自己的数字后端历程,有了写个工具回忆录的冲动。
我从01 年开始用SE(Silicon
Ensemble), 02年进入Apollo,随后进入Astro , 07年转投SoC Encounter,每个工具都有大规模芯片的流片经历,几个工具总体来说各有千秋和Bug。
SE 是骨灰级鼻祖,把持了古老的IC 时代,如今基本已寿终正寝了。
但对于古老工艺下的设计,它却是唯一选择,因为工艺库对其他工具可能没有相应支
持,与其绞尽脑汁去考虑库的转化,不如花点功夫学习下SE。
SE菜单简单明了,已经包含
了现在数字后端设计流程的绝大多数概念,但支持的工艺和规模都很有限,非EDA 古玩爱好者就不要考虑了。
Apollo 可以看作SE 时代的终结者,虽然伴随着它官司不断,但不妨碍它成为P&R 工具的
历史精品。
第一眼看到Apollo ,你肯定会吐血,为什么?菜单选
项浩如烟海,菜单下面有子菜单,选项下面有子选项,显示器小点可能会连对话框都看不全。
但是Apollo 的layout 视图很舒服,手工操作支持的很好,
Milkway Database 也非常方便好用,如今也已经退出历史舞台了
Astro 是Apollo 的升级版,SoC Encounter 可以看作是SE 的取代产品,虽然IC Compiler 是Astro 的下一代取代产品,但目前数字后端设计工具的主流还是
Astro和Encounter。
至于性能孰优孰劣,两家公司都有堆成山的BenchMark说明自己牛X。
我个人的使用感受是,同时期release的两个工具的速度和
memory 使用相差不大,即使有差异,这也不是我们IC 设计者最关注的方面。
芯片最终P&R 结
果的差异往往来自于设计本身的特点,以及工具的使用策略。
对于使用者来说,与其花精力给两个工具做比较,不如多花点时间了解设计本身的特点,掌握什么样版图能满足你的性能要求,从原理出发去调整流
程和组合选项。
无论Manual 上说的如何天花乱坠,都不要给工具寄托太大希望,The tool is
just a tool,根据需求灵活使用是关键。
EDA工具日新月
异,后端工程师想不被淘汰,想随着时间增值,只能指望多掌握些原理上的东西。
忽悠到此为止,下面来点适合工程师口味的,稍有点技术含量的。
Astro 和Encounter 推荐的设计流程基本一致,所以两者之间的迁移不会很困难,那就
简单介绍下Astro 和Encounter 在使用上的差别比较。
1)Astro使用的database是Milkway,是二进制格式的,而Encounter的数据格式是ASCII 的。
所以Astro 的文件size 小,利于拷贝移动,而Encounter 支持在数据库中直接修改文件,方便更新和操作,但是文件size 大,移动和复制时可能造成某些相对路径指向的文件丢失。
2)Astro 一个进程可以打开多个cell,命令行不占用Terminal,而Encounter —个进程只能打开一个cell,命令行占用Terminal。
3)Astro 在timing 分析时不能直接调用PT 等signoff 工具,而Encounter 使用分析时-signoff 选项就能自动调用signoff 的STA 和其他工具。
4)如果想Fill poly ,Astro 中可以直接加dummy poly ,而Encounter 工具本身只能支持到Metal 1 的fill ,不支持poly 的fill ,需要自己想办法解决。
5)Placement 之后,CTS 之后,routing 之后的工具参数都会有些变化,A stro 大多数需要自己设置,而Encounter 通过-preCTS, -postCTS,
-postRouting 可以自动配置。
6)为了LVS 加IO text 时,Astro 有命令可以很方便的加,而Encounter 必须自己想办法。
7)在设计早期加入metal fill 对timing 和设计的影响,Astro 中没有方便的选项设置,而Encounter 在从一直开始就能设置。
8)Astro能读入GDS,支持CEL view , Encounter不支持读入GDS,所以在Encounter中永
远无法看到真正的版图,所以对于手动fix DRC , Astro更胜一筹
,Encounter 就必须借助ICFB 了。
9)如果版图中需要手动拉线,Astro 中Customer wire 的命令没有Encounter 的智能,不能自动识别伸缩,换层和打孔。
10)为hard block 做Macro padding 时,Astro 能根据block 的pin 的多少调整padding,而Encounter 没有该功能的支持,需要使用者自己脚本解决。
11)对于Hierarcical Methodology 的支持, Astro/JupiterXT 和Encounter 相比略逊一筹, Encounter 的Partition 功能比较强大,而且可以自动产生
block-level 的工作环境和数据。
12)对于通过脚本加soft blockage, Astro 可以轻松实现,而Encounter 只支持图形化操作, 脚本实现比较麻烦。
13)C alibre 的强大有目共睹,但Astro 没有提供Calibre 的接口,不能读入Calibre DRC 的结果, Encounter 可以直接读入Calibre 的运协理出发去调整流
程和组合选项。
无论Manual 上说的如何天花乱坠,都不要给工具寄托太大希望, The tool is just a tool,根据需求灵活使用是关键。
EDA工具日新月
异,后端工程师想不被淘汰,想随着时间增值,只能指望多掌握些原理上的东西。
忽悠到此为止,下面来点适合工程师口味的,稍有点技术含量的。
Astro 和Encounter 推荐的设计流程基本一致,所以两者之间的迁移不会很困难,那就
简单介绍下Astro 和Encounter 在使用上的差别比较。
1)Astro使用的database是Milkway,是二进制格式的,而Encounter的数据格式是ASCII 的。
所以Astro 的文件size 小,利于拷贝移动,而Encounter 支持在数据库中直接修改文件,方便更新和操作,但是文件size 大,移动和复制时可能造成
某些相对路径指向的文件丢失。
2)Astro 一个进程可以打开多个cell,命令行不占用Terminal,而Encounter —个进程只能打开一个cell,命令行占用Terminal。
3)Astro 在timing 分析时不能直接调用PT 等signoff 工具, 而Encounter 使用分析时-signoff 选项就能自动调用signoff 的STA 和其他工具。
4)如果想Fill poly,Astro中可以直接加dummy poly,而Encounter工具本身只能支持到Metal 1 的fill ,不支持poly 的fill ,需要自己想办法解决。
5)Placement 之后, CTS 之后, routing 之后的工具参数都会有些变化, Astro 大多数需要自己设置,而Encounter 通过-preCTS, -postCTS,
-postRouting 可以自动配置。
6)为了LVS 加IO text 时, Astro 有命令可以很方便的加,而Encounter 必须自己想办法。
7)在设计早期加入metal fill 对timing 和设计的影响, Astro 中没有方便的选项设置,而Encounter 在从一直开始就能设置。
8)Astro能读入GDS,支持CEL view , Encounter不支持读入GDS,所以在Encounter中永远
无法看到真正的版图,所以对于手动fix DRC ,Astro 更胜一筹
,Encounter 就必须借助ICFB 了。
9)如果版图中需要手动拉线,Astro 中Customer wire 的命令没有Encounter 的智能,不能自动识别伸缩,换层和打孔。
10)为hard block 做Macro padding 时,Astro 能根据block 的pin 的多少调整padding,而Encounter 没有该功能的支持,需要使用者自己脚本解决。
11)对于Hierarcical Methodology 的支持, Astro/JupiterXT 和Encounter 相比略逊一筹, Encounter 的Partition 功能比较强大,而且可以自动产生
block-level 的工作环境和数据。
12)对于通过脚本加soft blockage, Astro 可以轻松实现,而Encounter 只支持图形化操作, 脚本实现比较麻烦。
13)C alibre 的强大有目共睹,但Astro 没有提供Calibre 的接口,不能读入Calibre DRC 的结果, Encounter 可以直接读入Calibre 的运行结果。
14)对于memory 的自动摆放, Encounter 比Astro/JupiterXT 更规则些,更利于使用者在此基础上调整。
Encounter 的relative floorplan 很强大,
对于几百个block 的摆放很有效率。
9)如果版图中需要手动拉线, Astro 中Customer wire 的命令没有Encounter 的智能, 不能自动识别伸缩,换层和打孔。
10)为hard block 做Macro padding 时,Astro 能根据block 的pin 的多少调整padding,而
Encounter 没有该功能的支持,需要使用者自己脚本解决。
11)对于Hierarcical Methodology 的支持,Astro/JupiterXT 和Encounter 相比略逊一筹,Encounter 的Partition 功能比较强大,而且可以自动产生
block-level 的工作环境和数据。
12)对于通过脚本加soft blockage, Astro 可以轻松实现,而Encounter 只支持图形化操作,
脚本实现比较麻烦。
13)C alibre 的强大有目共睹,但Astro 没有提供Calibre 的接口,不能读入Calibre DRC 的
结果,Encounter 可以直接读入Calibre 的运行结果。
14)对于memory 的自动摆放,Encounter 比Astro/JupiterXT 更规则些,更利于使用者在此基础上调整。
Encounter 的relative floorplan 很强大,
对于几百个block 的摆放很有效率。
15)Astro 的Online DRC 很少出现false violation, 而Encounter 的Online DRC 常常会有False Violation ,容易造成误导,不利于快速检查。
16)P ower network 的自动synthesis, Astro/JupiterXT 的结果差强人意,Encounter 的template 功能非常强大,当然这一功能都只能用于快速的
overview ,不推荐做为最终的powerplan 。
17)Astro 中把某个命令运行log 重定向到一个文件使用” >”就可以,而Encounter 很多命令不支持这种简单的重定向。
18)对于CTS 的查看和debug,Astro 查看和修改的工具速度比较慢,不太好使用,Encounter 查看和调试时钟树爆所以对于手动fix DRC ,Astro 更胜一筹
,Encounter 就必须借助ICFB 了。
9)如果版图中需要手动拉线,Astro 中Customer wire 的命令没有Encounter 的智能,不能自
动识别伸缩,换层和打孔。
10)为hard block 做Macro padding 时,Astro 能根据block 的pin 的多少调整padding,而Encounter 没有该功能的支持,需要使用者自己脚本解决。
11)对于Hierarcical Methodology 的支持, Astro/JupiterXT 和Encounter 相比略逊一筹, Encounter 的Partition 功能比较强大,而且可以自动产生
block-level 的工作环境和数据。
12)对于通过脚本加soft blockage, Astro 可以轻松实现,而Encounter 只支持图形化操作, 脚本实现比较麻烦。
13)C alibre 的强大有目共睹,但Astro 没有提供Calibre 的接口,不能读入Calibre DRC 的结果, Encounter 可以直接读入Calibre 的运行结果。
14)对于memory 的自动摆放, Encounter 比Astro/JupiterXT 更规则些,更利于使用者
在此基础上调整。
Encounter 的relative floorplan 很强大,
对于几百个block 的摆放很有效率。
15)Astro 的Online DRC 很少出现false violation, 而Encounter 的Online DRC 常常会有False Violation ,容易造成误导,不利于快速检查。
16)P ower network 的自动synthesis, Astro/JupiterXT 的结果差强人意, Encounter 的template 功能非常强大,当然这一功能都只能用于快速的
overview ,不推荐做为最终的powerplan 。
17)A stro 中把某个命令运行log 重定向到一个文件使用” >”就可以,而Encounter 很多命令不支持这种简单的重定向。
18)对于CTS 的查看和debug, Astro 查看和修改的工具速度比较慢, 不太好使用, Encounter 查看和调试时钟树比较容易些,配合Design Brower 工具使
用起来很方便。
就想到这些了,以后有空再补充。
当然两个工具都是Bug 多多,相信各位都深有体会。
抛砖引玉,如有雷同,纯属缘份。