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

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

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

热度 18已有 7502 次阅读| 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


点赞

发表评论 评论 (9 个评论)

回复 关森陌 2020-10-12 11:34
请问你事怎么搞定PDK下载的?方便的话能否出个教程?
回复 mipsgreen 2020-10-15 09:25
关森陌: 请问你事怎么搞定PDK下载的?方便的话能否出个教程?
我是用阿里云在HK的ECS云服务器。。。用其他的VPN服务器应该也可以。 配置1核/1G内存, 40G硬盘的就应该够用了。
回复 阎浮提 2020-11-5 10:54
必须点赞。这东西都弄下来还挺麻烦的,尤其只支持开源EDA工具,特别折腾,能弄出来非常佩服
回复 ra3d 2020-11-9 06:13
PDK
https://github.com/google/skywater-pdk
https://skywater-pdk.readthedocs.io/en/latest/
回复 oioeic 2020-11-13 20:11
非常感谢,用了这个SKY130A的包,终于跑通了。楼主有香港的云主机,要不直接下了传到gitee建了仓库,就更方便大家了
回复 caoluniu 2021-2-25 22:35
这个牛X。厉害
回复 zhwps 2021-3-19 10:44
请教magic怎么分层显示?选择显示某些层?
回复 轩辕志瑜 2021-8-18 04:55
zhwps: 请教magic怎么分层显示?选择显示某些层?
直接在旁边那双击,出现删除线就意味着隐藏了。
回复 fiveclaw 2022-5-18 15:26
非常感谢. 請問在 OpenLane 內怎麼編輯哪 general.tcl, 是用什麼指令 ?

.....


已解決, 謝謝 !

facelist

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

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 4

    粉丝
  • 4

    好友
  • 0

    获赞
  • 13

    评论
  • 452

    访问数
关闭

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


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

GMT+8, 2024-12-18 23:26 , Processed in 0.025628 second(s), 15 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部