• 如何加快香山处理器Chisel->Verilog编译速度


    ===========================================
    graalvm installation
    ===========================================
    更换JVM。我们推荐使用GraalVM代替OpenJDK。
    使用GraalVM免费版作为JVM编译香山比OpenJDK快10%-20%。
    --------------------------------------------------------------------------
    https://www.graalvm.org/latest/docs/getting-started/linux/
    download  jdk-17_linux-x64_bin.tar.gz & jdk-20_linux-x64_bin.tar.gz

    mkdir graalvm
    cd graalvm
    tar -zxvf jdk-17_linux-x64_bin.tar.gz
    export PATH=/home/hemin/graalvm/jdk-17.0.8/bin:$PATH
    export JAVA_HOME=/home/hemin/graalvm/jdk-17.0.8
    java --version

    > java version "17.0.8" 2023-07-18 LTS
    > Java(TM) SE Runtime Environment (build 17.0.8+9-LTS-211)
    > Java HotSpot(TM) 64-Bit Server VM (build 17.0.8+9-LTS-211, mixed mode, sharing)


    ===========================================
    circt installation
    ===========================================
    使用CIRCT编译香山
    相比使用默认的scala firrtl complier,使用CIRCT能够将香山代码编译到Verilog的速度提高50%左右。

    要使用CIRCT编译Chisel代码,可以参考以下步骤进行配置:
    在本地从源码编译CIRCT,在编译完成后将circt/bin路径加入PATH中。
    在执行make命令时加上MFC=1,例如make verilog MFC=1或make emu MFC=1。
    --------------------------------------------------------------------------
    sudo apt install ninja-build

    git clone https://github.com/llvm/circt
    cd circt
    git submodule init
    git submodule update

    sudo apt-get autoremove cmake
    wget https://cmake.org/files/v3.20/cmake-3.20.0-linux-x86_64.tar.gz
    tar zxvf cmake-3.20.0-linux-x86_64.tar.gz
    sudo mv cmake-3.20.0-linux-x86_64 /opt/cmake-3.20
    export PATH=/opt/cmake-3.20/bin:$PATH

    ====Build and test LLVM/MLIR====
    $ 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=Release \
        -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
    $ ninja
    $ ninja check-mlir

    ====Build and test CIRCT====
    $ 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=Release \
        -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
    $ ninja
    $ ninja check-circt
    $ ninja check-circt-integration # Run the integration tests.
     

  • 相关阅读:
    CANoe(持续更新修改...)
    UE5.1_自定义配置文件读取
    【组件封装】显示实时时间和星期几·附文字特效
    binlog 和 redolog 有什么区别
    深入理解强化学习——强化学习的例子
    Unity数字孪生教程:系统如何架构?
    万字整理 | 深入理解编译系统
    解决Win11/10中Edge浏览器页面加载不出来、打不开问题|有网但是打不开,加载不了
    vue3 iconify 图标几种使用 并加载本地 svg 图标
    请求服务器数据API
  • 原文地址:https://blog.csdn.net/weixin_39548025/article/details/133700334