Archived
first commit after restructuring
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
# ***************************************************************************
|
||||
# ***************************************************************************
|
||||
# Copyright 2014 - 2017 (c) Analog Devices, Inc. All rights reserved.
|
||||
#
|
||||
# Each core or library found in this collection may have its own licensing terms.
|
||||
# The user should keep this in in mind while exploring these cores.
|
||||
#
|
||||
# Redistribution and use in source and binary forms,
|
||||
# with or without modification of this file, are permitted under the terms of either
|
||||
# (at the option of the user):
|
||||
#
|
||||
# 1. The GNU General Public License version 2 as published by the
|
||||
# Free Software Foundation, which can be found in the top level directory, or at:
|
||||
# https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html
|
||||
#
|
||||
# OR
|
||||
#
|
||||
# 2. An ADI specific BSD license as noted in the top level directory, or on-line at:
|
||||
# https://github.com/analogdevicesinc/hdl/blob/dev/LICENSE
|
||||
#
|
||||
# ***************************************************************************
|
||||
# ***************************************************************************
|
||||
|
||||
proc util_cdc_sync_bits_constr {inst {from {}}} {
|
||||
if {$from != {}} {
|
||||
set_false_path \
|
||||
-from [get_registers $from] \
|
||||
-to [get_registers [format "%s%s" ${inst} {|cdc_sync_stage1[0]}]]
|
||||
} else {
|
||||
set_false_path \
|
||||
-to [get_registers [format "%s%s" ${inst} {|cdc_sync_stage1[0]}]]
|
||||
}
|
||||
}
|
||||
|
||||
proc util_cdc_sync_data_constr {inst} {
|
||||
util_cdc_sync_bits_constr ${inst}|sync_bits:i_sync_out ${inst}|in_toggle_d1
|
||||
util_cdc_sync_bits_constr ${inst}|sync_bits:i_sync_in ${inst}|out_toggle_d1
|
||||
|
||||
# set_max_skew
|
||||
set_false_path \
|
||||
-from [get_registers [format "%s%s" ${inst} {|cdc_hold[*]}]] \
|
||||
-to [get_registers [format "%s%s" ${inst} {|out_data[*]}]]
|
||||
}
|
||||
|
||||
proc util_cdc_sync_event_constr {inst} {
|
||||
util_cdc_sync_bits_constr ${inst}|sync_bits:i_sync_out ${inst}|in_toggle_d1
|
||||
util_cdc_sync_bits_constr ${inst}|sync_bits:i_sync_in ${inst}|out_toggle_d1
|
||||
|
||||
set cdc_hold_reg [get_registers -nowarn [format "%s%s" ${inst} {|cdc_hold[*]}]]
|
||||
|
||||
# For a event synchronizer with one event there is no hold register
|
||||
if {[get_collection_size ${cdc_hold_reg}] != 0} {
|
||||
# set_max_skew
|
||||
set_false_path \
|
||||
-from ${cdc_hold_reg} \
|
||||
-to [get_registers [format "%s%s" ${inst} {|out_event[*]}]]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user