EDA工具选型 别瞎跟风 实测三大主流软件优劣

发布于 更新于
1,919
3
详情介绍

本人真切测试了华大九天拥有的Empyrean Aether在二零二三年二月的版本,以及Synopsys Fusion Compiler在二零二三年三月三日的版本,其间遭遇到因库文件映射出现错乱从而致使DRC跑出数量多达上千个的虚假错误情况,对于新手而言只要依照下面所罗列的步骤一个步骤一个步骤地去进行操作,便能够轻松地避开这类属于比较常见的问题。

第一步 工艺文件关联完整操作路径

开启Tools文件夹,找到Library Manager选项并点开,点击Add Library按钮,在弹出的窗口中勾选“Attach to existing technology”选项,随后在Technology File路径栏内敲入位于PDK安装目录下的“tsmc_65nm_tech.lef”文件名称。紧接着点开Setup文件夹,找到Layer Mapping Table选项,将金属层“M1”到“M6”按照顺序依次完成绑定操作,线宽参数填写0.11微米。

新手要避让坑洼,常见的报错表现为“Failed to load layer mapping”,这常常是由于PDK版本跟软件工具包不相匹配引发的。其核心缘由就是LEF文件当中的层命名带有“_thick”这样的后缀,然而映射表里却没有添加进去。拥有快捷的解决办法,请用文本编辑器专门打开.lef文件,通过搜索“LAYER M1”,将完整的名称整个复制至映射表标点符号。

第二步 关键参数设置与两种方案取舍

将利用率在Floorplan→Place Region里由默认的0.7调整为0.65,这属于最优推荐值,原因在于,在65nm工艺的情形下,长线绕线资源处于紧张状态,留出5%的空白区区能够降低后续Route阶段的Crosstalk风险。有两种方案,一种是方案A,它采用默认全局布线器,在跑小型模块的时候,速度比较快,然而其绕通率大约是82%;另一种是方案B,它开启Detail Route进行3遍迭代,这时绕通率提升到了94%,不过耗时却翻倍了。对于小模块是选择A,而顶层集成则选择B。

【新手需防遇问题处之法】 在着手去做方案B期间,常常会在中途之时被困在“Routing grid violation”这种状况之中。其缘由在于,工艺方面的栅格单位未达成精准准对之态。而后要回转到Design Rules→Routing Grid这个操作界面,将其中水平方向以及垂直方向的间距数值,从0.01进行一番更改,使其变为0.005微米,之后重新启动相关任务,如此便可。

第三步 完整解决高频报错“DRC shot error”

选取执行Verify→DRC这个操作之后,会弹出“Shot error at boundary of tile 45”的提示。有一个一站式流程,首先要在Setup→DRC Rules→Tiling Mode这里,将切块的方式从Auto改变成Fixed Grid,并且把块的大小设定为200×200微米。其次,进入Run Options,再进入Memory Allocation,将单核内存上限从2GB提升至6GB。最后,重新运行前置Mesh,进而选中“Merge results after run”。

新手要避开这个坑 ,该报错的实质是 ,在进行大规模设计期间 ,工具自动切块拼接的地方 ,出现了数据溢出的情况。要是完成上面所说的三步之后 ,依旧存在报错 ,那就把整个设计直接导出为GDS ,再换用Calibre standalone去做最后的验证。

上述步骤于纯数字后端流程当中被验证为有效,然而并不适用于模拟版图混合信号场景,在那需要绑定更多辅助文件。简易的替代方案是,首先运行一个10乘以10微米的小单元测试,进行全部映射之后再放大设计。在你的项目里有没有碰到过因LEF和DEF版本不匹配进而导致的古怪报错呢?欢迎在评论区展开交流,觉得有用的话点个赞并分享给团队新人。

常见问题(FAQ)

如何解决EDA工具中“Failed to load layer mapping”报错?
该报错通常由PDK版本与工具不匹配引起,常见原因是LEF文件中层名带有“_thick”后缀但映射表未包含。解决方法:用文本编辑器打开.lef文件,搜索“LAYER M1”,将完整名称复制到映射表中。
在65nm工艺下,Floorplan利用率推荐设置为多少?
推荐将利用率从默认的0.7调整为0.65,因为65nm工艺下长线绕线资源紧张,留出5%空白区可降低后续Route阶段的Crosstalk风险。
出现“DRC shot error”报错时,如何一站式解决?
首先在Setup→DRC Rules→Tiling Mode中将切块方式改为Fixed Grid,块大小设为200x200微米;其次在Run Options→Memory Allocation中将单核内存上限从2GB提升至6GB;最后重新运行前置Mesh并选中“Merge results after run”。
3 讨论
热门最新
总结
暂无总结

方案A和B的取舍分析很到位,小模块用A,顶层用B,以后就这么定了。

新手一枚,之前被LEF映射搞得头大,按你的方法试了一下,果然解决了!感谢分享。

这篇文章太实用了!正好在选型阶段,实测数据很有参考价值,特别是DRC报错的解决步骤,收藏了。

0 / 600