首页 > 其他分享 >蜂鸟E203 仿真之路

蜂鸟E203 仿真之路

时间:2023-04-02 16:01:28浏览次数:56  
标签:仿真 E203 git riscv make iverilog cd 蜂鸟

本文记录自己在学习蜂鸟E203的过程。下面简单介绍一下仿真之路所遇到的困难和走过的坑。

1、环境开发 :一般选择ubuntu 18.04 这个版本,安装这个教程很多,可以自行学习。

2、在Linux中安装工具:

sudo apt-get install autoconf automake autotools-dev curl device-tree-compiler libmpc-dev libmpfr-dev libgmp-dev
gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev git

3、下载  e203_hbirdv2 project   选择其中一种即可

git clone https://github.com/riscv-mcu/e203_hbirdv2.git
git clone https://gitee.com/riscv-mcu/e203_hbirdv2.git

4、编译工程自带例程 ,下载芯来的工具链 

 芯来工具链官网:芯来工具链_专业RISC-V处理器IP及解决方案公司 (nucleisys.com)

 

 

 

 下载好 RISC-V GNC toolchain 后,可以将压缩包直接拖进虚拟机中。可以看到如下:

 

 

 接下开始配置riscv- tests。打开终端,在终端中操作如下命令:

cp nuclei_riscv_newlibc_prebuilt_linux64_2022.12.tar.bz2 ~/ 

cd ~/

tar -xjvf nuclei_riscv_newlibc_prebuilt_linux64_2022.12.tar.bz2

cd <your_e203_dir>/

mkdir -p ./riscv-tools/prebuilt_tools/prefix/bin

cd ./riscv-tools/prebuilt_tools/prefix/bin/

ln -s ~/gcc/bin/* .

其中 两个地方需要注意:

nuclei_riscv_newlibc_prebuilt_linux64_2022.12.tar.bz2  这里是根据自己下载的工具版本而定。
your_e203_dir  是自己的E203存放目录。

注意最后一步有的是这样的命令:
ln -s ~/nuclei_riscv_newlibc_prebuilt_linux64_2022.12.tar.bz2/gcc/bin/\* . 

完成之后,开始编译测试:

cd <your_e203_dir>/riscv-tools/riscv-tests/isa

source regen.sh

完成之后,进行跑仿真,需要安装两个软件 iverilog+gtkwave 或者 VCS+Verdi 。这里我们以iverilog+gtkwave 为说明。

注意:如果要使用iverilog为仿真工具,确保这个工具版本为12.0。

安装 iverilog 和gtkwave 命令如下:

# 从github下载
git clone https://github.com/steveicarus/iverilog.git
#进入iverilog目录
cd iverilog
#检测依赖文件、配置环境并编译
sh autoconf.sh
./configure
make
#运行测试demo检查是否编译成功
make check
#安装iverilog
sudo make install
#查看iverilog的版本
iverilog –v
#安装波形查看工具
sudo apt-get install gtkwave

注意:安装iverilog12.0时vvp_proc_loops.c:28:31: error: initializer element is not constant static  unsigned break_label = LABEL_NONE?这里会报错!

解决方案找到这个c文件把这两个信号声明后面的“= LABEL_NONE”去掉,在之后的两个int()块里面再分别加上= LABEL_NONE赋值就行。

#找到该文件
cd ~/iverilog/tgt-vvp
#使用vim或者gvim 打开该文件 并修改。保存
gvim vvp_proc_loops.c

 

 

 

 

 

 

 

 在安装好iverilog 和gtkwave 后,我们开始综合网表。

# cd ~/e203_hbirdv2/vsim 进入自己文件存放位置
cd ~/<your_e203_dir>/vsim

make clean
make install
make compile SIM=iverilog

综合网表成功后,可以运行仿真。

make run_test SIM=iverilog

成功仿真界面:

 

注意:如果出现错误 /bin/sh: Syntax error: “&” unexpected,则需要转换shell类型为bash:

# 查看shell类型,需要将dash改成bash
ls -l /bin/sh
sudo dpkg-reconfigure dash
#选择 no

 

 查看波形:

// Using Verdi:
make wave SIM=vcs

// Using GTKWave:
make wave SIM=iverilog

 

 运行一下命令进行回归测试,并查看回归结果:

// For VCS:
make regress_run SIM=vcs

// For iVerilog:
make regress_run SIM=iverilog

make regress_collect

 

 

 

 至此,仿真成功。

 

参考资料:

1、Hummingbirdv2 E203 仿真排坑之路 - 简书 (jianshu.com)

2、4.1. How to run simulation — Hummingbirdv2 E203 Core and SoC 0.2.1 documentation (nucleisys.com)

标签:仿真,E203,git,riscv,make,iverilog,cd,蜂鸟
From: https://www.cnblogs.com/yhm1314/p/17280637.html

相关文章

  • ADS "is an instance of undefined model"仿真报错
    前情提要我遇到的问题如下所示:原理图上直接拖了工艺库里的东西来搭,之后报错如下。解决办法我内网外网搜了很多,都说要加一个include的控件。但是他们举的例子几乎都是同一个,而且我用的这个工艺库也没有很明显的带有include字样的元件,而我的工艺是老师发给我的,不是网上可以下载......
  • m基于强化学习的PID控制器simulink仿真,对比PI控制器和变结构PI控制器
    1.算法描述       PID控制器,即控制器的控制方式为P比例调整,I积分调整以及D微分调整三个部分构成,PID控制器是目前为止应用最为广泛的控制方式。PID控制器具有结构简单,性能稳定,参数设置简单等优势。PID控制器适用于各种控制对象无法进行测量获得系统参数的情况,其根据控制对......
  • m基于PID控制算法的四旋翼无人机飞行控制simulink仿真
    1.算法描述  无人机采用常见的四旋翼无人飞行器,如图1所示。           PID控制器,即控制器的控制方式为P比例调整,I积分调整以及D微分调整三个部分构成,PID控制器是目前为止应用最为广泛的控制方式。PID控制器具有结构简单,性能稳定,参数设置简单等优势。PID控制......
  • 永磁同步直线电机仿真实例,仿真教学 maxwell16.0版本 12槽11极
    永磁同步直线电机仿真实例,仿真教学maxwell16.0版本12槽11极包括图中模型以及一个仿真设置要点word文档教程YID:99150643350855880......
  • 纯电动汽车Matlab Simulink软件模型,纯电动汽车动力性、经济性仿真模型
    纯电动汽车MatlabSimulink软件模型,纯电动汽车动力性、经济性仿真模型1.本模型基于MatlabSimulink搭建,包含:电池、电机、整车纵向动力学、控制策略、驾驶员等模块。2.模型搭建时参考了部分mathwork官方模型,但比官方模型更容易理解。同时输入数据采用m脚本文件编辑,更容易管理。......
  • Carsim和simulink联合仿真轮胎力估计 基于滑模观测器SMO估计轮胎的纵向力和侧向力
    Carsim和simulink联合仿真轮胎力估计基于滑模观测器SMO估计轮胎的纵向力和侧向力模型估计的精度很高,测试的工况为双移线工况基于SMO滑模观测器的轮胎力估计方法省去了轮胎模型的使用,避免了稳态轮胎模型造成的轮胎力计算误差大的缺点,同时不需要轮胎的侧偏刚度作为已知参数等。YI......
  • 永磁同步电机无位置传感器控制,采用的是龙贝格,基于模型的 定点开发,仿真效果和实际95%高
    永磁同步电机无位置传感器控制,采用的是龙贝格,基于模型的定点开发,仿真效果和实际95%高度吻合,可以仿真学习,也可以直接移植到项目中YID:32768642079012761......
  • 基于matlab的多符号差分球形译码误码率仿真
    1.算法描述    球形译码的基本思想是在以一个矢量x为中心的半径为d的多维球内搜索格点,通过限制或者减少搜索半径从而减少搜索的点数,进而使得计算时间减少。球形译码算法带来的优点在于它不需要象传统的最大似然译码算法那样需要在整个格内对所有的格点进行搜索,而只需要在......
  • 基于MATLAB的ASK,FSK,PSK误码率对比仿真,输出调制后波形以及误码率曲线
    1.算法描述       在数字通信的三种调制方式(ASK、FSK、PSK)中,就频带利用率和抗噪声性能(或功率利用率)两个方面来看,一般而言,都是PSK系统最佳。所以PSK在中、高速数据传输中得到了广泛的应用。 ASK:幅度键控可以通过乘法器和开关电路来实现。载波在数字信号1或0的控制......
  • m基于FC全卷积网络和kalman的遮挡车辆跟踪算法matlab仿真,用matconvnet-1.0-beta20工
    1.算法描述1.1全卷积神经网络全卷积神经网络(FullyConvolutionalNetworks,FCN)是JonathanLong等人于2015年在FullyConvolutionalNetworksforSemanticSegmentation一文中提出的用于图像语义分割的一种框架,是深度学习用于语义分割领域的开山之作。我们知道,对于一个各层参数结......