Skip to content

Latest commit

 

History

History
199 lines (140 loc) · 9.88 KB

README-CN.md

File metadata and controls

199 lines (140 loc) · 9.88 KB
iEDA-logo

iEDA

从 Netlist 到 GDS 的开源数字芯片设计 EDA 基础设施和工具

Project Version Node Version License
GitHub Watchers GitHub Stars GitHub Forks

简体中文 | English

Open-source is not a goal but a way

开源不是目的,而是实现方式

iEDA Homepage:ieda.oscc.cc

iEDA 介绍总览

  • 1 EDA Infrastructure、11 EDA Tools、4 times tape-out design by iEDA
    • Level 1: Open-source EDA, RTL, PDK, supporting chip design;
    • Level 2: Open-source Infrastructure supports EDA development and research
iEDA_tapeout

iEDA 基础平台和工具

  • To fast develop high-quality EDA tool, we need a Software Development Kit (SDK)
  • iEDA can be used to support developing EDA tool or algorithm
  • Infrastructure: Database, Manager, Operator, Interface
iEDA_tapeout

iEDA 流片

iEDA_tapeout

🎉 News:

https://ieda.oscc.cc/en/publicity/news/


论文和报告

  • iRT: Net Resource Allocation: A Desirable Initial Routing Step, DAC, 2024
  • iCTS: Toward Controllable Hierarchical Clock Tree Synthesis with Skew-Latency-Load Tree, DAC, 2024
  • AiEDA: An Open-source AI-native EDA Library, ISEDA, 2024
  • iEDA: An Open-source infrastructure of EDA (invited), ASPDAC, 2024.
  • iPD: An Open-source intelligent Physical Design Tool Chain (invited), ASPDAC, 2024.
  • AiMap: Learning to Improve Technology Mapping for ASICs via Delay Prediction, ICCD, 2023
  • iPL-3D: A Novel Bilevel Programming Model for Die-to-Die Placement, ICCAD, 2023.
  • iEDA: An Open-source Intelligent Physical Implementation Toolkit and Library, ISEDA, 2023. (BPA) [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 --recursive 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 快速傅立叶变换库.
hMETIS hMETIS 高效的图划分算法.
lemon lemon 图、网络中的高效建模和优化.
SALT SALT 生成VLSI路由拓扑,在路径长度(浅度)和总线长(亮度)之间进行权衡.
scipoptsuite SCIP 用于快速求解混合整数规划 (MIP) 和混合整数非线性规划 (MINLP) .
mt-kahypar mt-kahypar 多线程超图划分器.

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