• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Blogs
  2. Digital Design
  3. Library Characterization Tidbits: Deconstructing the Mechanics…
Neha Garhwal
Neha Garhwal

Community Member

Blog Activity
Options
  • Subscribe by email
  • More
  • Cancel
CDNS - RequestDemo

Have a question? Need more information?

Contact Us
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

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

30 Jul 2020 • 6 minute read

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.

      


    CDNS - RequestDemo

    Try Cadence Software for your next design!

    Free Trials

    © 2025 Cadence Design Systems, Inc. All Rights Reserved.

    • Terms of Use
    • Privacy
    • Cookie Policy
    • US Trademarks
    • Do Not Sell or Share My Personal Information