吃透Chisel语言.02.Chisel+VS Code+Ubuntu/WSL2开发环境搭建与使用

磨刀不误砍柴工,Chisel+VS Code+Ubuntu/WSL2开发环境搭建与使用

既然是学Chisel语言,那肯定得先把环境配置好,磨刀不误砍柴工嘛。

而且有个测试环境的话,在后期的学习过程中自己去试运行代码段可以加深学习效果。

操作系统选择

这里推荐使用Ubuntu或者基于WSL2(Windows Subsystem Linux 2)的Ubuntu,本人使用的是WSL2上的Ubuntu 20.04.3 LTS,在使用体验上与Ubuntu几乎没有区别,且能同时使用Windows提供的诸多便利。

如果想要选择其他操作系统,请参照官网提供的Chisel环境配置README,这个文件提供了Ubuntu Linux、Arch Linux、Windows和Mac OS X上的安装指引。但是同时也指出了Windows原生不支持Verilator,但可以通过WSL或Cygwin来解决这个问题。

WSL2的安装参照微软官方文档安装 WSL | Microsoft Docs,对Windows系统的要求是 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11。

操作系统或WSL的安装配置不在本文的讨论范围之内,下面直接开始Chisel的环境配置。

Chisel运行依赖环境配置

安装Java

首先Chisel是基于Scala的,而Scala又是在JVM上运行的,所以首先得安装Java,命令如下:

sudo apt-get install default-jdk

安装sbt

这个sbt是Scala的构建工具,全称Simple Build Tool,类似于Java中的Maven或Gradle,安装了这个sbt就可以很方便地构建Chisel项目了,命令如下:

echo "deb https://repo.scala-sbt.org/scalasbt/debian all main" | sudo tee /etc/apt/sources.list.d/sbt.list
echo "deb https://repo.scala-sbt.org/scalasbt/debian /" | sudo tee /etc/apt/sources.list.d/sbt_old.list
curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" | sudo apt-key add
sudo apt-get update
sudo apt-get install sbt

sbt更换国内源

这一步非常重要,不然会因为众所周知的原因各种下载失败,非常影响学习效率!

换源步骤如下:

  1. 创建.sbt文件夹:

    cd ~
    mkdir .sbt
    cd .sbt
    
  2. 创建repository文件:

    touch repository
    vi repository
    

    内容如下:

    [repositories]
    local
    aliyun: https://maven.aliyun.com/repository/central/
    sbt-plugin-repo: https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
    
  3. 修改配置文件:

    sudo vi /usr/share/sbt/conf/sbtopts
    

    在文件最后添加一行:

    -Dsbt.override.build.repos=true
    

安装Verilator

这个Verilator是一个开源的Verilog仿真器,我们可以通过源代码来编译安装,官方建议版本是Verilator version 4.016,安装步骤如下:

  1. 安装编译所需依赖:

    sudo apt-get install git make autoconf g++ flex bison
    
  2. 将Verilator源码clone到本地:

    git clone http://git.veripool.org/git/verilator
    
  3. 进入Verilator源码文件夹,checkout为指定版本:

    cd verilator
    git pull
    git checkout v4.016
    
  4. 编译Verilator并安装:

    unset VERILATOR_ROOT # unset是bash里面使用的,如果是csh的话就用unsetenv
    autoconf # 创建./configure脚本
    ./configure # 运行./configure脚本
    make -j($nproc) # 编译,-j($nproc)是指定使用当前可用的处理器核数量来编译
    sudo make install # 安装
    

测试Chisel运行环境配置是否成功

Scala测试

  1. 创建一个Scala源文件:

    mkdir test
    cd test
    touch test.scala
    vi test.scala
    

    内容如下:

    object HelloScala extends App {
      println("Hello Scala")
    }
    
  2. 运行:

    sbt run
    
  3. 结果如下表示成功:

    在这里插入图片描述

Chisel测试

  1. 将官方测试源码clone到本地:

    git clone https://github.com/schoeberl/chisel-examples.git
    
  2. 运行Hello World

    cd chisel-examples/hello-world
    make # 这里等价于sbt run
    

    结果如下表示成功:

    在这里插入图片描述

  3. 运行Hello World测试

    sbt test
    

    结果如下表示成功:

    在这里插入图片描述

VS Code环境配置

VS Code的安装不在本文讨论范围之内,可以参照微软官方网站Visual Studio Code - Code Editing. Redefined,WSL2上直接在命令行输入:

code

即可安装,本文只讨论Chisel和Scala相关内容。

插件安装

在VS Code中按住Ctrl + Shift + X可以进入插件安装界面,直接搜索安装以下三个插件:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Scala(Metals)换国内源

这一步同样非常重要,不然会因为众所周知的原因各种下载失败,非常影响学习效率!

  1. 在VS Code中按住Ctrl + ,,进入设置页面;

  2. 在搜索栏输入Metals: Custom Repositories,找到该设置,点击“添加项”;

  3. 输入https://maven.aliyun.com/repository/central并点击确定;

  4. 设置完成的界面如下:

    在这里插入图片描述

到这里,VS Code的环境就算是配置完成了。

Chisel-template使用和VS Code环境测试

这里测试我们用到的是Chisel官方提供的chisel-template: A template project for beginning new Chisel work (github.com)

记住这个Chisel-template非常重要,以后我们不管是测试代码还是写自己的Chisel项目,都基于这个模板!

Chisel-template使用步骤

方法一(推荐,在GitHub上生成自己的仓库)

你可以使用GitHub上的Use this template功能,用该模板在自己的账号下创建一个仓库,记得不要勾选“Include all branches”选项:

在这里插入图片描述

然后点击“Create repository from template”,就创建完成了:

在这里插入图片描述

接下来我们就可以将这个生成的自己的仓库clone到本地:

git clone https://github.com/你的账号/你的仓库.git
方法二(在本地创建自己的仓库)
  1. chisel-template源码clone至本地:

    git clone https://github.com/freechipsproject/chisel-template.git
    
  2. 复制模板到OhMyChisel文件夹(你也可以不复制直接在模板上操作):

    cp -r chisel-template OhMyChisel # 名字自己起
    
  3. 清除原有Git相关信息并初始化仓库:

    cd OhMyChisel # 名字自己上一步中自己起的
    rm -rf .git
    git init
    

    成功后会提示你:

    Initialized empty Git repository in XXXXXXXXX
    

到这里我们就有本地的Chisel-template仓库了,我们每次写代码都会基于这个仓库,可以完成上面的设置之后保留一个备份,每次要用的时候复制该文件夹即可。

在VS Code中使用和测试Chisel-template

为方便期间,假设上一步我们创建的本地仓库叫作OhMyChisel,那么首先在该文件夹启动VS Code:

cd OhMyChisel
code .

这时右下角会提示:

在这里插入图片描述

选择“sbt”即可。

这时候它又会提示你:

在这里插入图片描述

点击“Import build”即可,这一步是为了保证Metals提供的代码提示和跳转功能可以正常使用

Import完了之后可能会提示你:

在这里插入图片描述

点击“Don’t show again”或者叉掉就行,那个“More information”点了一点用也没有,这个提示也不会影响我们的使用。

那么现在代码文件src/main/scala/gcdsrc/test/scala/gcd这两个文件夹下,以.scala结尾的就是。

项目配置文件build.sbt,里面指定了构建项目所需要的版本号和相关插件,这个文件也很重要。

我们可以使用Metals的格式化文档功能,将源代码格式变规整统一,比如在GCD.scala文件中右键,选择“格式化文档”,会弹出提示:

在这里插入图片描述

点击“Create .scalafmt.conf”即可,再次右键执行“格式化文档”就可以了。

如果我们在项目中添加了新的包,但是没有代码提示了,那么需要重新“Import build”,点击VS Code左侧的Metals图标,然后在“Build COMMANDS”中点击“Import build”即可。

运行和测试依然在命令行中进行,只不过这次是在VS Code内嵌的终端中运行指令:

sbt test

输出如下即表示成功:

在这里插入图片描述

如果运行sbt run的话被报错如下:

在这里插入图片描述

这是因为main文件夹只定义了几个电路生成器类,并没有可运行的代码,所以这是正常的不用担心。

到这里我们的配置就完成了!恭喜你可以开始Chisel的学习之旅了!

  • 15
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 27
    评论
Chisel 是一种基于 Scala 语言的硬件描述语言,它支持硬件描述与数字系统设计。与传统的硬件描述语言相比,Chisel 使用了更加现代化的语法结构,使得数字系统的设计更加简洁、灵活。Chisel 与数字系统设计 pdf 的关系在于,它可以帮助工程师们在数字系统设计过程中更加高效地进行开发,提高设计的灵活性和可重用性。 Chisel 语言的特点之一是支持硬件生成,这意味着它能够生成 Verilog 或者 VHDL 代码,从而可以与现有的数字系统设计工具兼容,同时也可以很好地与其他硬件描述语言一起协同工作。此外,Chisel 还提供了更加强大的抽象能力,支持参数化的模块化设计,从而可以更加高效地进行硬件设计和验证。 数字系统设计 pdf 是一本介绍数字系统设计原理和实践的教材,它包含了数字系统设计的基本概念、原理和方法。Chisel 与数字系统设计 pdf 的关系在于,它可以作为一种工具,帮助读者更好地理解和应用数字系统设计的知识。通过使用 Chisel 进行硬件描述和设计,读者可以在实践中加深对数字系统设计 pdf 中所学内容的理解,并将其应用到实际的硬件开发项目中去。 总的来说,Chisel 语言与数字系统设计 pdf 有着密切的关系,它们可以相互促进,帮助工程师和学习者更加高效地进行数字系统设计和开发。通过掌握 Chisel 语言并结合数字系统设计 pdf 的知识,可以使数字系统设计的学习和实践变得更加顺畅和高效。
评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值