Skip to content

immelon0097/iEDA

 
 

Repository files navigation

iEDA-logo

iEDA

从 Netlist 到 GDS 的开源芯片设计 EDA 平台

License

简体中文 | English

iEDA 主页:ieda.oscc.cc


🎉 最新消息:

关注我们8月24日在北京 RISC-V 中国峰会 2023 上举办的 开源EDA论坛(OSEDA 论坛),和8月25日的 开源芯片技术生态论坛


关于iEDA

  • 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

iEDA主要内容和规划

  • 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
iEDA_framework

iEDA Structure

iEDA_structure

iEDA Infrastructure

iEDA_infrastructure

iEDA Operations (Tools)

iEDA_operation

iEDA Tapeout

iEDA_tapeout

论文和报告

  • ISEDA 2023: iEDA:An Open-Source Intelligent Physical Implementation Toolkit and Library [paper, slides]

iEDA 使用指导

使用 iEDA 进行芯片设计,需首先获得 iEDA 可执行文件。

若您需要对 iEDA 进行修改,通过源码构建,请按照顺序阅读。

您也可以直接使用最新的 iEDA docker 镜像,即可跳过 "1. 源码构建 iEDA"。

PS: 关于如何安装 Docker,可参考Docker安装及初始化

1. 源码构建 iEDA

我们提供两种源码构建 iEDA 的方法作为示例。

方法1 使用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可选。

方法2 手动安装依赖并编译

在 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

2. 使用 iEDA 完成芯片设计

详细内容请移步至 iEDA 用户手册

贡献指南

Fork 此 iEDA 仓库,修改代码后提交 Pull Request

请注意 iEDA 使用的编程规范

讨论和反馈

  • 新建 issue,我们将及时反馈。
  • QQ 群:793409748
  • 微信讨论群:
微信讨论群

License

木兰宽松许可证, 第2版

致谢

在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文件 .

我们深深地感谢来自开源社区的支持,我们也鼓励其他开源项目在木兰宽松许可证的范围下复用我们的代码。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 89.6%
  • Verilog 4.8%
  • C 2.8%
  • CMake 1.6%
  • Tcl 0.9%
  • Shell 0.1%
  • Other 0.2%