MegaBoom with OpenROAD, what should the .sdc file look like?

57 views
Skip to first unread message

Øyvind Harboe

unread,
Jan 9, 2024, 5:55:11 AM1/9/24
to Chipyard
I have now built Verilog files to use with OpenROAD with:

make tutorial=sky130-openroad CONFIG=ChipLikeMegaBoomConfig buildfile

What should the .sdc file look like for the clocks at ChipTop?


- "clock" - it looks like this can be on the order of 5000ps in OpenROAD.
- "serial_tl_0_clock" - 1000ps in OpenROAD seems to work...
- I had to mock the PLL by introducing a "fake_pll_clk" in ChipTop as Yosys couldn't compile the PLL


Modifications to Chipyard to build the above: https://groups.google.com/g/chipyard/c/BXsafsGlhJ0/m/lwUHEVGdAwAJ

Bazel layer on OpenROAD-flow-scripts tested with MegaBoom:


The clock tree now looks much more promising, there is something strange going on on the right hand side though...

Screenshot from 2024-01-09 10-59-37.png





Øyvind Harboe

unread,
Jan 12, 2024, 12:37:13 PM1/12/24
to Chipyard
I ended up with something of the form, which worked quite well: https://github.com/The-OpenROAD-Project/OpenROAD/discussions/4522

set sdc_version 2.0

set clk_period 8500

set clk1_name  clock_uncore
create_clock -name $clk1_name -period $clk_period -waveform [list 0 [expr $clk_period/2]] [get_ports $clk1_name]
set_clock_uncertainty 10 [get_clocks $clk1_name]

set clk2_name  serial_tl_0_clock
create_clock -name $clk2_name -period $clk_period -waveform [list 0 [expr $clk_period/2]] [get_ports $clk2_name]
set_clock_uncertainty 10 [get_clocks $clk2_name]

set_clock_groups -asynchronous -group [get_clocks $clk1_name] -group [get_clocks $clk2_name]
Reply all
Reply to author
Forward
0 new messages