根据《手把手叫你设计CPU-RISC-V处理器》17章详细介绍
    或者RISCV/e200_opensource的doc中文档也有介绍)一步一步完成E203的EDA仿真:

********本篇只讨论C语言工程的编译、仿真过程,不涉及FPGA原型验证。

准备工作(这个可以参考书籍上册或者我CSDN主页上也有教程):搭建ubuntu16.4虚拟机环境,用github 命令 git clone ttps://github.com/SI-RISCV/e200_opensource 到本地目录,
    也可以直接下载压缩包,然后拉到虚拟机里面。

学习一下基本的makefile规则,自己可以找资料看一下,这里就不做过多介绍。
    1、按照书中流程,或者e200_opensource doc中的文档,搭建编译环境,文档中有详细描述,按照描述一步一步做没问题,不要跳过步骤。
    2、搭建EDA硬件仿真环境,需要RTL代码、仿真工具、波形查看工具
        我选用的是VCS+Verdi,还可以用iverilog+verdi、或者vsim,看个人习惯。
        测试激励选用tb.v或者字节重新例化e203_soc_top顶层模块,生成时钟、复位。

********下面的流程纯属于个人理解,若有不当之处请指出,本人还在继续理解中,欢迎一起学习、指导********

********接下来需要看懂三个基本的makefile文件,想暂时不看懂,照着3、4、5、6跑跑仿真也行。
        A、risc-v-tools/risc-v-test/isa/makefile        ***测试汇编指令的编译脚本,可以自己添加汇编文件
        B、sirv-e-sdk/makefile                  ***测试C语言的编译脚本,亲测后发现不能用需要修改见下面说明
        C、vsim/makefile                    ***EDA仿真的脚本,建议按照自己的习惯写一个
    
    3、修改sirv-e-sdk/env/common.mk 将start.S 文件换成 risc-v-tools/risc-v-test/env/v/link.ld        连同路径一并替换
    
    4、修改sirv-e-sdk/env/common.mk 将link.lds 文件换成 risc-v-tools/risc-v-test/debug/program/start.S 连同路径一并替换
    
    5、用/e200_opensource_2/riscv-tools/fpga_test4sim/demo_gpio4sim/demogpio.c替换sirv-e-sdk/software/demo_gpio/demo_gpio.c
        修改一些宏定义,不然编译出错,也可根据编译的错误来修改,建议根据错误修改。就是先运行后面的步骤6,然后根据步骤6的报错来修改。
        在主函数里面添加一个while(1){写GPIO反转的代码},详细请看demo_gpio.c文件。

6、在sirv-e-sdk路径下运行 make software PROGRAM=demo_gpio BOARD=sirv-e203-arty 编译出来demo_gpio目标文件,
        报错就修改demo_gpio.c源文件,里面有一些宏没有定义。我以后整理这些宏定义。
    
    7、用/e200_opensource_2/riscv-tools/prebuilt_tools/prefix/bin/riscv-none-embed-objcopy -O verilog demo_gpio demo_gpio.verilog
          将demo_gpio 转成 demo_gpio.erilog(二进制机器码,用于烧录到ITCM中运行),并将demo_gpio.verilog文件中的@8000xxxx都改成@0000xxxx,
        可以用名命令实现,或者用编辑器实现。
        可以用/e200_opensource_2/riscv-tools/prebuilt_tools/prefix/bin/riscv-none-embed-objdump -d 查看反汇编。

8、打开测试激励文件tb.v
        将demo_gpio.verilog文件放到ITCM中,次操作在激励中有详细代码,使用的是verilog系统函数$readmemh()将代码放到内部itcm_mem,
        然后通过一个for循环将itcm_mem加载到内部ITCM中。根据仿真器的需要自己选择保存波性文件。
    
    9、运行EDA仿真 make run_all TESTCASE = demo_gpio
    
    10、打开波形工具看波形 GPIO19 20 21

11、可以自己修改demo_gpio.c实现更过别的测试
    
********结束

12、这里本人只是测试C语言的ubutu编译环境和EDA的仿真环境,并为验证流程是否科学、严谨。
    13、我认为还可以通过将代码直接放到内部QSPI FLASH中,然后BOOT选用QSPI直接运行,但是我编译出来的代码却在执行完第一个16bit指令机器码后跑飞,大家有兴趣的可以继续摸索。

蜂鸟E200、E203的GPIO仿真demo相关推荐

  1. 谁说国内无RISC-V开源核——您还不知蜂鸟E200?

    目录 1 开源RISC-V挑花眼了? 2 谁说国内没有RISC-V开源核? 3 想要专业水准的开源核? 4 担心性能指标不行? 5 抱怨没有配套SoC? 6 要是可配置就好了? 7 会不会没有文档介绍 ...

  2. VCS自带的UPF低功耗仿真demo介绍

    文章目录 前言 1.demo所在的位置 2.demo的介绍 3.启动demo仿真 4.利用verdi来分析UPF文件 总结 前言 VCS工具安装路径下,自带了一个UPF低功耗仿真的演示用例,本文主要介 ...

  3. VCS+Verdi联合仿真demo教程

    公司仿真和看波形工具是VCS+Verdi,由于这两样工具结合在一起有着极高的效率,与在学校仅仅使用vivado软件跑整个流程相比,真的是小巫见大巫. 因此便在自己电脑的虚拟机中试着建立VCS+Verd ...

  4. 蜂鸟Hbird E203 RISC-V基础

    文章目录 基础例程 1.CPU基础知识 1.1 ISA 指令集架构 1.2 常见ISA 2.RISC-V基础知识 2.1 模块化的指令子集 2.2 RISC-V编码器特点 2.3 RISC-V工具链 ...

  5. 蜂鸟E200模块分析——IFU:Simple-BPU

    ①Mini-Decode: Mini-Decode 模块内部也是例化调用一个完整的 Decode 模块,但是将其不相关的输入信号接零.输出信号悬空不连接,从而使得综合工具将完整 Deco 模块中无关逻 ...

  6. SUMO安装并实现交通仿真Demo

    sumo简介 sumo是一种开源,微观,多模态的交通模拟仿真软件,每辆车都是明确建模的,有自己的路线,并在网络独立移动 下载安装sumo 前往sumo官网下载,如下图红色标注所示,一键安装. 实现De ...

  7. simulink仿真demo临摹笔记之编辑信号发生器(Signal Builder)

    一,临摹对象 stateflow模型:sf_abstemporal_enable 二,问题现象 拖入Signal Builder 模块后,默认的信号波形是这样的: 但官方例程中的信号是这样的: 每一步 ...

  8. 蜂鸟E200(2) 流水线介绍

    处理器流水线概述 计算机体系中最多的经典MIPS五级流水线,如下图所示 取指 指令取指(Instruction Fetch)是指将指令从存储器中读取出来 译码 指令译码(Instruction Dec ...

  9. ModelSim仿真蜂鸟E203 / 200【功能验证】

    ModelSim仿真蜂鸟E203 / 200 教程[功能验证] 1. windows10下载ModelSim10.5+破解 2. 下载蜂鸟E203源码 3. 新建个文件夹 4. 新建工程 5. 用mo ...

最新文章

  1. mysql中没有内置函数_[mysql]MySQL中的内置函数
  2. Gson:我爸是 Google
  3. IntelliJ IDEA 2020.3 重大特性
  4. 用jdk在cmd下运行编译java程序
  5. 02搭建cdh版本控制
  6. unix到底有啥用_观点|什么是Unix以及它为什么这么重要?
  7. vue3.x案例 购物车
  8. linux终端安装playonlinux,Ubuntu怎么安装PlayOnLinux
  9. 常见移动机器人轮直径校准
  10. 机器学习实践指南(五)—— GD/SGD/MSGD 伪代码演示
  11. 【Android Developers Training】 7. 添加Action Buttons
  12. mysql热备 binlog日志切割_查看MySQL还原出来的binlog日志中内容方法
  13. 安卓游戏广告加速插件_游戏加速器(强烈推荐!)[PC+安卓]
  14. 2022年危险化学品经营单位安全管理人员考试练习题及模拟考试
  15. TrueType字体变成宋体的方法
  16. 视频教程-QQ机器人--基于酷Q开发7精讲-C/C++
  17. 解决Chrome中打不开Google搜索结果链接
  18. openEuler Meetup 南京站 | 麒麟信安加入南京用户组,分享《CentOS原地透明迁移方案技术实践》
  19. QQ空间迁移_【Frame_relay子接口的两种配置方法】
  20. 腾讯云服务器域名公安备案记录

热门文章

  1. Ubuntu下VScode配置ssh免密远程登录
  2. c语言程序设计杨毅版,C语言程序设计
  3. 超级计算机用什么芯片,神威是第一台完全使用中文芯片的超级计算机吗?
  4. 2022年高压电工考试题及高压电工作业考试题库
  5. mysql8找不到bir_Mysql大小写敏感问题
  6. Unity 基于eventTriggers的3D场景交互系统
  7. 夜神模拟 配置 热加载
  8. ubuntu如何杀进程_ubuntu查看并杀死进程
  9. React路由跳转时通过传参进行动态渲染的方法
  10. R柱状图,叠图(排序)