4.8 Debug your run

Introduction

When you implement your design using the opensource tools. There is a high chance that you will get into the problem. At this moment, you will need to review the error, understand it and then propose a solution. This guide will try to show you a way to visualize the design, go to the spots that have problems and verify them.

Handling Errors in OpenLane

When running OpenLane, any errors encountered during running the flow will appear in the log files stored within runs folder, tagged with the corresponding step. You can review these log files to identify the issues and debug before rerunning the process.

error

In case you are unsure how to debug the errors after reviewing these logs, an **issue_reproducible ** folder will always be generated. You can compress this folder and send it to the community to help you solve the errors.

issue_reproducible

Handling Errors in Efabless Platform

While submitting a project in the Efabless Platform, you may encounter errors during steps such as Precheck Job or Tapeout Job. If any issues arise during the above steps, click on Request Job Data. The job data, including logs and outputs files, will be sent to your email for further inspection and debugging. You can also share these files with the community to help you identify and solve the issue.

request_job_data

Using OpenROAD GUI for Layout Inspection

The OpenROAD GUI can be used for inspecting and resolving errors during place-and-route in the digital flow. Use the following command to launch the GUI and examine your design for potential issues:

docker run -it -u $(id -u $USER):$(id -g $USER) -v `pwd`:`pwd` \
    -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix \
    efabless/openlane:2023.07.19-1 sh -c "openroad"

Then run read_db command with the path to an OpenDB database file (.odb ) at the desired step. For example:

Openroad Tcl Command

read_db runs/24_10_24_22_12/results/floorplan/controller.odb

After that, use this command to open the GUI feature:

Openroad Tcl Command

gui::show
cass@unic-cass:/mnt/d/BEC/bec-unic$ docker run -it -u $(id -u $USER):$(id -g $USER) -v `pwd`:`pwd` -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix efabless/openlane:2023.07.19-1 sh -c "openroad"
OpenROAD 41a51eaf4ca2171c92ff38afb91eb37bbd3f36da
This program is licensed under the BSD-3 license. See the LICENSE file for details.
Components of this program may be licensed under more restrictive licenses which must be honored.
warning: `//.tclsh-history' is not writable.
openroad> read_db /mnt/d/BEC/bec-unic/openlane/controller/runs/24_10_24_22_12/results/floorplan/controller.odb
openroad> gui::show
[WARNING GUI-0076] QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-'

This is the Openroad GUI with the layout opened.

openroad_gui

References

  1. Psychogenic Technologies, ” From top to Transistors: opensource Verilog to ASIC flow.”