Subservient: ASIC adaption of SERV, the award-winning bit serial RISC-V processor.

Clone this repo:

Branches

  1. d708441 Updating the shuttle_url value in `info.yaml` file. by Tim 'mithro' Ansell · 2 years ago main
  2. 62e35a1 final gds & signoff results by Jeff DiCorpo · 3 years ago
  3. ac46a23 final gds oasis by Jeff DiCorpo · 3 years ago
  4. 9e550ee final gds & signoff results by Jeff DiCorpo · 3 years ago
  5. 5e1a375 final gds oasis by Jeff DiCorpo · 3 years ago

License UPRJ_CI Caravel Build

Subservient

This project constists of an ASIC-adapted version of the award-winning bit-serial RISC-V processor SERV. The macro was built from the subservient_wrapped repository linked later, which combines Subservient with 512 bytes of RAM (generated from RTL, as no satisfactory memory compiler was available in good time), used both as main memory and register file. For more information on subservient_wrapped, subservient and SERV, the original repositories can be accessed below. The repositories depend on each other through the Fusesoc packet management and tool abstraction system - this project was created to demonstrate Fusesoc in an ASIC context.

https://github.com/klasnordmark/subservient_wrapped

https://github.com/olofk/subservient

https://github.com/olofk/serv

Usage

Subservient has access to the outside world through io_out[1]. To access it from the Caravel management processor (which is how you would program Subservient), keep it in “debug” mode by holding la_data_in[0] low. In this state, the 512 byte memory is accessible by the Caravel management processor over the Wishbone interface and Subservient does not run. The subservient_blinky full chip test included under verilog/dv gives an example of this, programming Subservient with a small ‘blink’ program toggling io_out[1].