stefimke
Guest
Mon Jun 19, 2006 11:24 am
I'm fighting with variable substitution in Synopsys DC-shell in tcl/xg
mode.
This is what I want to do:
#-----------------------------------------------------------------------------
# Setting FALSE paths for asynchronous interfacing between clock
domains
#-----------------------------------------------------------------------------
foreach_in_collection clk1 ${clk_lst} {
foreach_in_collection clk2 ${clk_lst} {
if { ${clk1} != ${clk2} } {
echo "Information: Setting false path from ${clk1} to ${clk2}"
query_objects ${clk1}
query_objects ${clk2}
set_false_path -from ${clk1} -to ${clk2}
}
}
}
This an output that is printed:
Information: Setting false path from _sel54 to _sel55
{abc_clk}
{abc_clk}
Completely wrong... I don't want to define false paths from flipflops
in the same clock domain.
So the "if" is already going wrong.... does it compare the "_sel54"
with the "_sel55" string?
Anybody?
Aditya Ramachandran
Guest
Tue Jun 20, 2006 1:16 pm
cant you do this:
foreach aClk $clk_lst {
set_false_path -from $aClk -to [remove_from_collection
$clk_lst $aClk]
}
Aditya
stefimke wrote:
Quote:
I'm fighting with variable substitution in Synopsys DC-shell in tcl/xg
mode.
This is what I want to do:
#-----------------------------------------------------------------------------
# Setting FALSE paths for asynchronous interfacing between clock
domains
#-----------------------------------------------------------------------------
foreach_in_collection clk1 ${clk_lst} {
foreach_in_collection clk2 ${clk_lst} {
if { ${clk1} != ${clk2} } {
echo "Information: Setting false path from ${clk1} to ${clk2}"
query_objects ${clk1}
query_objects ${clk2}
set_false_path -from ${clk1} -to ${clk2}
}
}
}
This an output that is printed:
Information: Setting false path from _sel54 to _sel55
{abc_clk}
{abc_clk}
Completely wrong... I don't want to define false paths from flipflops
in the same clock domain.
So the "if" is already going wrong.... does it compare the "_sel54"
with the "_sel55" string?
Anybody?
Aditya Ramachandran
Guest
Tue Jun 20, 2006 1:18 pm
I meant
foreach_in_collection aClk $clk_lst {
set_false_path -from $aClk -to [remove_from_collection
$clk_lst $aClk]
}
Aditya Ramachandran wrote:
Quote:
cant you do this:
foreach aClk $clk_lst {
set_false_path -from $aClk -to [remove_from_collection
$clk_lst $aClk]
}
Aditya
stefimke wrote:
I'm fighting with variable substitution in Synopsys DC-shell in tcl/xg
mode.
This is what I want to do:
#-----------------------------------------------------------------------------
# Setting FALSE paths for asynchronous interfacing between clock
domains
#-----------------------------------------------------------------------------
foreach_in_collection clk1 ${clk_lst} {
foreach_in_collection clk2 ${clk_lst} {
if { ${clk1} != ${clk2} } {
echo "Information: Setting false path from ${clk1} to ${clk2}"
query_objects ${clk1}
query_objects ${clk2}
set_false_path -from ${clk1} -to ${clk2}
}
}
}
This an output that is printed:
Information: Setting false path from _sel54 to _sel55
{abc_clk}
{abc_clk}
Completely wrong... I don't want to define false paths from flipflops
in the same clock domain.
So the "if" is already going wrong.... does it compare the "_sel54"
with the "_sel55" string?
Anybody?
stefimke
Guest
Wed Jun 21, 2006 6:01 am
Aditya, thanks!
I'll try your suggestion as it looks very clean and short.
In the meanwhile I found this to work too:
foreach_in_collection clk1 ${clk_lst} {
foreach_in_collection clk2 ${clk_lst} {
set clk1_name [get_object_name $clk1]
set clk2_name [get_object_name $clk2]
if { ${clk1_name} != ${clk2_name} } {
echo "Information: Setting false path from ${clk1_name} to
${clk2_name}"
set_false_path -from ${clk1} -to ${clk2}
}
}
}
Aditya Ramachandran wrote:
Quote:
I meant
foreach_in_collection aClk $clk_lst {
set_false_path -from $aClk -to [remove_from_collection
$clk_lst $aClk]
}
Aditya Ramachandran wrote:
cant you do this:
foreach aClk $clk_lst {
set_false_path -from $aClk -to [remove_from_collection
$clk_lst $aClk]
}
Aditya
stefimke wrote:
I'm fighting with variable substitution in Synopsys DC-shell in tcl/xg
mode.
This is what I want to do:
#-----------------------------------------------------------------------------
# Setting FALSE paths for asynchronous interfacing between clock
domains
#-----------------------------------------------------------------------------
foreach_in_collection clk1 ${clk_lst} {
foreach_in_collection clk2 ${clk_lst} {
if { ${clk1} != ${clk2} } {
echo "Information: Setting false path from ${clk1} to ${clk2}"
query_objects ${clk1}
query_objects ${clk2}
set_false_path -from ${clk1} -to ${clk2}
}
}
}
This an output that is printed:
Information: Setting false path from _sel54 to _sel55
{abc_clk}
{abc_clk}
Completely wrong... I don't want to define false paths from flipflops
in the same clock domain.
So the "if" is already going wrong.... does it compare the "_sel54"
with the "_sel55" string?
Anybody?