IC项目,门级代码的工艺库移植

应用背景

IC项目,要求工艺从90nm移植到45nm环境。但是有一些模块,只有门级代码描述,而非RTL代码描述。

笨方法

针对门级代码,替换单元名称,替换单元的端口信号。

最佳方法

以DC综合为例,利用综合工具,实现门级代码的工艺库移植。
1. DC综合,吃库文件的时候,有link_librarytarget_library,分别对应源代码转换为DC综合库过程、以及DC综合库转换为最终目标库过程。
2. link_library吃90nm的标准单元库;
3. target_library吃45nm的标准单元库;
4. 由此实现应用要求。优势是没有人为改动,节省大量工作量。可以看做是完美移植,基本无需验证。
5. 最终用LEC,即形式化验证工具,比较90nm门级网表和45nm门级网表,达到完美验证效果。这一步骤是必要的,因为即便RTL综合,也需要做LEC,因为不能相信综合过程没有错误。
6. 如果有RAM单元,还需要RAM替换。这一步只能手动,因为RAM是不可综合的。

关于RAM单元的替换思路

假设有100种(共计200个实例化单元)RAM单元,实际类型肯定只有1r/1r1w/1rw/2r2w等4~5种。
最普遍的做法是,100种RAM单元,建立100个module。
还有一种做法是,利用参数不同,和verilog generate用法;只需要4~5个module声明。但是实例化部分就要修改200个实例化的名称。

综上所述,上述两种做法,没有太多区别。不过,个人仍然喜欢第二种做法,因为修改代码量会少很多;这样验证关心的内容也相应减少了。

另外,做RAM替换这样的行为,建议每一步骤,均使用shell或者perl脚本实现;这样可以提供一种验证软思路,用于多次检查代码修改的质量。
还有一点,做这种大量替换行为,一定要做好代码版本管理,利用svn或者git;git本地代码版本管理,相对svn,更方便一些。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值