From 6d28d217f135b8e99f3a532f96458c6b1caa108e Mon Sep 17 00:00:00 2001 From: Adrian Costina Date: Thu, 23 Apr 2015 10:49:43 +0300 Subject: [PATCH] axi_mc_current_monitor: Added CDC and reset constraints --- .../axi_mc_current_monitor_constr.xdc | 44 +++++++++++++++++++ .../axi_mc_current_monitor_ip.tcl | 4 ++ 2 files changed, 48 insertions(+) create mode 100644 library/axi_mc_current_monitor/axi_mc_current_monitor_constr.xdc diff --git a/library/axi_mc_current_monitor/axi_mc_current_monitor_constr.xdc b/library/axi_mc_current_monitor/axi_mc_current_monitor_constr.xdc new file mode 100644 index 000000000..51b95df89 --- /dev/null +++ b/library/axi_mc_current_monitor/axi_mc_current_monitor_constr.xdc @@ -0,0 +1,44 @@ +set up_clk [get_clocks -of_objects [get_ports s_axi_aclk]] +set current_monitor_clk [get_clocks -of_objects [get_ports adc_clk_i]] + +set_property ASYNC_REG TRUE \ + [get_cells -hier *toggle_m1_reg*] \ + [get_cells -hier *toggle_m2_reg*] \ + [get_cells -hier *state_m1_reg*] \ + [get_cells -hier *state_m2_reg*] + +set_false_path \ + -from [get_cells -hier up_xfer_toggle_reg* -filter {primitive_subgroup == flop}] \ + -to [get_cells -hier d_xfer_toggle_m1_reg* -filter {primitive_subgroup == flop}] +set_false_path \ + -from [get_cells -hier d_xfer_toggle_reg* -filter {primitive_subgroup == flop}] \ + -to [get_cells -hier up_xfer_state_m1_reg* -filter {primitive_subgroup == flop}] +set_max_delay -datapath_only \ + -from [get_cells -hier up_xfer_data_reg* -filter {primitive_subgroup == flop}] \ + -to [get_cells -hier d_data_cntrl_reg* -filter {primitive_subgroup == flop}] \ + [get_property PERIOD $current_monitor_clk] + +set_false_path \ + -from [get_cells -hier d_xfer_toggle_reg* -filter {primitive_subgroup == flop}] \ + -to [get_cells -hier up_xfer_toggle_m1_reg* -filter {primitive_subgroup == flop}] +set_false_path \ + -from [get_cells -hier up_xfer_toggle_reg* -filter {primitive_subgroup == flop}] \ + -to [get_cells -hier d_xfer_state_m1_reg* -filter {primitive_subgroup == flop}] +set_max_delay -datapath_only \ + -from [get_cells -hier d_xfer_data_reg* -filter {primitive_subgroup == flop}] \ + -to [get_cells -hier up_data_status_reg* -filter {primitive_subgroup == flop}] \ + [get_property PERIOD $up_clk] + +set_false_path \ + -from [get_cells -hier up_count_toggle_reg* -filter {primitive_subgroup == flop}] \ + -to [get_cells -hier d_count_toggle_m1_reg* -filter {primitive_subgroup == flop}] +set_false_path \ + -from [get_cells -hier d_count_toggle_reg* -filter {primitive_subgroup == flop}] \ + -to [get_cells -hier up_count_toggle_m1_reg* -filter {primitive_subgroup == flop}] +set_max_delay -datapath_only \ + -from [get_cells -hier d_count_hold_reg* -filter {primitive_subgroup == flop}] \ + -to [get_cells -hier up_d_count_reg* -filter {primitive_subgroup == flop}] \ + [get_property PERIOD $up_clk] + +set_false_path \ + -to [get_pins -hier */PRE -filter {NAME =~ *i_*rst_reg*}] diff --git a/library/axi_mc_current_monitor/axi_mc_current_monitor_ip.tcl b/library/axi_mc_current_monitor/axi_mc_current_monitor_ip.tcl index 04af9108b..7313af6eb 100644 --- a/library/axi_mc_current_monitor/axi_mc_current_monitor_ip.tcl +++ b/library/axi_mc_current_monitor/axi_mc_current_monitor_ip.tcl @@ -16,10 +16,14 @@ adi_ip_files axi_mc_current_monitor [list \ "$ad_hdl_dir/library/common/up_adc_channel.v" \ "dec256sinc24b.v" \ "ad7401.v" \ + "axi_mc_current_monitor_constr.xdc" \ "axi_mc_current_monitor.v" ] adi_ip_properties axi_mc_current_monitor +adi_ip_constraints axi_mc_current_monitor [list \ + "axi_mc_current_monitor_constr.xdc" ] + ipx::save_core [ipx::current_core]