1 Chipyard介绍
Chipyard是一个开源的、可扩展的、集成化的芯片设计平台,旨在帮助芯片设计人员快速、高效地开发自己的定制芯片。由伯克利大学架构研究小组开发,它基于Chisel语言和Scala编程语言,提供了一整套硬件设计工具和流程,包括RTL设计、验证、物理布局、仿真等,以及支持多种芯片体系结构的库和模块。在Chipyard平台上,芯片设计人员可以使用预先定义好的芯片体系结构,也可以根据自己的需求进行自定义设计。Chipyard提供了一种灵活的方法来管理和配置芯片项目,开发人员可以通过简单的配置文件和命令来控制整个项目的构建和部署。
另外,Chipyard还提供了一些工具和流程,以支持芯片设计的快速迭代和开发。例如,它提供了一个基于Scala的测试框架,可以帮助设计人员快速编写和运行各种测试用例,以确保芯片的正确性和可靠性。此外,它还提供了一些可视化工具和分析器,以帮助设计人员分析和优化芯片性能和功耗。
总的来说,Chipyard是一个功能强大、灵活可扩展的芯片设计平台,它可以帮助芯片设计人员快速、高效地开发自己的定制芯片,并为芯片设计提供了一种现代化的、开放式的工具和流程。
1.1 Chipyard的特点
Chipyard是:
- 各种SoC设计工具的组织框架;
- 一个开源的RISC-V SoC组件IP库;
- 一种敏捷SoC架构的设计、探索和评估方法。
1.2 Chipyard的组织框架
Chipyard的组织框架:
1.3 Chipyard的组成
Chipyard由Genrator、Tool、Toolchains、Software、Sims、Prototyping和VLSI组成:
2 Chipyard环境搭建
2.1 安装Conda
在Chipyard系统中,使用了Conda包管理器来帮助管理系统依赖,Conda允许用户创建一个“环境”,其中包含系统依赖项,如make、gcc等。
注意:Chipyard也可以在没有安装Conda的系统上运行。但是,这些系统上的用户必须手动安装工具链和依赖项。
chipyard官网推荐使用Miniforge来安装Conda,网址为:GitHub - conda-forge/miniforge: A conda-forge distribution.
可以根据需要下载正确的版本,不过还是推荐在linux下安装使用chipyard,这里使用ubuntu22.04,首先下载:
下载之后是一个.sh的文件,cd进入该文件夹下,输入:
bash Miniforge3-Linux-x86_64.sh
会进入安装界面,一般会经过一下几步:
1)确安装过程提示信息,确认安装,按enter键
2)查看协议,按q退出即可
3)确认安装路径,按enter
4)询问是否初始化,确认,输入yes
5)显示安装已完成
6)激活软件,在命令行中输入以下命令:
source ~/.bashrc
7)可以在命令行中检查Conda版本:
conda --version
要使用chipyard,需要保证conda的版本大于4.12.0,只要从上边下载的一般都没问题,我这边下载的最新为22.11.1版本
8)最后,需要将conda-lock安装到基本的conda环境中:
conda install -n base conda-lock
conda activate base
2.2 设置Chipyard
首先,检查合适的chipyard版本:
git clone https://github.com/ucb-bar/chipyard.git
cd chipyard
# checkout latest official chipyard release
# note: this may not be the latest release if the documentation version != "stable"
git checkout 1.9.0
然后,安装特定的工具链以完整的安装chipyard。这里有两个工具链,一个用于普通的RISC-V程序,称之为riscv-tools,这是大多是chipyard用例需要用到的,另一个是Hwacha,称之为esp-tools。运行下边的脚本可以进行安装:
./build-setup.sh riscv-tools # or esp-tools
注意:先前版本的chipyard推荐使用esp-tools用于Gemmini开发。现在应该和标准的rsicv-tools一起使用。
安装完成后输入:
conda env list
正常应该会看到一个包含路径的环境:
$CHIPYARD_DIRECTORY/.conda-env
2.3 获取env.sh
一旦设置完成,在顶层存储库中应该能看到一个env.sh文件。该文件激活在build-setup.sh中创建的conda环境,并设置未来chipyard步骤所需要的必要的环境变量(需要make系统正常工作)。脚本运行后PATH、RISCV和LD_LIBRARY_PATH环境变量将被设置为工具链所需的正确设置。可以直接在.bashrc或等效的环境设置文件中获取这个文件来设置适当的变量,或者直接将它包含在当前的环境中:
source ./env.sh
3 写在最后
除了上边这种手动的配置外,还可以选择使用docker的方式来获取镜像,一步到位。这种方式更快,但缺少了一些探索的过程。有兴趣的朋友可以去官网查看。