diff --git a/openlane/caravel_core/config.json b/openlane/caravel_core/config.json new file mode 100644 index 00000000..ab00b1f0 --- /dev/null +++ b/openlane/caravel_core/config.json @@ -0,0 +1,774 @@ +{ + "meta": { + "version": 2, + "flow": [ + "Yosys.JsonHeader", + "Yosys.Synthesis", + "OpenROAD.CheckSDCFiles", + "OpenROAD.Floorplan", + "Odb.SetPowerConnections", + "Odb.ManualMacroPlacement", + "OpenROAD.TapEndcapInsertion", + "OpenROAD.GlobalPlacementSkipIO", + "OpenROAD.IOPlacement", + "Odb.CustomIOPlacement", + "OpenROAD.GlobalPlacement", + "Odb.AddPDNObstructions", + "OpenROAD.GeneratePDN", + "OpenROAD.RepairDesignPostGPL", + "OpenROAD.DetailedPlacement", + "OpenROAD.CTS", + "OpenROAD.CTS", + "OpenROAD.ResizerTimingPostCTS", + "OpenROAD.ResizerTimingPostCTS", + "Odb.DiodesOnPorts", + "Odb.HeuristicDiodeInsertion", + "OpenROAD.DetailedPlacement", + "OpenROAD.GlobalRouting", + "OpenROAD.RepairDesignPostGRT", + "OpenROAD.ResizerTimingPostGRT", + "OpenROAD.ResizerTimingPostGRT", + "OpenROAD.RepairAntennas", + "OpenROAD.DetailedPlacement", + "OpenROAD.DetailedRouting", + "Checker.TrDRC", + "Odb.ReportDisconnectedPins", + "Odb.ReportWireLength", + "OpenROAD.CheckAntennas", + "Checker.WireLength", + "OpenROAD.FillInsertion", + "OpenROAD.RCX", + "OpenROAD.STAPostPNR", + "OpenROAD.STAPostPNR", + "OpenROAD.IRDropReport", + "Magic.StreamOut", + "KLayout.StreamOut", + "Magic.WriteLEF", + "KLayout.XOR", + "Checker.XOR", + "Magic.DRC", + "KLayout.DRC", + "Checker.MagicDRC", + "Checker.KLayoutDRC", + "Magic.SpiceExtraction", + "Checker.IllegalOverlap", + "Netgen.LVS", + "Checker.LVS" + ] + }, + "DESIGN_NAME": "caravel_core", + "CLOCK_PORT": "clock_core", + "CLOCK_NET": "caravel_clk", + "CLOCK_PERIOD": 25, + "PNR_SDC_FILE": "dir::/sdc_files/base.sdc", + "SIGNOFF_SDC_FILE": "dir::/sdc_files/signoff.sdc", + "MAX_FANOUT_CONSTRAINT": 14, + + "//": "SYNTHESIS", + "VERILOG_FILES": [ + "dir::/mgmt_core_wrapper.tap.v" + ], + + "//": "FLOORPLAN", + "FP_PIN_ORDER_CFG": "dir::/floorplan_configuration/pin_order.cfg", + "FP_DEF_TEMPLATE": "dir::/floorplan_configuration/io.def", + "FP_SIZING": "absolute", + "DIE_AREA": [0, 0, 3165, 4767], + "CORE_AREA": [10, 10, 3155, 4757], + "FP_IO_VEXTEND": 2, + "FP_IO_HEXTEND": 2, + "FP_TAPCELL_DIST": 10, + "PL_MACRO_HALO": [-1, -3], + + "//": "MACROS", + "MACROS": { + "mgmt_core_wrapper": { + "gds": [ + "dir::/../../../caravel_mgmt_soc/gds/mgmt_core_wrapper.gds.gz" + ], + "lef": [ + "dir::/../../../caravel_mgmt_soclef/mgmt_core_wrapper.lef" + ], + "instances": { + "soc": { + "location": [2650, 190], + "orientation": "N" + } + }, + "nl": [ + "dir::/../../verilog/gl/mgmt_core_wrapper.v" + ], + "spef": { + "min_*": [ + "dir::/../../signoff/mgmt_core_wrapper/openlane-signoff/spef/mgmt_core_wrapper.min.spef" + ], + "nom_*": [ + "dir::/../../signoff/mgmt_core_wrapper/openlane-signoff/spef/mgmt_core_wrapper.nom.spef" + ], + "max_*": [ + "dir::/../../signoff/mgmt_core_wrapper/openlane-signoff/spef/mgmt_core_wrapper.max.spef" + ] + }, + "lib": { + "*": [ + "dir::/../../lib/mgmt_core_wrapper.lib" + ] + } + }, + "user_id_programming": { + "gds": [ + "dir::/../../gds/user_id_programming.gds.gz" + ], + "lef": [ + "dir::/../../lef/user_id_programming.lef" + ], + "instances": { + "user_id_value": { + "location": [2962.655, 129.19], + "orientation": "N" + } + }, + "nl": [ + "dir::/../../verilog/rtl/user_id_programming.v" + ] + }, + "user_project_wrapper": { + "gds": [ + "dir::/../../gds/user_project_wrapper_empty.gds.gz" + ], + "lef": [ + "dir::/../../lef/user_project_wrapper_empty.lef" + ], + "instances": { + "mprj": { + "location": [121.74, 1037], + "orientation": "N" + } + }, + "nl": [ + "dir::/../../verilog/rtl/__user_project_wrapper.v" + ], + "lib": { + "*": [ + "dir::/../../lib/user_project_wrapper.lib" + ] + } + }, + "housekeeping_alt": { + "gds": [ + "dir::/../../gds/housekeeping_alt.gds.gz" + ], + "lef": [ + "dir::/../../lef/housekeeping_alt.lef" + ], + "instances": { + "housekeeping": { + "location": [2650, 190], + "orientation": "N" + } + }, + "nl": [ + "dir::/../../verilog/gl/housekeeping_alt.v" + ], + "spef": { + "min_*": [ + "dir::/../../signoff/housekeeping_alt/openlane-signoff/spef/housekeeping_alt.min.spef" + ], + "nom_*": [ + "dir::/../../signoff/housekeeping_alt/openlane-signoff/spef/housekeeping_alt.nom.spef" + ], + "max_*": [ + "dir::/../../signoff/housekeeping_alt/openlane-signoff/spef/housekeeping_alt.max.spef" + ] + }, + "lib": { + "*": [ + "dir::/../../lib/housekeeping_alt.lib" + ] + } + }, + "simple_por": { + "gds": [ + "dir::/../../gds/simple_por.gds.gz" + ], + "lef": [ + "dir::/../../lef/simple_por.lef" + ], + "instances": { + "por": { + "location": [1063.15, 135], + "orientation": "MX" + } + }, + "nl": [ + "dir::/../../verilog/rtl/simple_por.v" + ] + }, + "xres_buf": { + "gds": [ + "dir::/../../gds/xres_buf.gds.gz" + ], + "lef": [ + "dir::/../../lef/xres_buf.lef" + ], + "instances": { + "rstb_level": { + "location": [683.62, 26], + "orientation": "S" + } + }, + "nl": [ + "dir::/../../verilog/rtl/xres_buf.v" + ] + }, + "spare_logic_block": { + "gds": [ + "dir::/../../gds/spare_logic_block.gds.gz" + ], + "lef": [ + "dir::/../../lef/spare_logic_block.lef" + ], + "instances": { + "spare_logic\\[0\\]": { + "location": [454, 778.2], + "orientation": "N" + }, + "spare_logic\\[1\\]": { + "location": [1054, 658.2], + "orientation": "N" + }, + "spare_logic\\[2\\]": { + "location": [1554, 658.2], + "orientation": "N" + }, + "spare_logic\\[3\\]": { + "location": [2054, 658.2], + "orientation": "N" + } + }, + "nl": [ + "dir::/../../verilog/gl/spare_logic_block.v" + ] + }, + "mprj_io_buffer": { + "gds": [ + "dir::/../../gds/mprj_io_buffer.gds.gz" + ], + "lef": [ + "dir::/../../lef/mprj_io_buffer.lef" + ], + "instances": { + "gpio_buf": { + "location": [165.14, 765], + "orientation": "N" + } + }, + "nl": [ + "dir::/../../verilog/gl/mprj_io_buffer.v" + ], + "spef": { + "min_*": [ + "dir::/../../signoff/mprj_io_buffer/openlane-signoff/spef/mprj_io_buffer.min.spef" + ], + "nom_*": [ + "dir::/../../signoff/mprj_io_buffer/openlane-signoff/spef/mprj_io_buffer.nom.spef" + ], + "max_*": [ + "dir::/../../signoff/mprj_io_buffer/openlane-signoff/spef/mprj_io_buffer.max.spef" + ] + }, + "lib": { + "*": [ + "dir::/../../lib/mprj_io_buffer.lib" + ] + } + }, + "gpio_defaults_block": { + "gds": [ + "dir::/../../gds/gpio_defaults_block.gds.gz" + ], + "lef": [ + "dir::/../../lef/gpio_defaults_block.lef" + ], + "instances": { + "gpio_defaults_block_0": { + "location": [3137, 230], + "orientation": "N" + }, + "gpio_defaults_block_1": { + "location": [3137, 460], + "orientation": "N" + }, + "gpio_defaults_block_2": { + "location": [3137, 680], + "orientation": "N" + }, + "gpio_defaults_block_3": { + "location": [3137, 910], + "orientation": "N" + }, + "gpio_defaults_block_4": { + "location": [3137, 1130], + "orientation": "N" + }, + "gpio_defaults_block_5": { + "location": [3137, 1350], + "orientation": "N" + }, + "gpio_defaults_block_6": { + "location": [3137, 1590], + "orientation": "N" + }, + "gpio_defaults_block_7": { + "location": [3137, 2460], + "orientation": "N" + }, + "gpio_defaults_block_8": { + "location": [3137, 2700], + "orientation": "N" + }, + "gpio_defaults_block_9": { + "location": [3137, 2920], + "orientation": "N" + }, + "gpio_defaults_block_10": { + "location": [3137, 3150], + "orientation": "N" + }, + "gpio_defaults_block_11": { + "location": [3137, 3380], + "orientation": "N" + }, + "gpio_defaults_block_12": { + "location": [3137, 3600], + "orientation": "N" + }, + "gpio_defaults_block_13": { + "location": [3137, 4030], + "orientation": "N" + }, + "gpio_defaults_block_14": { + "location": [3137, 4480], + "orientation": "N" + }, + "gpio_defaults_block_15": { + "location": [2922.66, 4653], + "orientation": "N" + }, + "gpio_defaults_block_16": { + "location": [2622.66, 4653], + "orientation": "N" + }, + "gpio_defaults_block_17": { + "location": [2322.66, 4653], + "orientation": "N" + }, + "gpio_defaults_block_18": { + "location": [2022.66, 4653], + "orientation": "N" + }, + "gpio_defaults_block_19": { + "location": [1722.66, 4653], + "orientation": "N" + }, + "gpio_defaults_block_20": { + "location": [1422.66, 4653], + "orientation": "N" + }, + "gpio_defaults_block_21": { + "location": [1122.66, 4653], + "orientation": "N" + }, + "gpio_defaults_block_22": { + "location": [822.66, 4653], + "orientation": "N" + }, + "gpio_defaults_block_23": { + "location": [522.66, 4653], + "orientation": "N" + }, + "gpio_defaults_block_24": { + "location": [10, 4530], + "orientation": "FN" + }, + "gpio_defaults_block_25": { + "location": [10, 3680], + "orientation": "FN" + }, + "gpio_defaults_block_26": { + "location": [10, 3460], + "orientation": "FN" + }, + "gpio_defaults_block_27": { + "location": [10, 3240], + "orientation": "FN" + }, + "gpio_defaults_block_28": { + "location": [10, 3030], + "orientation": "FN" + }, + "gpio_defaults_block_29": { + "location": [10, 2800], + "orientation": "FN" + }, + "gpio_defaults_block_30": { + "location": [10, 2600], + "orientation": "FN" + }, + "gpio_defaults_block_31": { + "location": [10, 2390], + "orientation": "FN" + }, + "gpio_defaults_block_32": { + "location": [10, 1740], + "orientation": "FN" + }, + "gpio_defaults_block_33": { + "location": [10, 1530], + "orientation": "FN" + }, + "gpio_defaults_block_34": { + "location": [10, 1300], + "orientation": "FN" + }, + "gpio_defaults_block_35": { + "location": [10, 1090], + "orientation": "FN" + }, + "gpio_defaults_block_36": { + "location": [10, 870], + "orientation": "FN" + }, + "gpio_defaults_block_37": { + "location": [10, 660], + "orientation": "FN" + } + + }, + "nl": [ + "dir::/../../verilog/gl/gpio_defaults_block.v" + ] + }, + "gpio_logic_high": { + "gds": [ + "dir::/../../gds/gpio_logic_high.gds.gz" + ], + "lef": [ + "dir::/../../lef/gpio_logic_high.lef" + ], + "instances": { + "gpio_control_bidir_1[0].gpio_logic_high": { + "location": [3128.9, 200], + "orientation": "N" + }, + "gpio_control_bidir_1[1].gpio_logic_high": { + "location": [3128.9, 430], + "orientation": "N" + }, + "gpio_control_in_1a[0].gpio_logic_high": { + "location": [3128.9, 650], + "orientation": "N" + }, + "gpio_control_in_1a[1].gpio_logic_high": { + "location": [3128.9, 880], + "orientation": "N" + }, + "gpio_control_in_1a[2].gpio_logic_high": { + "location": [3128.9, 1100], + "orientation": "N" + }, + "gpio_control_in_1a[3].gpio_logic_high": { + "location": [3128.9, 1320], + "orientation": "N" + }, + "gpio_control_in_1a[4].gpio_logic_high": { + "location": [3128.9, 1560], + "orientation": "N" + }, + "gpio_control_in_1a[5].gpio_logic_high": { + "location": [3128.9, 2430], + "orientation": "N" + }, + "gpio_control_in_1[0].gpio_logic_high": { + "location": [3128.9, 2670], + "orientation": "N" + }, + "gpio_control_in_1[1].gpio_logic_high": { + "location": [3128.9, 2890], + "orientation": "N" + }, + "gpio_control_in_1[2].gpio_logic_high": { + "location": [3128.9, 3120], + "orientation": "N" + }, + "gpio_control_in_1[3].gpio_logic_high": { + "location": [3128.9, 3350], + "orientation": "N" + }, + "gpio_control_in_1[4].gpio_logic_high": { + "location": [3128.9, 3570], + "orientation": "N" + }, + "gpio_control_in_1[5].gpio_logic_high": { + "location": [3128.9, 4000], + "orientation": "N" + }, + "gpio_control_in_1[6].gpio_logic_high": { + "location": [3128.9, 4450], + "orientation": "N" + }, + "gpio_control_in_1[7].gpio_logic_high": { + "location": [2755, 4655], + "orientation": "FN" + }, + "gpio_control_in_1[8].gpio_logic_high": { + "location": [2355, 4655], + "orientation": "FN" + }, + "gpio_control_in_1[9].gpio_logic_high": { + "location": [2055, 4655], + "orientation": "FN" + }, + "gpio_control_in_1[10].gpio_logic_high": { + "location": [1755, 4655], + "orientation": "FN" + }, + "gpio_control_in_2[0].gpio_logic_high": { + "location": [1455, 4655], + "orientation": "FN" + }, + "gpio_control_in_2[1].gpio_logic_high": { + "location": [1155, 4655], + "orientation": "FN" + }, + "gpio_control_in_2[2].gpio_logic_high": { + "location": [955, 4655], + "orientation": "FN" + }, + "gpio_control_in_2[3].gpio_logic_high": { + "location": [555, 4655], + "orientation": "FN" + }, + "gpio_control_in_2[4].gpio_logic_high": { + "location": [255, 4655], + "orientation": "FN" + }, + "gpio_control_in_2[5].gpio_logic_high": { + "location": [11, 4500], + "orientation": "N" + }, + "gpio_control_in_2[6].gpio_logic_high": { + "location": [11, 3650], + "orientation": "N" + }, + "gpio_control_in_2[7].gpio_logic_high": { + "location": [11, 3430], + "orientation": "N" + }, + "gpio_control_in_2[8].gpio_logic_high": { + "location": [11, 3210], + "orientation": "N" + }, + "gpio_control_in_2[9].gpio_logic_high": { + "location": [11, 3000], + "orientation": "N" + }, + "gpio_control_in_2[10].gpio_logic_high": { + "location": [11, 2770], + "orientation": "N" + }, + "gpio_control_in_2[11].gpio_logic_high": { + "location": [11, 2570], + "orientation": "N" + }, + "gpio_control_in_2[12].gpio_logic_high": { + "location": [11, 2360], + "orientation": "N" + }, + "gpio_control_in_2[13].gpio_logic_high": { + "location": [11, 1710], + "orientation": "N" + }, + "gpio_control_in_2[14].gpio_logic_high": { + "location": [11, 1500], + "orientation": "N" + }, + "gpio_control_in_2[15].gpio_logic_high": { + "location": [11, 1270], + "orientation": "N" + }, + "gpio_control_bidir_2[0].gpio_logic_high": { + "location": [11, 1060], + "orientation": "N" + }, + "gpio_control_bidir_2[1].gpio_logic_high": { + "location": [11, 840], + "orientation": "N" + }, + "gpio_control_bidir_2[2].gpio_logic_high": { + "location": [11, 630], + "orientation": "N" + } + }, + "nl": [ + "dir::/../../verilog/gl/gpio_logic_high.v" + ], + "spef": { + "min_*": [ + "dir::/../../signoff/gpio_logic_high/openlane-signoff/spef/gpio_logic_high.min.spef" + ], + "nom_*": [ + "dir::/../../signoff/gpio_logic_high/openlane-signoff/spef/gpio_logic_high.nom.spef" + ], + "max_*": [ + "dir::/../../signoff/gpio_logic_high/openlane-signoff/spef/gpio_logic_high.max.spef" + ] + }, + "lib": { + "*": [ + "dir::/../../lib/gpio_logic_high.lib" + ] + } + }, + "mprj_logic_high": { + "gds": [ + "dir::/../../gds/mprj_logic_high.gds.gz" + ], + "lef": [ + "dir::/../../lef/mprj_logic_high.lef" + ], + "instances": { + "mgmt_buffers.mprj_logic_high_inst": { + "location": [1190.94, 900], + "orientation": "N" + } + }, + "nl": [ + "dir::/../../verilog/gl/mprj_logic_high.v" + ] + }, + "mprj2_logic_high": { + "gds": [ + "dir::/../../gds/mprj2_logic_high.gds.gz" + ], + "lef": [ + "dir::/../../lef/mprj2_logic_high.lef" + ], + "instances": { + "mgmt_buffers.mprj2_logic_high_inst": { + "location": [823, 900], + "orientation": "FN" + } + }, + "nl": [ + "dir::/../../verilog/gl/mprj2_logic_high.v" + ] + }, + "mgmt_protect_hv": { + "gds": [ + "dir::/../../gds/mgmt_protect_hv.gds.gz" + ], + "lef": [ + "dir::/../../lef/mgmt_protect_hv.lef" + ], + "instances": { + "mgmt_buffers.powergood_check": { + "location": [1794, 900], + "orientation": "N" + } + }, + "nl": [ + "dir::/../../verilog/gl/mgmt_protect_hv.v" + ] + }, + "caravel_clocking": { + "gds": [ + "dir::/../../gds/caravel_clocking.gds.gz" + ], + "lef": [ + "dir::/../../lef/caravel_clocking.lef" + ], + "instances": { + "clock_ctrl": { + "location": [1545, 183], + "orientation": "N" + } + }, + "nl": [ + "dir::/../../verilog/gl/caravel_clocking.v" + ], + "spef": { + "min_*": [ + "dir::/../../signoff/caravel_clocking/openlane-signoff/spef/caravel_clocking.min.spef" + ], + "nom_*": [ + "dir::/../../signoff/caravel_clocking/openlane-signoff/spef/caravel_clocking.nom.spef" + ], + "max_*": [ + "dir::/../../signoff/caravel_clocking/openlane-signoff/spef/caravel_clocking.max.spef" + ] + }, + "lib": { + "*": [ + "dir::/../../lib/caravel_clocking.lib" + ] + } + } + }, + + "//": "PDN", + "FP_PDN_VERTICAL_HALO": 8, + "FP_PDN_HORIZONTAL_HALO": 1, + "FP_PDN_ENABLE_MACROS_GRID": 1, + "PDN_CFG": "dir::/pdn_configuration/pdn.tcl", + "FP_PDN_CHECK_NODES": 0, + "FP_PDN_CORE_RING": 1, + "FP_PDN_SKIPTRIM": 0, + "FP_PDN_CORE_RING_VWIDTH": 10, + "FP_PDN_CORE_RING_HWIDTH": 10, + "FP_PDN_CORE_RING_VSPACING": 2, + "FP_PDN_CORE_RING_HSPACING": 2, + "FP_PDN_CORE_RING_VOFFSET": 0, + "FP_PDN_CORE_RING_HOFFSET": 0, + "FP_PDN_VPITCH": 264, + "FP_PDN_HPITCH": 360, + "FP_PDN_VSPACING": 19, + "FP_PDN_HSPACING": 27, + "FP_PDN_VWIDTH": 3, + "FP_PDN_HWIDTH": 3, + "FP_PDN_HOFFSET": 30.65, + "FP_PDN_VOFFSET": 3.5, + + "//": "PLACEMENT", + "PL_TIME_DRIVEN": true, + "PL_TARGET_DENSITY_PCT": 32, + "PL_RESIZER_DESIGN_OPTIMIZATIONS": true, + "PL_RESIZER_TIMING_OPTIMIZATIONS": true, + "PL_RESIZER_HOLD_SLACK_MARGIN": 0.1, + "DESIGN_REPAIR_MAX_SLEW_PCT": 10, + "DESIGN_REPAIR_MAX_CAP_PCT": 10, + "DESIGN_REPAIR_MAX_WIRE_LENGTH": 1100, + + "//": "CTS", + "CTS_MAX_CAP": 0.3, + "CTS_CLK_MAX_WIRE_LENGTH": 800, + "CTS_SINK_CLUSTERING_SIZE": 30, + "CTS_SINK_CLUSTERING_MAX_DIAMETER": 140, + + "//": "ROUTING", + "RT_CLOCK_MIN_LAYER": "met3", + "DRT_THREADS": 24, + "GRT_ADJUSTMENT": 0.02, + "GRT_ALLOW_CONGESTION": true, + "GLB_RESIZER_TIMING_OPTIMIZATIONS": true, + "GRT_RESIZER_HOLD_SLACK_MARGIN": 0.05, + "GRT_RESIZER_SETUP_SLACK_MARGIN": 0.2, + "GRT_DESIGN_REPAIR_MAX_WIRE_LENGTH": 1100, + "GRT_ANTENNA_ITERS": 50, + + "//": "DONT TOUCH", + "RSZ_DONT_TOUCH_RX": "analog_io|rstb_h|porb_h|serial_clock_out|serial_load_out|ringosc|mgmt_buffers.la_data_out_core|mprj_ack_i_user|mprj_dat_i_user|user_irq_core", + + "//": "MAGIC", + "MAGIC_DEF_LABELS": false +} \ No newline at end of file