Giter Site home page Giter Site logo

zhuyanzhen1 / prirv32 Goto Github PK

View Code? Open in Web Editor NEW
7.0 2.0 1.0 116 KB

这是我设计的第一个RV32内核,这个内核只打算实现RV32I指令集架构,对标8051及ARM Cortex-M0内核。This is the first RV32 core I designed. This core only intends to implement the RV32I instruction set architecture, which is aimed at the 8051 and ARM Cortex-M0 cores.

License: GNU Affero General Public License v3.0

Verilog 99.81% Batchfile 0.19%

prirv32's Introduction

priRV32

    Version  Build  License

    priRV32 is a kernel that can implement the RV32I sub-instruction set architecture and RV machine mode. This kernel is currently under development. The naming of modules and variables in this kernel code refers to the naming method in picoRV32, and there are many similarities in the naming of variables. In addition, in order to reduce the development time, the code of the peripheral part was directly packaged and used from the code provided by the Alinx FPGA development board. This kernel is for learning purposes only, and I am not responsible for any use in other scenarios.


Preface

    In the first half of the semester, I was studying at home due to the epidemic, and I saw RISC-V-related books sold on Taobao. Since then, the idea of ​​"writing RISC-V processors from scratch" has continued to appear in my mind. At that time, I didn't understand the basic knowledge of computers (I only read the authoritative guide for the ARM Cortex-M3 core). Sophomore year, I have been supplementing computer-related knowledge, including computer system structure, computer composition principle, data structure, Linux kernel and so on. Now that the junior year transfers to integrated circuits, there is a course of computer system structure, so I want to take this opportunity to implement a simple RV kernel.
    Since this is the first RV32 core I designed, considering my low level, this core only intends to implement the RV32I instruction set architecture, the core frequency is 36MHz, and it is against the current 8051 and ARM Cortex-M0 cores. In terms of combined functions, the kernel is named priRV32, which means "primary RV32 kernel". It is the first time to write a relatively large-scale project, and there are many immature and shortcomings in the language specification and implementation, and I invite developers Haihan.


Develop Environment

  • IDE: Visual Studio Code 1.62.1 & Quartus Prime 20.1 Lite Edition
  • OS: Windows_NT x64 10.0.19041
  • Simulator: icarus verilog 11.0

Directory Structure

  • core: The source code files related to the priRV32 kernel, which mainly include the instruction fetching and decoding unit and the execution write-back unit.
  • fpga: FPGA project file based on Quartus Lite Edition integrated development environment.
  • periph: Some source files of simple peripheral interfaces.
    • uart: source file of UART serial peripherals.
  • tb: Test script files for the kernel and peripherals.

License

Affiliation:AcmeTech
Author: Zhu Yanzhen
Maintainer:YanzhenZhu, [email protected]

    The source code is released under a AGPL-3.0 License.The product has been tested under Windows 10 and Ubuntu 18.04 and 20.04. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.

prirv32's People

Contributors

zhuyanzhen1 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

cyl-0411

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.