From 6b1086d94abd48d9216b6b19c8873eb67c294e61 Mon Sep 17 00:00:00 2001 From: Kareem Farid Date: Mon, 15 Jan 2024 13:51:54 +0200 Subject: [PATCH] fix more warnings generated by myst --- docs/source/reference/architecture.md | 3 +- docs/source/reference/pin_placement_cfg.md | 2 +- docs/source/usage/corners_and_sta.md | 2 +- docs/source/usage/hardening_macros.md | 74 ++++++++--------- docs/source/usage/writing_custom_steps.md | 93 ++++++++++++---------- openlane/flows/flow.py | 3 +- openlane/steps/step.py | 4 +- 7 files changed, 96 insertions(+), 85 deletions(-) diff --git a/docs/source/reference/architecture.md b/docs/source/reference/architecture.md index 311048d48..de39392f6 100644 --- a/docs/source/reference/architecture.md +++ b/docs/source/reference/architecture.md @@ -29,7 +29,8 @@ Steps should align themselves to one principle: - The same step with the same input configuration and same input state must emit the same output. - This is applied as far as the functionality goes: +(ref-step-strictures)= +This is applied as far as the functionality goes: - Steps **do NOT** modify files in-place. New files must be created in the step's dedicated directory. If the tool does not support out-of-place modification, diff --git a/docs/source/reference/pin_placement_cfg.md b/docs/source/reference/pin_placement_cfg.md index d5c4ad391..0398aebfb 100644 --- a/docs/source/reference/pin_placement_cfg.md +++ b/docs/source/reference/pin_placement_cfg.md @@ -1,6 +1,6 @@ # Pin Placer Configuration Files -If you're using the step {ref}`Odb.CustomIOPlacement ` +If you're using the step {ref}`Odb.CustomIOPlacement ` the variable `FP_PIN_ORDER_CFG` asks you to create a `.cfg` file that can be used to configure this placement step. diff --git a/docs/source/usage/corners_and_sta.md b/docs/source/usage/corners_and_sta.md index e74e4db5b..93f24a3d3 100644 --- a/docs/source/usage/corners_and_sta.md +++ b/docs/source/usage/corners_and_sta.md @@ -80,7 +80,7 @@ The sky130A/sky130_fd_sc_hd SCL, for example, comes with configurations for thes | "ss_100C_1v60" | {S, S} | 1.6 | 100 | `sky130_fd_sc_hd__ss_100C_1v60.lib` | | "ff_n40C_1v95" | {F, F} | 1.95 | -40 | `sky130_fd_sc_hd__ff_n40C_1v95.lib` | -- Interconnect: Corner data stored in {ref}`TECH_LEFS ` and {ref}`RCX_RULESETS ` +- Interconnect: Corner data stored in {ref}`TECH_LEFS ` and {ref}`RCX_RULESETS ` | Name | Description | Corresponding Technology LEF | Corresponding Ruleset | | ----- | ------------------------------- | ---------------------------- | ----------------------------------- | diff --git a/docs/source/usage/hardening_macros.md b/docs/source/usage/hardening_macros.md index 981d0d22f..a72be1e7a 100644 --- a/docs/source/usage/hardening_macros.md +++ b/docs/source/usage/hardening_macros.md @@ -38,7 +38,7 @@ The basic configuration `config.json` file for the default flow should at least contain these variables: - [`DESIGN_NAME`](#var-design_name) -- [`VERILOG_FILES`](#yosys-synthesis-var-verilog_files) +- [`VERILOG_FILES`](#var-yosys-synthesis-verilog_files) - [`CLOCK_PORT`](#var-clock_port) So, for example: @@ -60,13 +60,13 @@ Synthesis is the process by which RTL is transformed into logic primitives, then again transformed into a list of "standard cells"- silicon patterns. The default flow uses Yosys for Synthesis, namely, -[this step](../reference/step_config_vars.md#Yosys.Synthesis). +[this step](#step-yosys-synthesis) In general, there's not much to mess around with regards to synthesis, but here are some tips for using a couple variables: - If your macro is huge (200k+ cells), then you might want to try setting - [`SYNTH_NO_FLAT`](../reference/step_config_vars.md#Yosys.Synthesis.SYNTH_NO_FLAT) + [`SYNTH_NO_FLAT`](#var-yosys-synthesis-synth_no_flat) to `1` (Tcl)/`true` (JSON), which will postpone the flattening of the design during synthesis until the very end. @@ -85,16 +85,16 @@ the timing constraints on the design are met: Here are some variables you need to consider: -- [`CLOCK_PORT`](../reference/flow_config_vars.md#CLOCK_PORT): Self-explanatory. -- [`CLOCK_PERIOD`](../reference/flow_config_vars.md#CLOCK_PERIOD): The value will +- [`CLOCK_PORT`](#var-clock_port): Self-explanatory. +- [`CLOCK_PERIOD`](#var-clock_period): The value will be used to calculate any timing violations, and also in resizer stages, attempt to fix the cells in question. If the clock period could not be reasonably achieved, -- [`IO_DELAY_CONSTRAINT`](../reference/pdk_config_vars.md#IO_DELAY_CONSTRAINT) +- [`IO_DELAY_CONSTRAINT`](#var-io_delay_constraint) You may also want to write a custom SDC file to be used in STA and CTS. The default SDC file in the default flow is [this file](../../../openlane/scripts/base.sdc), however, you can change that by pointing to a new file with the environment variable -[`FALLBACK_SDC_FILE`](../reference/step_config_vars.md#Misc.LoadBaseSDC.FALLBACK_SDC_FILE) +[`FALLBACK_SDC_FILE`](#var-fallback_sdc_file) Currently, static timing analysis is done: @@ -117,13 +117,13 @@ You have three options for floorplanning in the default flow: 1. Let the tools determine the area relative to the size and number of cells. -- This is done by setting [`FP_SIZING`](../reference/step_config_vars.md#OpenROAD.Floorplan.FP_SIZING) - to `relative` (the default value), and setting [`FP_CORE_UTIL`](../reference/step_config_vars.md#OpenROAD.Floorplan.FP_CORE_UTIL) +- This is done by setting [`FP_SIZING`](#var-openroad-floorplan-fp_sizing) + to `relative` (the default value), and setting [`FP_CORE_UTIL`](#var-openroad-floorplan-fp_core_util) as the core utilization percentage. You may also the aspect ratio - (`1` by default) by changing [`FP_ASPECT_RATIO`](../reference/step_config_vars.md#OpenROAD.Floorplan.FP_ASPECT_RATIO). + (`1` by default) by changing [`FP_ASPECT_RATIO`](#var-openroad-floorplan-fp_aspect_ratio). -2. Set a specific die area by setting [`FP_SIZING`](../reference/step_config_vars.md#OpenROAD.Floorplan.FP_SIZING) - to `absolute` and setting the [`DIE_AREA` configuration variable](../reference/step_config_vars.md#OpenROAD.Floorplan.DIE_AREA). +2. Set a specific die area by setting [`FP_SIZING`](#var-openroad-floorplan-fp_sizing) + to `absolute` and setting the [`DIE_AREA` configuration variable](#var-die_area).