
CIRCT(Circuit IR Compilers and Tools)是一个开源的电路中间表示(IR)编译器和工具项目。该项目致力于将MLIR(Multi-Level Intermediate Representation)和LLVM开发方法论应用于硬件设计工具领域,旨在构建一个更加一致、模块化和可重用的基础设施。
CIRCT的名称可以递归地解释为"CIRCT IR Compiler and Tools"。项目名称中的"T"可以灵活地扩展为Tool(工具)、Translator(转换器)、Team(团队)、Technology(技术)、Target(目标)、Tree(树)、Type(类型)等,项目组对这种模糊性持开放态度。
电子设计自动化(EDA)行业拥有众多广泛使用的专有和开源工具。然而,这些工具往往存在以下问题:
CIRCT项目是一项实验性努力,旨在将MLIR和LLVM的开发方法应用于硬件设计工具领域。项目的目标是构建一个可重用的基础设施,具有以下特点:
通过共同努力,CIRCT希望能够形成一个新的重心,吸引开源硬件工具领域的贡献者。这将推动开源工具的发展,实现硬件设计的新的高级抽象,并有可能被专有工具采用部分技术。
CIRCT是一 个开放和欢迎新成员的社区。如果你有兴趣参与,可以通过以下方式:
加入LLVM Discourse服务器上的CIRCT论坛。要获得类似邮件列表的体验,可以点击右上角的铃铛图标并切换到"Watching"。
加入LLVM discord服务器的CIRCT频道进行实时讨论。
参加每周的视频会议。详细信息请查看会议记录文档。
贡献代码。CIRCT遵循所有LLVM政策:你可以为CIRCT仓库创建pull request,并按照标准LLVM政策获得提交权限。
CIRCT项目包含多个方言(Dialect),用于表示不同抽象级别的硬件设计。下图展示了当前的方言及其相互关系:
主要方言包括:
这些方言之间可以进行转换和优化,形成一个完整的编译流程。
要设置CIRCT项目,可以按照以下步骤操作:
安装LLVM/MLIR的依赖项,包括cmake和ninja。
克隆CIRCT仓库及其LLVM子模块:
git clone git@github.com:llvm/circt.git cd circt git submodule init git submodule update
cd circt mkdir llvm/build cd llvm/build cmake -G Ninja ../llvm \ -DLLVM_ENABLE_PROJECTS="mlir" \ -DLLVM_TARGETS_TO_BUILD="host" \ -DLLVM_ENABLE_ASSERTIONS=ON \ -DCMAKE_BUILD_TYPE=DEBUG ninja ninja check-mlir
cd circt mkdir build cd build cmake -G Ninja .. \ -DMLIR_DIR=$PWD/../llvm/build/lib/cmake/mlir \ -DLLVM_DIR=$PWD/../llvm/build/lib/cmake/llvm \ -DLLVM_ENABLE_ASSERTIONS=ON \ -DCMAKE_BUILD_TYPE=DEBUG ninja ninja check-circt ninja check-circt-integration # 运行集成测试
这将编译CIRCT及其所有依赖项,并运行测试套件以确保一切正常工作。
CIRCT提供了多个工具和库,可以用于硬件设计和验证:
此外,CIRCT还提供了Python绑定,允许在Python脚本中使用CIRCT的功能。
作为一个实验性项目,CIRCT正在快速发展中。未来的发展方向包括:
CIRCT项目欢迎来自学术界和工业界的贡献,共同推动开源硬件设计工具的发展。
CIRCT项目为硬件设计工具带来了现代编译器基础设施的优势。通过应用MLIR和LLVM的开发方法,CIRCT旨在构建一个更加一致、模块化和可扩展的硬件设计生态系统。尽管仍处于实验阶段,但CIRCT已经展现出了巨大的潜力,有望为硬件设计领域带来革命性的变化。
无论你是硬件设计工程师、编译器开发者,还是对开源硬件工具感兴趣的爱好者,CIRCT项目都为你提供了一个参与和贡献的机会。通过共同努力,我们可以推动硬件设计工具的创新,为未来的硬件设计带来更多可能性。


免费创建高清无水印Sora视频
Vora是一个免费创建高清无水印Sora视频的AI工具


最适合小白的AI自动化工作流平台
无需编码,轻松生成可复用、可变现的AI自动化工作流

大模型驱动的Excel数据处理工具
基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。


AI辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。


AI论文写作指导平台
AIWritePaper论文写作是一站 式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

