iEDA 主页:ieda.oscc.cc
🎉 最新消息:
关注我们8月24日在北京 RISC-V 中国峰会 2023 上举办的 开源EDA论坛(OSEDA 论坛),和8月25日的 开源芯片技术生态论坛
- About “i”in iEDA
- Meaning 1: Infrastructure
- Meaning 2: Intelligent
- The goal of the iEDA project
- EDA Infrastructure
- High quality and performance EDA tool
- Open-source is not a goal but a way
- Enhance the infrastructure to support more design requirement
- Complete the EDA tool chain from RTL-GDS II
- Improve the quality and performance of all EDA tool operations
- Construct AI for EDA platform and introduce trained AI model to the EDA platform
- Build data system with enough chip design and labeling process data
- Achieve the adaptability of the EDA platform for cloud-native
- ISEDA 2023: iEDA:An Open-Source Intelligent Physical Implementation Toolkit and Library [paper, slides]
使用 iEDA 进行芯片设计,需首先获得 iEDA 可执行文件。
若您需要对 iEDA 进行修改,通过源码构建,请按照顺序阅读。
您也可以直接使用最新的 iEDA docker 镜像,即可跳过 "1. 源码构建 iEDA"。
PS: 关于如何安装 Docker,可参考Docker安装及初始化。
我们提供两种源码构建 iEDA 的方法作为示例。
从 Dockerhub 上下载最新的 iedaopensource/base 镜像,镜像中包含了最新的 master 分支代码和依赖(构建工具和依赖库)。也可使用 -v
命令挂载自行下载的 iEDA 代码仓库,仅使用镜像提供的编译工具和依赖库进行构建。
参考如下命令,进入容器后的当前目录即为 iEDA master 分支代码。
# iedaopensource/base:(latest, ubuntu, debian)
docker run -it --rm iedaopensource/base:latest bash
# 进入容器后执行 build.sh 进行构建
bash build.sh
# 若能够正常输出 "Hello iEDA!" 则编译成功
./bin/iEDA -script scripts/hello.tcl
根据个人使用习惯,有 ubuntu(基于Ubuntu20.04)和 debian(基于Debian11)两种不同镜像tag可选。
在 Ubuntu 20.04 下执行如下命令:
# 下载iEDA仓库
git clone https://gitee.com/oscc-project/iEDA.git iEDA && cd iEDA
# 通过apt安装编译依赖,需要root权限
sudo bash build.sh -i apt
# 编译 iEDA
bash build.sh
# 若能够正常输出 "Hello iEDA!" 则编译成功
./bin/iEDA -script scripts/hello.tcl
详细内容请移步至 iEDA 用户手册
Fork 此 iEDA 仓库,修改代码后提交 Pull Request。
请注意 iEDA 使用的编程规范。
- 新建 issue,我们将及时反馈。
- QQ 群:793409748
- 微信讨论群:
在iEDA的开发过程中,我们采用了来自开源社区的子模块。具体情况如下:
子模块 | 来源 | 详细用途 |
---|---|---|
flute3 | FastRoute | 借助flute3来产生rectange steiner tree. |
abseil-cpp | Google abseil | 使用Google的高性能C++容器和算法库提升性能,相比STL会改进程序性能. |
json | JSON for Modern C++ | Json C++库,用来解析程序Json配置文件. |
magic_enum | Static reflection for enums (to string, from string, iteration) | 支持 enum 值和字符串的相互转换. |
libfort | Seleznev Anton libfort | C/C++ library 产生格式化的 ASCII tables. |
pegtl | PEGTL(Parsing Expression Grammar Template Library) | 使用PEGTL来方便的解析SPEF文件. |
pybind11 | pybind 11 | 方便python调用C++. |
VCDParser | ben-marshall verilog-vcd-parser | 解析功耗VCD波形文件. |
def lef | def lef parser | 解析物理设计DEF/LEF文件. |
ThreadPool | Jakob Progsch, Václav Zeman threadpool | C++11模板库实现的多线程池. |
fft | fft | 快速傅立叶变换库. |
hmetics | hmetics | 高效的图划分算法. |
lemon | lemon | 图、网络中的高效建模和优化. |
SALT | SALT | 生成VLSI路由拓扑,在路径长度(浅度)和总线长(亮度)之间进行权衡. |
scipoptsuite | SCIP | 用于快速求解混合整数规划 (MIP) 和混合整数非线性规划 (MINLP) . |
parser/liberty | OpenROAD/OpenSTA/liberty | 解析.lib文件 . |
parser/verilog | OpenROAD/OpenSTA/verilog | 解析netlist文件 . |
parser/spef | OpenTimer/spef | 解析spef文件 . |
我们深深地感谢来自开源社区的支持,我们也鼓励其他开源项目在木兰宽松许可证的范围下复用我们的代码。