Published using Google Docs
Efabless MPW Projects - How to Check Your Project for Timing Violations
Updated automatically every 5 minutes

Checking MPW Submissions
for Timing Violations
[1]

Last updated: 29th October 2021

This document provides instructions for how to check an existing MPW project for timing issues if you have used OpenLane to harden digital blocks.

If your designs were hardened with OpenLane prior to the ‘mpw-3’ tag (commit  2e6f340), then your resulting design may suffer from timing violations (such as hold violations) which will prevent your design from functioning.

Suggestions and comments can be added to this document using this link.

MPW-1 / MPW-2

How to check your design for timing violations?

What to do after finding a timing violation?

MPW-3

How to check your design for timing violations?

What to do after finding a timing violation?


MPW-1 / MPW-2

While users are unable to correct designs on MPW-1 or MPW-2, you can check if your design has any timing violations.

How to check your design for timing violations?

Below are the instructions to rerun timing:

STEP 1 -- Update your project / tooling / environment

  1. Update Caravel — cd to the caravel directory in your project and do a ‘git pull
  2. Update OpenLane — run ‘make openlane’ from the project root
  3. Update the PDK — run ‘make pdk’ from the project root

STEP 2 -- Setup your timing constraints

Create an SDC file if you do not already have one at openlane/<macro-name>/base.sdc 

If you do not already have a custom base.sdc, you can use the attached file - just define CLOCK_PORT and CLOCK_PERIOD at the top of the file.

STEP 3 -- Run timing analysis on your project and check for violations

To run timing, use the following commands from the project root…

export OPENLANE_ROOT=<openlane-root>
export CARAVEL_ROOT=$(pwd)/caravel
make rcx-<macro-name>

The timing results will be located in reports found under the runs/*/reports/* folders.  Any timing violations will be reported at the top.  A violation will be indicated by a negative value at the bottom with a ‘slack (VIOLATED)’ next to it.  A successful result will show a positive slack value with ‘slack (MET)’ next to it.

What to do after finding a timing violation?

If you do find an issue, please let us know.  We are collecting data to understand how widespread the issue is.

Send us an email with the details at timing@efabless.com .

We cannot correct your design on the current shuttles but you can resubmit your project for MPW-3 or MPW-4.


MPW-3

The deadline for MPW-3 has been extended to allow additional time for users to verify their MPW-3 submissions.

How to check your design for timing violations?

Please update your OpenLane repo and rerun your project to ensure you have picked up the latest updates to the flow.  The recommended tag is mpw-3a at https://github.com/efabless/OpenLane.  

The timing results will be located in reports found under the runs/*/reports/* folders.  Any timing violations will be reported at the top.  A violation will be indicated by a negative value at the bottom with a ‘slack (VIOLATED)’ next to it.  A successful result will show a positive slack value with ‘slack (MET)’ next to it.

OpenLane has been updated to address a timing violation issue identified from MPW-1.  This change was related to an issue correctly with respect to RC extraction and identifying timing violations after layout.  A change was also made to improve clock tree synthesis.

What to do after finding a timing violation?

If you do run into timing issues for your project, please see the following document for guidance. We’ve also created Slack channel #timing-closure to assist with questions or issues you might have.

If you do find an issue, correct and rerun your project to submit it before the deadline.

Getting Help

Efabless is providing best effort help around these issues for participants in the MPW program through the #timing-closure channel on SkyWater PDK channel <https://join.skywater.tools>.

The community around the program has also been extremely generous in providing substantial help to people asking for assistance.

Groups wishing


[1] Limited to digital designs which are using OpenLane.