eFPGA设计开源框架 OpenLane 系列(一)开发环境搭建

我是 雪天鱼,一名FPGA爱好者,研究方向是FPGA架构探索。

关注公众号【集成电路设计教程】,获取更多学习资料,并拉你进“IC设计交流群”。
QQIC设计交流群 群号:866169462

通过 FABulous 所提供的唯一一个 demo 来学习下 eFPGA Fabric 的建模方法。
目前在研究eFPGA,学术界目前最新发表了用于RTL TO GDSII Flow 的开源框架 OpenLane

后续我的研究会使用到该框架,故先进行开发环境搭建,过程记录如下。

VersionDate
V1.02022.1.30

一、代码下载编译

系统:ubuntu20.04

1.1 依赖

  • Docker 19.03.12+
  • GNU Make
  • Python 3.6+ with PIP
  • Click, Pyyaml:

(1)Docker的安装可参考我之前博客OpenFPGA系列(一)开发环境搭建 2.1节
(2)GNU Make的安装教程很多,自行搜索
(3)Python建议下载Anaconda,方便后续建立虚拟环境来进行管理,可参考我之前的博客PyTorch深度学习入门笔记(一)PyTorch环境配置及安装 1.1节
(4)在(3)步完成后,打开终端,输入下述命令:

conda create -n openlane python=3.7
source activate openlane 
pip install pyyaml 
pip install click

即创建一个 名为openlane python版本为 3.7 的虚拟环境,并激活环境安装python包。(由于我已经创建过了一个名为 FABulous 的虚拟环境,所以接下来我都是在此虚拟环境下进行操作的)

1.2 代码下载

注:完整编译后,所需空间是37.4GB,提前检查存储空间是否足够。
在这里插入图片描述

在存放目录下,打开终端,输入:

  git clone https://github.com/The-OpenROAD-Project/OpenLane.git

在这里插入图片描述
下载完成后输入:

cd OpenLane
make pull-openlane

在这里插入图片描述
如果报下述错误:

docker: Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).

就修改docker镜像源,docker默认的源为国外官方源,下载速度较慢,可改为国内,进行加速。更换Docker镜像源参考博客

FULL_PDK=1 make pdk

获取SkyWater130nm 开源PDK,这里我选择下载完整的PDK,默认保存到 OpenLane/pdks/skywater-pdk 路径下
这个过程中所遇到的问题:

ConfigurationLoadError: Unable to load configuration file.
  path: /home/jc-cao/Disk_sda3/Fudan_FPGA/OpenLane/pdks/skywater-pdk/env/conda/.condarc
  reason: invalid yaml at line 3, column 0

在这里插入图片描述
错误原因:由于当前所在虚拟环境是FABulous,有其自己的配置文件,所以无法将OpenLane/pdks/skywater-pdk/env/conda/.condarc作为配置文件加载。
解决方法:删除OpenLane/pdks/skywater-pdk/env/conda/.condarc,重新输入命令make pdk
在这里插入图片描述

到这里OpenLane的开发环境便编译搭建好了。
*注:
(1)执行 make pdk过程中遇到的其他问题,可以查看第二节 make pdk 解析进行解决,在此不再赘述。
(2)我的虚拟机总是下载包时卡住,以为是梯子的问题,后来检查了发现不是,而是因为有线连接导致的,换成了WIFI后就可以了。
*

1.3 测试

然后在 openlane 的根目录,先激活虚拟环境,我的命名为了 FABulous,即source activate FABulous,再输入 make test 开始测试:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到测试通过了,说明编译没有问题!

后续将使用此框架进行一些 RTL to GDS Flow的测试

二、make full-pdk 解析

2.1 pdk.mk解析

注;2022年1月29号OpenLane进行了一次更新,目前pdk环境搭建指令是 make pdk,通过变量 FULL_PDK
来设置是否获取完整的 PDK。下述的错误记录及解决方法适用于之前版本,现在仅供参考。

full-pdk是个伪目标,在 OpenLane/dependencies/pdk.mk 中定义:
在这里插入图片描述
包括五个子伪目标,一个个来进行查看分析:

  • skywater-pdk
    在这里插入图片描述
  • all-skywater-libraries
    在这里插入图片描述
  • open_pdks
    在这里插入图片描述
  • build-pdk
    在这里插入图片描述
    我在编译是,卡在了第90行:
    在这里插入图片描述
    这是因为我的 docker 需要 root权限才能运行,那么让其运行时加个 sudo就可以解决问题 ,
    ENV_COMMAND 变量在 OpenLane/Makefile第76行定义:
    那么加个sudo就行:
    在这里插入图片描述
    重新输入 make full-pdk 测试,可以看到sudo后就可以正常继续编译了
    在这里插入图片描述

2.2 卡住了怎么办?

我pdk.mk的105行,编译目标 gen-sources卡住了
在这里插入图片描述
那么此时为了避免重复编译之前编译过的目标,则直接将 gen-sources 目标对应的命令给复制到单独的一个文件中,并将 gen-sources 改名为 gen-sourcestwo:
在这里插入图片描述
(1)给变量进行赋值
(2)将 gen-sourcestwo 设置为伪目标
将此文件命名为 pdk2.mk,放在openlane的根目录下,然后输入

make -f pkd2.mk

在这里插入图片描述
source文件:
在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Openlane拓扑结构是指在芯片设计中使用的一个开源工具链。它是一个集成了多个工具和脚本的工具流程,用于实现芯片设计的全自动化布局和布线过程。 Openlane拓扑结构的核心是一个基于TritonRoute的全自动化布线引擎。它使用了开源的工具和库,如Magic、Yosys、Netlist等,能够处理从逻辑综合到布局和布线的所有步骤。通过使用Openlane,芯片设计师可以将自己的设计从RTL代码转化为布局和布线,并最终生成可制造的版图。 Openlane的拓扑结构具有多个关键特点。首先,它支持多种开源工具的集成,可以根据设计师的需求进行自定义配置。其次,它具有高度可扩展性和灵活性,可以适应各种设计规模和复杂度。此外,Openlane还提供了一套完善的文档和教程,使得使用者可以快速上手并掌握工具的使用技巧。 Openlane拓扑结构在芯片设计领域具有广泛的应用。它可以用于各种类型的芯片设计,如ASICFPGA和SoC设计等。通过使用Openlane,设计师可以节省大量的时间和精力,提高芯片设计的效率和质量。同时,作为一个开源工具链,Openlane还促进了芯片设计社区的合作与共享,推动了芯片设计的进步和创新。 总结来说,Openlane拓扑结构是一个用于芯片设计开源工具链,它实现了全自动化的布局和布线流程。它具有高度可扩展性和灵活性,支持多种工具的集成,适用于各种规模和复杂度的设计。通过使用Openlane,芯片设计者可以快速、高效地完成芯片设计,提高设计质量和效率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雪天鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值