Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics 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.

Get Primetime global timing report (including WNS, TNS, and NUM) for reg2mem, reg2icg, in2cig, ...

quocviet19501

Newbie level 6
Joined
Aug 21, 2023
Messages
14
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
107
Hi everyone, I am trying to get global timing reports for reg2mem, mem2reg, reg2icg , in2icg in primetime. So far, I have found a way to report the timing report belong to the listed paths.
However, I cannot find any option or way to report the WNS, TNS, and NUM like the report_global_timing (which are restrcited to only 4 paths) for the path I have listed. If anyone have any idea or solution, please help me out.
Thanks in advance.
 
That is the usual way to use primetime, you use the report_timing command and specify what paths or clock group you want. I do not recall a PrimeTime command to give you all paths of a specific set like you requested. You probably will have to write your own script.

This code comes from the PrimeTime Advanced Timing Analysis Guide. It is for generating a simple WNS/TNS for each clock group and then for the whole design. Perhaps it can help you as a starting point. There are other examples in the manual and in the scripts directory.

Code:
proc report_design_slack_information {} {
  set design_tns 0
  set design_wns 100000
  set design_tps 0
  foreach_in_collection group [get_path_groups *] {
    set group_tns 0
    set group_wns 100000
    set group_tps 0
    foreach_in_collection path [get_timing_paths -nworst 10000 \
        -group $group] {
      set slack [get_attribute $path slack]
      if {$slack < $group_wns} {
        set group_wns $slack
        if {$slack < $design_wns} {
          set design_wns $slack
        }
      }
      if {$slack < 0.0} {
        set group_tns [expr $group_tns + $slack]
      } else {
        set group_tps [expr $group_tps + $slack]
      }
    }
    set design_tns [expr $design_tns + $group_tns]
    set design_tps [expr $design_tps + $group_tps]
    set group_name [get_attribute $group full_name]
    echo [format "Group '%s' Worst Negative Slack : %g" $group_name $group_wns]
    echo [format "Group '%s' Total Negative Slack : %g" $group_name $group_tns]
    echo [format "Group '%s' Total Positive Slack : %g" $group_name $group_tps]
    echo ""
  }
  echo “------------------------------------------”
  echo [format "Design Worst Negative Slack : %g" $design_wns]
  echo [format "Design Total Negative Slack : %g" $design_tns]
  echo [format "Design Total Positive Slack : %g" $design_tps]
}
 

LaTeX Commands Quick-Menu:

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top