iFlow使用docker环境运行

今天尝试了一下iFlow,很不错。没有bug,但是docker里面运行到最后显示的版图显示还是有一些问题,应该是klayout需要在桌面端运行。

但是我需要一个自动记录命令行输出的工具,运行结果找不到了。

最后生成的结果文件为:

iFlow使用

在拉取docker镜像后,使用命令进入docker:

docker run -it --name iflow iedaopensource/iflow bash

也可以自己构建:(考虑到后面出现的Qt动态链接库的bug,这里直接先考虑一下)

# syntax=docker/dockerfile:1
ARG BASE_IMAGE=ubuntu:20.04
FROM ${BASE_IMAGE}
LABEL maintainer="https://hub.docker.com/u/iedaopensource"

ARG IFLOW_WORKSPACE=/opt/iFlow
ADD https://gitee.com/oscc-project/iFlow.git ${IFLOW_WORKSPACE} 

ENV TZ=Asia/Shanghai

RUN ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime && \
    export DEBIAN_FRONTEND=noninteractive           && \
    bash ${IFLOW_WORKSPACE}/build_iflow.sh          && \
    rm -rf ${IFLOW_WORKSPACE}/tools/lemon-1.3.1*    && \
    apt-get autoremove -y && apt-get clean -y

RUN strip --remove-section=.note.ABI-tag /usr/lib/x86_64-linux-gnu/libQt5Core.so.5

WORKDIR ${IFLOW_WORKSPACE}/scripts

# docker build -t iflow .

进入后运行生成后端文件的脚本:

./run_flow.py -d aes_cipher_top -s synth,floorplan,tapcell,pdn,gplace,resize,dplace,cts,filler,groute,droute,layout -f sky130 -t HS -c TYP -v V1 -l V1

使用docker compose和docker run的区别:

docker compose可以每次****docker compose up运行即可,而不会重复创建镜像

但是如果使用****docker run会创建重复的容器,比较麻烦。

跑上述的脚本的时候,出现了一个报错:

libQt5Core.so.5:cannot open shared object file: No such file or directory

网上找到的解决办法:

strip --remove-section=.note.ABI-tag /usr/lib/x86_64-linux-gnu/libQt5Core.so.5

原帖子链接

最后生成的芯片版图文件:

版图文件

如果前面步骤都做好了,可以直接使用最后一步用layout显示版图文件:

./run_flow.py -d aes_cipher_top -s layout -f sky130 -t HS -c TYP -v V1 -l V1
dark
sans