diff --git a/synthesis/tests/BUILD b/synthesis/tests/BUILD index 3eec800c..8110a652 100644 --- a/synthesis/tests/BUILD +++ b/synthesis/tests/BUILD @@ -66,6 +66,21 @@ run_opensta( synth_target = ":verilog_counter_asap7_synth", ) +gds_write( + name = "counter_asap7_asic", + implemented_rtl = ":counter_asap7_place_and_route", +) + +place_and_route( + name = "counter_asap7_place_and_route", + placement_density = "0.65", + core_padding_microns = 1, + die_width_microns = 20, + die_height_microns = 20, + synthesized_rtl = ":verilog_counter_asap7_synth", + sdc = "constraint.sdc" +) + synthesize_rtl( name = "verilog_counter_asap7_synth", standard_cells = "@org_theopenroadproject_asap7//:asap7_rvt_1x", @@ -73,6 +88,7 @@ synthesize_rtl( deps = [ ":verilog_counter", ], + target_clock_period_pico_seconds = 10000, ) verilog_library( diff --git a/synthesis/tests/constraint.sdc b/synthesis/tests/constraint.sdc new file mode 100644 index 00000000..91a42270 --- /dev/null +++ b/synthesis/tests/constraint.sdc @@ -0,0 +1,16 @@ +current_design counter + +set clk_name core_clock +set clk_port_name clk +set clk_period 10000 +set clk_io_pct 0.2 + +set clk_port [get_ports $clk_port_name] + +create_clock -name $clk_name -period $clk_period $clk_port + +set non_clock_inputs [lsearch -inline -all -not -exact [all_inputs] $clk_port] + +set_input_delay [expr $clk_period * $clk_io_pct] -clock $clk_name $non_clock_inputs +set_output_delay [expr $clk_period * $clk_io_pct] -clock $clk_name [all_outputs] +