Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronic Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Register Log in

quering IO SDCs in DC/ICC

Status
Not open for further replies.

shelby

Full Member level 2
Joined
Jan 4, 2007
Messages
124
Helped
38
Reputation
74
Reaction score
18
Trophy points
1,298
Activity points
2,045
Whats an easy way to query input/ouput delay values on ports in DC/ICC? I don't see an attribute for input/output delays on ports. I can get the vaules with get_timing_path attributes, but this takes to long if I want to loop over my thousands of ports. Anyone know an easier way?
 

kornukhin

Full Member level 3
Joined
Sep 2, 2010
Messages
165
Helped
46
Reputation
92
Reaction score
46
Trophy points
1,308
Location
Zelenograd
Activity points
2,169
set inputCollection1 [remove_from_collection [all_inputs] clk]
set_input_delay 2 -clock clk $inputCollection1
 

shelby

Full Member level 2
Joined
Jan 4, 2007
Messages
124
Helped
38
Reputation
74
Reaction score
18
Trophy points
1,298
Activity points
2,045
set inputCollection1 [remove_from_collection [all_inputs] clk]
set_input_delay 2 -clock clk $inputCollection1
now after I set this, how to I query the input delay?

set delay_value = [how do I get delay vaule of PortA?]
 

kornukhin

Full Member level 3
Joined
Sep 2, 2010
Messages
165
Helped
46
Reputation
92
Reaction score
46
Trophy points
1,308
Location
Zelenograd
Activity points
2,169
I'm sorry, didn't read your question carefully.
You can create attribute for each port. And store input_delay there:

set inputCollection [remove_from_collection [all_inputs] clk ]
foreach i $inputCollection {
set_attribute -type float $i startpoint_input_delay_value 5.5
set port_delay [ get_attribute $i startpoint_input_delay_value ]
set_input_delay -clock clk $port_delay $i
}

Now you can use "get_attribute $i startpoint_input_delay_value" to get input delay for given port.
 
  • Like
Reactions: shelby

    shelby

    points: 2
    Helpful Answer Positive Rating

shelby

Full Member level 2
Joined
Jan 4, 2007
Messages
124
Helped
38
Reputation
74
Reaction score
18
Trophy points
1,298
Activity points
2,045
hi kornukhin

Thanks for the reply (and sorry for the delay). Not exactly what I was looking for, but a good idea which I hadn't thought of.

I have an sdc with all my input/output delays already set that I source in. What I was hoping to do was be able to relax them on the fly 10,20,30% etc after reading it in and run multiple experiments to see how my internal reg2reg paths are effected. I could always preprocess the sdcs with a perl script, but thats just an extra script I need to run before hand.

One think I was thinking is just parse the sdc file in DC, get each port name & delay values, scale the delays, then set the input/output with the scaled values. Still not ideal imo.

I think the problem is you can't easily query in/out delay values since there isn't a port attribute for them. You can query them through get_attribute on get_timing_paths object, but thats just too darn slow.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Top