UETRV-ECore: UETRV-ECore: An embedded class RISC V based Motor Control SoC.

Clone this repo:

Branches

  1. eb36129 final gds oasis by Jeff DiCorpo · 2 years ago main
  2. 6370709 Merge pull request #4 from ee-uet/development by Ali Imran · 2 years ago
  3. aec3a8a documentation updated by ALI11-2000 · 2 years ago
  4. d049e23 Update README.md by Muhammad Tahir · 2 years ago
  5. 6c40bc5 Updated by Muhammad Tahir · 2 years ago

UETRV-ECORE

UETRV-ECORE is a RISC-V based SoC integrating 3-stage pipelined core with multiple peripherals for embedded applications. Currently, the core implements RV32I ISA based on User-level ISA Version 2.0 and Privileged Architecture Version 1.11 supporting machine mode only. The core does not have any structural hazards, while data hazards are resolved using forwarding and stalling. Following is the status of current implementation:

  • Machine level interrupts has been added, including the support for vectored interrupts.
  • External interrupts are supported using bits 16 and above of MIP & MIE CSRs as provisioned by Privileged Architecture Version 1.11.
  • Data hazards are resolved using forwarding, while Load-Use hazard leads to one cycle stall.
  • Memory and peripherals are integrated through Wishbone Interconnect.
  • The SoC has on-chip pre-initialized boot memory with a simple boot loader.
  • The system boots from external flash using SPI interface.
  • A motor control module, capable of controlling dc-servo motor with encoder feedback.

Block Diagram

The verilog rtl used in this repo is generated from Scala source which is available in a separate repository here. Further details bout the peripheral memory map, bootloader, example programs, testbenches etc. are also provided in that repo.