Git Product home page Git Product logo

mpc's Introduction

Caravel Mini

The objective is to enable multiple users to share the same Caravel chip. This would allow several small MPW projects to be implemented into a single chip, increasing the number of designs per each MPW run.

To minimize the effort, we leverage the existing Caravel chip design through a custom user’s project wrapper design. This unique design partitions the user’s project area between multiple projects. After fabrication, only one design can be active at any time. Design selection is performed through two dedicated I/O pads.

Configurations

The number of projects per chip depends on the configuration. We planned 3 configurations:

  • 4 (2x2) designs, each 1.3x1.6 $mm^2$ (~ 200K Sky130 HD cells)
  • 9 (3x3) designs, each 0.85x1.0 $mm^2$ (~ 80K Sky130 HD cells)
  • 20 (4x5) designs, each 0.6x0.6 $mm^2$ (~ 40K Sky130 HD cells)

Benefits

For chipIgnite runs, it would reduce the fabrication cost for designs that don’t utilize the whole user’s area. Each design can still access most of Caravel user's I/Os as well as the Wishbone bus.

User's Project available resources (4 projects config)

Each project gets the following:

  • Area of 1300 um x 1600 um (for 4 projects/chip configuration)
  • 36 IO ports.
  • 32 logic analyzer probes only.
  • Wishbone port connection to the management SoC wishbone bus.
  • 1 digital power domain only.

Limitations

  • Analog IOs are not supported.
  • Metal5 cannot be used in the user's project.
  • The User's project has a fixed PDN configuration.

Clocking and Powering (4 projects config)

  • The Clock is enabled only for the selected project. The active project selection is achieved through Caravel I/Os 36 and 37.
  • Each project is assigned one power supply (either vccd1 or vccd2) based on it location in the chip. The left side projects are powered by vccd2 and the right side projects are powered using vccd1. The power supply domain not used for the active project can be disabled on the development board. There is no on-chip power switching to power down non-active projects.

Steps to Harden Caravel Mini

In order to harden such chip,

  1. The 4 multiple projects should be hardened with a fixed floorplan, PDN, and boundary constraints.
  2. Then, the top-level should be hardened. Or it can be regenerated using the new multiple user projects.

To rebuild everything using the current designs. Run the following:

export OPENLANE_ROOT=<openlane_dir>
export OPENLANE_TAG=<openlane commit_id>
epxort PDK_ROOT=<pdk dir>
export PDK=sky130A
cd openlane
make user_project_1
make user_project_3
make user_project_5
make user_project_7
make user_project_wrapper

In order to regenerate the wrapper with new designs, you can the following as in this commit

  1. Change the multiple project names in the mag/user_project_wrapper.mag image

  2. Make sure that the new projects mag files are under mag/

  3. Regenarate the user project wrapper GDS using this script

mpc's People

Contributors

mo-hosni avatar shalan avatar passant5 avatar m0stafarady avatar jeffdi avatar marwaneltoukhy avatar

Stargazers

Mohamed Kassem avatar Renaldas Zioma avatar Spencer Bowles avatar

Watchers

 avatar

mpc's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.