Skip to content

BryanHeBY/NJU_DigitalDesignProject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RISCV32计算系统与AM应用程序

本项目为南京大学数字逻辑与计算机组成实验课程的期末课程作业,成功在DE10Standard开发板上实现和运行自己的RV32计算系统。

本项目有如下特色

  • 实现4段流水线,时钟频率可达50MHz
  • 实现支持ASNI颜色控制码的字符显存,实现图形显存
  • 实现数码管,LED灯,开关等外设的读写支持
  • 实现本地仿真模拟框架,实现测试集本地波形测试
  • 移植AM运行时环境,拥有强大的库函数支持,并与架构解耦,实现本机调试,上板运行的需求
  • 移植AM中CPU测试集部分,运行丰富应用时有CPU正确的保障
  • 编写和移植IO测试集部分,保证IO设备正常运行
  • 内建终端拥有退格,滚屏,提供shift/capslock按键支持,上下翻页,左右移动光标(移动后正常输入与退格)等功能
  • 移植AM的打字小游戏与OSlab0小游戏,运行“来自未来的游戏”
  • 添加对NVBOARD(projectN虚拟开发板)的支持

运行方式

  1. 首先将repo中的am_home设置为$MYCPU_AM_HOME环境变量
  2. 安装相关工具
    • riscv工具链(与projectN-ICS-PA相同)
    • verilator (version >= v4.204)
  3. 若要在NVBOARD中运行am_kernal中的程序(例如myterm),需要进入am_kernel/myterm目录,执行make ARCH=fpga run_nbd

工程目录结构

.
├── am_home                       本工程AM_HOME($MYCPU_AM_HOME)
│   ├── am                        riscv32-fpga架构AM目录
│   │   ├── include
│   │   │   ├── am-fpga.h       riscv32-fpga架构AM接口与部分实现
│   │   │   └── am.h            AM通用接口
│   │   └── src
│   │       ├── am-ioe           AM相关接口实现(TRM, IOE)
│   │       ├── fpga-ioe         riscv32-fpga架构AM接口实现
│   │       │   ├── builtin_shell    内置shell相关接口实现
│   │       │   ├── hex              七段数码管接口实现
│   │       │   └── kdb              ps2键盘接口实现
│   │       └── riscv-muldiv     rv32i内乘除法链接源码
│   ├── klib                      与架构无关的c库实现
│   │   ├── include
│   │   └── src
│   │       ├── stdio
│   │       ├── stdlib
│   │       └── string
│   ├── scripts
│   │   ├── dump.mk         fpga指令、数据存储器mif文件生成与自动更新规则
│   │   └── linker.ld       链接脚本
│   └── makefile             AM项目基础makefile
├── am_kernel                 AM上层软件
│   ├── asni_test            ASNI字符输出测试
│   ├── benchmarks           跑分程序
│   │   ├── coremark
│   │   └── dhrystone
│   ├── dummy
│   ├── fpga_test            AM内置CPU测试集
│   ├── myterm               基础要求:myTerminal实现
│   │   └── src             MyTerminal中可执行文件源码目录
│   ├── oslab0               oslab0小游戏
│   ├── typing-game          打字小游戏
│   └── vga_test             图形显存测试
├── hardware_src              硬件相关源码
│   ├── cpu                  CPU源码
│   └── quartus_core         计算机系统硬件源码(TRM+IOE)
├── nvboard_src               基于NVBOARD的verilog源码
├── makefile                  CPU硬件更新/测试规则
└── cpu_test                  CPU测试集
    ├── cpu_batch             官方测试集(流水线版本)
    ├── cpu_singlestep        单步测试集 (流水线版本)
    └── mytest                个人程序测试集

About

A RV32I pipeline CPU and applications transplanted from AM, NJU-Project-N

Resources

Stars

13 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors