Clone this repo:

Branches

  1. bfe32f2 final gds oasis by Jeff DiCorpo · 1 year, 1 month ago main
  2. dbc547c Auto updated submodule references by Git bot · 1 year, 1 month ago
  3. 26a9d65 Initial commit, subservient for MPW4 by Klas Nordmark · 1 year, 1 month ago
  4. fc583ec Auto updated submodule references by Git bot · 1 year, 4 months ago
  5. 84b7ed9 Merge pull request #42 from Manarabdelaty/patch_4 by Jeff DiCorpo · 1 year, 4 months 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].