mipsgreen的个人空间 http://blog.eetop.cn/806108 [收藏] [复制] [RSS]

日志

openLANE的RTL2GDS fow,基于google skywater 130nm opensource PDK

热度 11已有 4241 次阅读2020-10-1 23:38 |系统分类:芯片设计| PDK, google, skywarter, sky130, RTL2GDS

openLANE的RTL2GDS fow,基于google skywater 130nm opensource PDK

这里介绍的是一种最快捷的方法, 我们将使用efabless的openlane docker 镜像

我用的WSL2,跑的是ubuntu 18.04, 首先安装和启动docker服务
记得如果没有设置docker服务自动加载, 每次重启电脑进来都要手动启动docker服务。
$sudo apt install docker
$sudo service docker start

这里需要说一下,可能是我这个docker版本的问题, WSL2里跑基于centos6的docker 镜像会出exit 139,

网上找到的办法是在%USERPROFILE%/.wslconfig加入如下启动配置:
[wsl2]
kernelCommandLine = vsyscall=emulate

保存,重启电脑后, 问题解决。

下面pull openlane的镜像:
$sudo docker pull efabless/openlane

efabless目前维护openlane flow比较积极, 所以这个image也是比较新的。

这个image几百M, 解压后1.5G左右吧, pull也比较快。
有了这个image, 我们可以docker启动它,它里面已经安装了openlane flow所需的所有toolsets, 但是并没有process相关的designkits.
我们需要单独先准备好process 相关的database, 这里我们需要的是google skywater 130nm PDK.
skywater-pdk目前还在更新, c/s的flow都还没有完整的数据, 不过基于open source的rtl2gds flow目前都可以跑了。
google github上的skywater-pdk只是一个configure环境, process数据需要submodule update, 非常巨大,国内网络很难正常下载。
我是用国外的vpn服务器走的这部分流程, 产生的database可以直接跑apr flow, 放到网盘上,可直接下载使用。

下面的sky130A 解压后, 需要在sky130A目录上级设置PDK_ROOT环境变量, 比如如果文件下载到~/temp/skywater-pdk

$cd ~/temp/skywater-pdk
$tar -xvzf sky130A_v20200827.tgz
$export PDK_ROOT=`pwd`

完工后, 启动efabless/openlane镜像:

$sudo docker run -it -v $PDK_ROOT:$PDK_ROOT -e PDK_ROOT=$PDK_ROOT -u $(id -u root):$(id -g root) efabless/openlane
说明一下:
  •  -v $PDK_ROOT:$PDK_ROOT是把我们主机上的PDK目录结构原封不动的映射到docker映像
  • -e PDK_ROOT=$PDK_ROOT这个是在docker image里面设置PDK_ROOT环境变量, 跑openlane flow用的。
  • -u $(id -u root):$(id -g root), 为了修改文件方便, 我们直接用了root账户登录到image

正常情况下, 进入到我们的openlane image, 默认的目录是image里面自带的openlane project目录: /openLANE_flow

在跑flow之前, 需要做个小的改动, 新版本的openlane flow不在使用$PDK_VARIANT变量, 但我们的skywater-pdk里面用了,
所有要在openlane 里面加上, 修改文件为:/openLANE_flow/configuration/general.tcl
在文件里面加入 set ::env(PDK_VARIANT) "sky130_fd_sc_hd" 即可:
# default pdk
set ::env(PDK) "sky130A"
set ::env(PDK_VARIANT) "sky130_fd_sc_hd" # <<< 

这里sky130_fd_sc_hd是我们的stdcell process,  网盘上的sky130A里面只包括了sky130_fd_sc_hd 和 sky130_fd_sc_hdll两种prcocess variants.

然后, 可以跑下openlane里面的designs检查下环境, 在/openLANE_flow目录下:
$./flow.tcl -design picorv32a

正常情况下,流程跑完, 可以根据输出提示到designs/picorv32a/runs目前路下看各种报告,

产生的gds数据在designs/picrorv32a/runs/XX-XX_XX-XX/results/magic目录下,
openLANE flow用magic完成gds stream/out和DRC
我们这个docker image不这次UI, 所有如果查看GDS, 可以从将数据复制到本地,操作如下:
首先找到运行我们image的docker contAIner:
$sudo docker ps

我们需要用container_ID来进行操作,  

把gds所在的magic目录压缩下,整个目录都复制过来,  目录下有magic的initial文件.magcrc
$sudo docker cp container_ID://openLANE_flow/designs/picorv32a/path/to/gds .

本机安装Magic, 整个还是比较顺利:

$git clone git://opencircuitdesign.com/magic
$git checkout magic-8.3
$cd magic
$./configure && make
$sudo make install

进入我们的GDS目录即可打开。 注意我们本地安装的sky130A路径,.magcrc文件要找相关的tech文件。

$ magic picorv32a.gds

下面来一张截图, 以示真相!

magic.png

发表评论 评论 (2 个评论)

回复 关森陌 2020-10-12 11:34
请问你事怎么搞定PDK下载的?方便的话能否出个教程?
回复 mipsgreen 2020-10-15 09:25
关森陌: 请问你事怎么搞定PDK下载的?方便的话能否出个教程?
我是用阿里云在HK的ECS云服务器。。。用其他的VPN服务器应该也可以。 配置1核/1G内存, 40G硬盘的就应该够用了。

facelist

您需要登录后才可以评论 登录 | 注册

关闭

站长推荐上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询 |  EETOP 创芯网 ( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2020-10-27 14:13 , Processed in 0.030511 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

返回顶部