Merge pull request #4 from ee-uet/development

Merging the updated version of SoC
tree: ad662dd31b5d1881f65a65c6f586361e88fb5352
  1. .github/
  2. def/
  3. docs/
  4. gds/
  5. lef/
  6. mag/
  7. maglef/
  8. openlane/
  9. sdc/
  10. sdf/
  11. signoff/
  12. spef/
  13. spi/
  14. verilog/
  15. .gitignore
  16. LICENSE
  17. Makefile
  18. README.md
README.md

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.