• 【IC设计】Chisel开发环境搭建


    README

    1. 如果想快速搭建好环境,不关心具体的安装过程
      直接复制文章后面的【脚本附录】,以root用户在任意目录下执行该脚本
      它会帮助你完成安装java11、ubuntu换源、sbt换源、下载sbt,执行完以后是这样的:
      在这里插入图片描述

    然后从安装步骤的【第9步】开始测试scala和chisel是否能正常使用即可

    1. 如果想从头逐步安装,从【安装步骤】第一步开始看即可

    安装步骤

    1. 首先安装一个Ubuntu的虚拟机

    2. 然后给Ubuntu换个镜像,方便下载
      注意换源后使用apt-get update更新下

    3. 安装vim(可以不做)
      这里安装Vim是我感觉Ubuntu自带的vi编辑器似乎有问题,因为我按i进入【插入模式】并没有提示,所以安装vim进行替代。
      只关心Chisel安装的可以跳过这一步。

    apt install vim
    sudo vim /etc/vim/vimrc
    #在vimrc文件结尾处添加
    #显示行数
    set number
    #自动缩进
    set autoindent
    #光标高亮
    set cursorline
    set ruler
    #Tab默认4格
    set tabstop=4
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    1. 安装JDK
      注意,在此之前先换源,参考文章
      此外,文章中apt换源使用的是bionic,这个参数需要根据lsb_release -c查看发行版本的结果来定
      如果lsb_release -c的结果是其他的,例如jammy,就要把所有bionic换成jammy

    如果在apt换源时报错:

    The following signatures couldn’t be verified because the public key
    is not available

    执行

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys [报错最后给出的key]

    例如:5523BAEEB01FA116

    sudo apt-get install default-jdk
    
    • 1

    安装完成后使用java -version测试结果为:
    在这里插入图片描述

    1. 安装sbt构建工具
      sbt是Scala的构建工具,类似C的Make和Java的Maven,都是依赖管理工具。
    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依赖libcurl4
    apt-get purge libcurl4
    apt-get install curl
    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    安装完成后使用sbt --version查看版本:
    在这里插入图片描述

    1. 修改sbt源
      默认sbt是使用maven官方库解决依赖,这里修改它的源。
      sbt解决依赖时会自动加载~/.sbt目录下的repositories文件。
    #进入用户目录
    cd  ~
    #下面有一个.sbt目录
    cd  .sbt
    
    • 1
    • 2
    • 3
    • 4

    在.sbt目录下创建一个名为repositories的文件,不用后缀

    [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]
    
    • 1
    • 2
    • 3
    • 4

    然后在/usr/share/sbt/conf/sbtopts
    文件的最后添加-Dsbt.override.build.repos=true

    1. 安装VS Code并配置插件
      首先在软件商店中安装VS Code,打开VS Code,在View->extensions中安装Scala(Syntax)和Scala(Metals)
      在这里插入图片描述

    2. 安装make

    apt install make
    
    • 1
    1. Scala的HelloWorld测试
      新建HelloScala.scala
      输入:
    object HelloScala{
        def main(args:Array[String]):Unit={
            println("helloscala")
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    使用sbt run进行构建,会输出helloworld
    在这里插入图片描述

    1. 测试Chisel
    git clone https://github.com/schoeberl/chisel-examples.git
    cd chisel-examples/hello-world
    make
    sbt test
    
    • 1
    • 2
    • 3
    • 4

    测试成功:
    在这里插入图片描述

    脚本附录

    该脚本完成了更改Ubuntu下载源、java11安装、更改sbt下载源、下载sbt

    #备份sources.list
    sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
    
    #apt换源
    echo "deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
    
    deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
    
    deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
    
    deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
    
    deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse" > /etc/apt/sources.list
    sudo apt-get -qq update 
    
    #安装jdk
    sudo apt-get install -yqq default-jdk
    java -version
    
    #安装sbt构建工具
    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
    sudo apt-get -qq purge libcurl4
    sudo apt-get -qq install curl
    curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" | sudo apt-key add
    sudo apt-get -qq update
    sudo apt-get -qq install sbt
    
    #sbt换源
    mkdir ~/.sbt
    cd ~/.sbt
    echo "[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]" > repositories 
    echo "-Dsbt.override.build.repos=true" >> /usr/share/sbt/conf/sbtopts
    
    #安装make
    sudo apt install -yqq make
    
    ##sbt版本测试
    sbt --version
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
  • 相关阅读:
    Django(五、视图层)
    golang学习笔记——Map
    【LeetCode】1758. 生成交替二进制字符串的最少操作数
    英语读书笔记-Book Lovers Day 10
    shell环境变量以及set,env,export的区别
    99-104-Hadoop-MapReduce-排序:
    如何封装Dao_java培训
    Pr:导出设置之基本视频设置
    IDEA工具第二篇:自定义Java方法注释模板 | 京东云技术团队
    4.6 - 堆 4.7 - 图
  • 原文地址:https://blog.csdn.net/qq_42622433/article/details/132711165