/ARM9-compatible-soft-CPU-core

an ARM9 compatible CPU core written in Verilog, and related experiments

Primary LanguageVHDLGNU General Public License v3.0GPL-3.0

Introduction

In this repo are projects from the book ARM9-compatible CPU soft core design based on FPGA (《兼容ARM9的软核处理器设计:基于FPGA》https://baike.baidu.com/item/兼容ARM9的软核处理器设计%EF%BC%9A基于FPGA/1686845?fr=aladdin).

Contents

Up to now I have successfully replicated all the experiments in this book:

Chapter 2 Verilog RTL programming

Chapter 7 Run "Hello World" on ARM9 compatible CPU core

Chapter 8 Dhrystone Benchmark on ARM9 compatible CPU core

Chapter 9 uClinux simulation - booting non-MMU OS in reference to SkyEye

Chapter 10 Linux simulation - booting OS with MMU in reference to FriendlyARM Mini2440 board

... and is currently working on Chapter 6 Verilog RTL design of ARM9 compatible CPU core.

My report report.pdf consists of two parts: summary of book content; my experimental results.

Note

  • xpr projects are to open with Vivado 2015.4 and its simulator, except that "ARM9_mini2440_Linux_simulation" requires Modelsim 10.6 (it fails on Vivado 2015 simulator); uvproj projects are to open with μVision>=4, and the "skyeye" stuff is to run in SkyEye under Ubuntu. My operating system is Windows 10, and my FPGA board is Digilent Nexys4 DDR.
  • The majority of code are downloaded from https://code.google.com/archive/p/risclite/ and https://code.google.com/archive/p/arm-cpu-core/, which are provided by book author; however, those projects are based on obsolete platforms such as Xilinx ISE, and I spent effort to make them runnable on Vivado on Windows 10.
  • This repo requires Git LFS (large file support)