add initial openlane2 configuration for `caravel_core`

This commit is contained in:
mo-hosni 2024-01-18 00:50:00 +02:00
parent cd263ed24b
commit fb2023d3e4
1 changed files with 774 additions and 0 deletions

View File

@ -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
}