commit | a1ae4f91c12da4bd7348a932ab44acfa98da5449 | [log] [tgz] |
---|---|---|
author | m-usama-z <107983847+m-usama-z@users.noreply.github.com> | Sat Nov 26 15:55:35 2022 +0500 |
committer | GitHub <noreply@github.com> | Sat Nov 26 15:55:35 2022 +0500 |
tree | 68dac5d34d1f2b9a00cfea2b49517f47aca827aa | |
parent | 5b0d2f0829ba44a5e2539dc7f558e7fe1af10320 [diff] |
Update README.md
UETRV_ECORE_v2 is a RISC-V based SoC derived from UETRV_ESoC with a few changes. UETRV_ESoC_v2 has been passed through the Cadence VLSI flow for submission to Google and Efabless' Open MPW-8 shuttle program using Skywater‘s open-source 130 nm PDK (the project can be found on Efabless’ website here). The verilog RTL used in this repo is generated from Scala source, available here. Further details about the peripheral memory map, bootloader, example programs, testbenches etc. are also provided in that repo.
The following are the differences between UETRV_ESoC_v2 and UETRV_ESoC:
The io_ports testbench provided in the caravel_user_project template configures and tests GPIOs' functionality. It has been merged with UETRV_ESoC‘s testbench (old_tb), resulting in io_ports_tb.v. This testbench runs full chip simulation by configuring the GPIOs using firmware for caravel’s management SoC, then it loads a program into UETRV_ESoC_v2 over GPIOs configured for SPI, then a sample firmware program transmits characters over UART. These characters are fed back to UETRV_ESoC_v2 by UART loopback. Some of these characters are commands for moving a plotter's pen as described below:
The testbench waits for each command to occur and verifies that the step and direction outputs for stepper motors, and the PWM output for the servo motor lifting and dropping the pen, have changed properly.