• Home
  • :
  • Community
  • :
  • Blogs
  • :
  • Digital Implementation
  • :
  • Library Characterization Tidbits: Deconstructing the Mechanics…

Digital Implementation Blogs

Neha Garhwal
Neha Garhwal
30 Jul 2020
Subscriptions

Get email delivery of the Cadence blog featured here

  • All Blog Categories
  • Breakfast Bytes
  • Cadence Academic Network
  • Cadence Support
  • Custom IC Design
  • カスタムIC/ミックスシグナル
  • 定制IC芯片设计
  • Digital Implementation
  • Functional Verification
  • IC Packaging and SiP Design
  • Life at Cadence
  • The India Circuit
  • Mixed-Signal Design
  • PCB Design
  • PCB設計/ICパッケージ設計
  • PCB、IC封装:设计与仿真分析
  • PCB解析/ICパッケージ解析
  • RF Design
  • RF /マイクロ波設計
  • Signal and Power Integrity (PCB/IC Packaging)
  • Silicon Signoff
  • Spotlight Taiwan
  • System Design and Verification
  • Tensilica and Design IP
  • Whiteboard Wednesdays
  • Archive
    • Cadence on the Beat
    • Industry Insights
    • Logic Design
    • Low Power
    • The Design Chronicles

Library Characterization Tidbits: Deconstructing the Mechanics of Liberate MX Constraint Probing

Hello,

You might have gone through our previous blog on Cadence Liberate MX Memory Characterization, Reuse to Recharacterize - Improve Productivity with Liberate MX, which describes reusing the already characterized data while recharacterizing a few additional/failed arcs. Liberate MX can be used to characterize various types of memories like SRAM, ROM, TCAM, register files, and so on.

In this blog, I will cover some aspects of constraint probing in Liberate MX.

How does constraint probing work in Liberate MX? 

During my customer interactions, I am asked often about how Liberate MX characterizes the constraint arcs or which flow should be used for characterizing the constraint arcs. 

Memory designers would know how tedious is the job of writing measurements for each constraint arc. This not only involves a lot of manual effort but may be error-prone as well. 

Well, Liberate MX does automatic probing for constraint arcs and finds out the worst-case probes. This save both, time and effort, making Liberate MX an efficient and user-friendly memory characterization solution. For a typical 12nm design, Liberate MX probes close to 100+ locations for each arc and chooses the worst-case probe. 

In the automatic constraint characterization flow, the tool performs combinational/sequential probing. This flow involves circuit analysis that is based on connectivity to determine the valid location for each constraint arc. The tool identifies the locations where the propagation of the clock and data are intersecting at the same circuit partition and computes the constraint value from each of the valid probing locations. This is generally done using Spectre XPS, a FastSPICE simulator. Using the worst-case probing location, a dynamic partition is created. This partition is used to characterize the arc values for all the slews and loads that the Liberty file needs. This step generally uses Spectre APS, a true SPICE simulator.

Having said that, there may be some scenarios based on your design where you would like to control probing in a certain way. Let us now review the various ways to do so.

Want to control probing in Liberate MX?

During automatic constraint probing, Liberate MX considers various probe locations or the different intersection levels between the data and clock within a sequential element.

Additionally, to suit your design, Liberate MX provides you with the flexibility to control probing in the following ways:

  • Probing based on circuit type
    The probes that Liberate MX considers for a setup or hold arc may occur on either combinational or sequential elements. The following parameters provide ways to control probing, if certain circuit types need not be considered:
    • mx_setup_seq
    • mx_hold_seq
    • mx_setup_comb
    • mx_hold_comb

  • Probing within a sequential partition
    When a probe is found within a sequential partition, you can use the mx_seq_probing parameter to control the probe nodes that are to be considered based on their locations within the sequential element.
    This parameter sets the node type to consider a sequential component as a possible candidate for data path probes in setup/hold characterization.
  • Probing based on the clock and data intersection level
    Probing can be based on intersection levels. The following parameters specify where the hold/setup constraint probing will be inserted based on the intersection between a pin and related pin:
    • mx_autoprobing_hold_level
    • mx_autoprobing_setup_level
      The values of these parameters can be increased if higher levels of intersection are desired. 

Additionally, in case you want flexibility in controlling automatic probing and how the probe locations are picked up by the tool, the methods explained below can help you discard an unwanted probe or manually specify the required probes.

  • Controlling signal propagation
    Using the mx_set_domainprop command, you can choose to control a probing location when an internal signal is not a propagation of the specified input.
  • Going deeper in the circuit to find the desired probe
    Liberate MX will assign levels to the different points of convergence of the clock and data propagation. You can control the design depth up to which you want to find probes using these parameters:
    • mx_autoprobing_hold_level
    • mx_autoprobing_setup_level
  • Manually providing probes
    If you are familiar with the design and know exactly where the probes are, you can manually define the probe points and specify the probe pairs in Liberate MX. The tool also provides more granular controls for expert users by using inbuilt circuit topology detection to find the correct worst-case probes.
    To manually add a probe, the define_arc -probe, -probe_dir, -related_probe, and -related_probe_dir  options can be used.

Need additional data on probing?

You can check some files for additional data on probing as well. For example:

  • A .info file is generated by default in each run directory. This file reports all the worst-case probes. It contains details about the arcs being characterized, such as the probe, probe direction, related probe, related probe direction, table and table line number used as the stimulus, and the constraint value as calculated by Spectre XPS. The probes mentioned in this file are the worst-case probes. 
  • A detailed debug report in the .csv format can be generated using the mx_debug parameter. The generated file will have a detailed probe-pair report using which you can review all the possible probes. This file contains all the relevant information and prints all the valid probes that the tool found with measured values. 

That’s pretty much all that I wanted to share in this blog about constraint probing. Easy to understand and implement, right?

Stay tuned for our upcoming blogs on characterization!

 -Neha Garhwal

 

Related Resources

  Application Note

Understanding and Controlling Liberate MX Constraint Probing

 Product Manual

Liberate MX Memory Characterization Reference Manual

Liberate Characterization Portfolio Command and Parameter Support Matrix

    About Library Characterization Tidbits

    Library Characterization Tidbits is a blog series aimed at providing insight into the useful software and documentation enhancements in the LIBERATE release. In addition, this series would broadcast the voices of different bloggers and experts, who would share their knowledge and experience about all the tools in Liberate Characterization Portfolio. To receive notifications about the new blogs in this series, click Subscribe and submit your email ID in the Subscriptions box.

      

    Tags:
    • worst-case probing |
    • spectre aps |
    • constraint probes |
    • memory characterization |
    • Spectre XPS |
    • signal propagation |
    • autoprobing |
    • Liberate MX |
    • Library Characterization Tidbit |
    • debug report |
    • Digital Implementation |
    • automatic constraint probing |
    • Liberate Characterization Portfolio |
    • sequential partition |