Tuesday, January 06, 2009     Register | Login | Search | Contact Us
     

Many of you already received communications about the move of the Cadence user community into cadence.com. And many of you have already joined, with over 4000 registrations in the first two weeks.

The new Cadence Community enhances the ability of Cadence users to connect and collaborate. In addition to moving the community into cadence.com -- enabling single sign-on for community, Sourcelink and Cadence events -- the new site is organized around nine technology segments, giving you easy access to product information, training, forums and blogs. Some of the new features include:
  • Ability to respond to posts via e-mail
  • Technology-specific blogs
  • Latest Web 2.0 social networking capabilities
  • Public profile options
  • Private messaging
  • Friends lists
Visit the new Cadence Community today at www.cadence.com/community and join the discussions!

Registration note: Due to the scope of the enhancements and the new SSO registration system, we were not able to migrate existing cdnusers.org member accounts. So new registrations are required, but this enables a broader set of functionality we think you'll enjoy.

Forum note: Under the guidance of forum moderators, we have taken the 20+ cdnusers.org forums and consolidated them into 11 forums on the new site. Posts have been brought over so you can leverage that posting history. CDNusers forums will be set to read only starting 7/30, and cdnusers.org will be redirected to the new community on 8/4.

Best regards,
Mike and Tom

Michael A. Catrambone - Steering Committee Chairman
Distinguished Engineer
PCB/Mechanical
UTStarcom, Inc.

Tom Diederich
Cadence Community Manager
Home
Forums
Subject: constraining between ports and clock domain
Posting to forums is available to community members only.
Login or Register
Rate this topic:
   
Author Messages
sporadic crash
Posts: 43
Online: User is Offline
12/11/2006 11:31 AM  
I have a clock named "clk_design". How can I constrain all paths between input ports and this clock?

I have applied following:

define_cost_group input_to_clk_design
path_group -from /designs/*/ports_in/* -to clk_design -group input_to_clk_design -name input_to_clk_design_path

But when I apply report timing -cost_group input_to_clk_design, report tells me that no path group has been found.

Any ideas? What shall i give as -to option for path_group?


synthman
Posts: 17
Online: User is Offline
12/11/2006 11:48 AM  
Clock object is a valid object of the -to option. Look at the 'exceptions' attribute of the cost group to see if any path group exist. If the path_group does exist, look at the 'paths' attribute of the path_group to see if there is any path.
evenditti
Moderator
Posts: 23
Online: User is Offline
12/11/2006 12:05 PM  
The cost group is not a constraint it is a grouping mechanism to direct the optimization and facilitate reporting.

Here are a few things you may want to make check

- Do you have an input delay define on your input port?
- If you run report timing -from do you get a path to the clk_design clock reported?
- Do you have any false path from input to that clock (sometime used when only working on FF to FF paths)
- Do you have any path_group command which might move those path to a different group?
for example if you input delay use clk_design and you have a path_group -from clk_design -to clk_design you will also have your input to clk_design in that group.

Thanks,
Eric.

Eric Venditti
sporadic crash
Posts: 43
Online: User is Offline
12/11/2006 12:10 PM  
I see following:

- cost_group input_to_clk_design exists

[b]rc:/> ls -attribute /designs/*/cost_groups/input_to_clk_design[/b]
/designs//timing/cost_groups/input_to_clk_design (cost_group)
Attributes:
exceptions = /designs//timing/exceptions/path_groups/input_to_clk_design_path

[b]rc:/> ls -attribute /designs/*/exceptions/path_groups/input_to_clk_design_path[/b]
/designs//timing/exceptions/path_groups/input_to_clk_design_path (exception)
Attributes:
cost_group = /designs//timing/cost_groups/input_to_clk_design
domain =
exception_type = path_group
from_points = /designs//ports_in/...
paths = specify_paths -from {/designs//ports_in* ...
priority = 90
to_points = /designs//timing/clock_domains/domain_1/clk_design
rc:/>

Now report timing -cost_group input_2_clk_design


Shall I define the clock with "domain"?
sporadic crash
Posts: 43
Online: User is Offline
12/11/2006 12:12 PM  
The last sentence in the previous posting is incomplete:

[b]report timing -cost_group input_to_clk_design[/b]

gives me

no paths found.
evenditti
Moderator
Posts: 23
Online: User is Offline
12/11/2006 12:17 PM  
if you pick one of the input port and do report timing -from input_port_name, what do you get?


Eric Venditti
sporadic crash
Posts: 43
Online: User is Offline
12/11/2006 12:24 PM  

report timing -from /designs//ports_in/

Exception : 'path_disables/_line_2563'
Timing slack : UNCONSTRAINED
Start-point :
End-point :

(u) : Net has unmapped pin(s).

It seems it is still unconstrained.

I have used following commands:
1. create_clock -period $period -waveform [ list $rise $fall ] [ get_ports {clk_design} ] -domain clk_design
2. define_cost_group -name input_to_clk_design
3. path_group -from /designs/*/ports_in/* -to clk_design -group input_to_clk_design -name input_to_clk_design_path

report timing -cost_group input_to_clk_design

tells me no path found.


synthman
Posts: 17
Online: User is Offline
12/11/2006 12:30 PM  
What version of RC do you use? Do you have any path from input ports that goes to registers clocked by clock clk_design? Try this command to see where the input port fanouts to:

fanout -end
sporadic crash
Posts: 43
Online: User is Offline
12/11/2006 12:34 PM  
yes definitely I have. I have implemented this design :)

fanout -end

gives me a long list!

What am I missing here??? It must be simple..
1. create_clock
2. define_cost_group
3. path_group

What else? What am I doing wrong?

RC is 6.1.
synthman
Posts: 17
Online: User is Offline
12/11/2006 12:38 PM  
You need to define input delay with external_delay command. If you don't have that, report timing will show the path as unconstrained, but it would show the path from input to register.

Try to report timing from register to register, if it shows no path, then it might be something wrong with the library.
sporadic crash
Posts: 43
Online: User is Offline
12/11/2006 12:46 PM  
external_delay helped.

I did not do it. Instead, I applied "dc::set_input_delay" to an external pin.
It is not enough, it seems so. What you think?
synthman
Posts: 17
Online: User is Offline
12/11/2006 12:51 PM  
dc::set_input_delay should work, how do you apply it?
sporadic crash
Posts: 43
Online: User is Offline
12/11/2006 12:54 PM  
set_input_delay $delay -clock clk_designl $inputs

it is called from an SDC file. I have written in the previous posting to imply that I have used an SDC style, not RC style.

Am I missing anything here?
evenditti
Moderator
Posts: 23
Online: User is Offline
12/11/2006 12:59 PM  
In your previous email you wrote

1. create_clock
2. define_cost_group
3. path_group

You need to read the sdc between 1 and 2. not before 1 or after 3.

Eric.

Eric Venditti
sporadic crash
Posts: 43
Online: User is Offline
12/11/2006 1:02 PM  
1. create_clock is in an SDC file, called by another TCL script, using "read_sdc".
2. and 3. are in the TCL script, after the read_sdc call.

after external_delay, I have applied dc::set_input_delay again, RC tells me that external_delay is removed.
Are both commands equivalent, ie. "dc::set_input_delay" and "external_delay"?


synthman
Posts: 17
Online: User is Offline
12/11/2006 1:10 PM  
external_delay is equivalent to both dc::set_input_delay and dc::set_output_delay. Your command sequence looks correct, not sure what the problem is without seeing all the data. If you have access to Cadence Support, send in the data.
sporadic crash
Posts: 43
Online: User is Offline
12/11/2006 3:17 PM  
Hi Eric, I have read all the postings and have read your last sentence in one of your previous postings again: "...for example if you input delay use clk_design and you have a path_group -from clk_design -to clk_design you will also have your input to clk_design in that group." That means RC covers this path. I am not at my desk now, but will check it as soon as possible. Then that means when I define cost_group for a clock domain, then I do not need to define -from "external_port" to a clock domain. I am using this tool for my first time, but it is pretty similar to Xilinx constraint mechanism. However RC is more "intelligent" about assigning clock domains. I will return you when I get news things.
Stalker
Posts: 24
Online: User is Offline
12/12/2006 4:39 AM  
Hi,
You can try the following:

include load_etc.tcl
define_cost_group -name I2C -design $DESIGN
path_group -from [all::all_inps] -to [all::all_seqs] -group I2C -name I2C
foreach cg [find / -cost_group *] {
report timing -cost_group $cg >> $RPT_NAME
}

It creates path group from all inputs to registers, sampling the data from the inputs.
The clock and input delays should be defined before.

Maxim R.
sporadic crash
Posts: 43
Online: User is Offline
12/12/2006 4:45 AM  
I think

path_group -from [all::all_inps] -to [all::all_seqs] -group I2C -name I2C

is an overkill in a multi-milliongate design, because RTL Compiler by default definition will try to analye "all flipflops" in the design, which costs a lot of runtime.

IMHO, the clock domains must be grouped separately.
sporadic crash
Posts: 43
Online: User is Offline
12/12/2006 7:50 AM  
Hi,

I have found the reason, why I don't see that any path found for the port I have selected.

It has to do with that I have unknowingly set a "default" input delay just before the corresponding set_input_delay, which takes the port to another clock domain.

Therefore the second dc::set_input_delay does not take the port to another clock domain, unless the previous is removed. Therefore RTL Compiler does not find a path between the port and the clock domain I wanted, unless there is no "dc::set_input_delay" defined for the clock domain.

Thanks folks. your messages helped me a lot. Especially Eric's email.
Posting to forums is available to community members only.
Login or Register

Forums > Digital IC > Synthesis and test > constraining between ports and clock domain


ActiveForums 3.6
     
Copyright 2006 Cadence Design Systems, Inc.