• 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. Community Forums
  2. Custom IC Design
  3. Liberate for library file

Stats

  • Locked Locked
  • Replies 23
  • Subscribers 124
  • Views 23809
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Liberate for library file

fengye
fengye over 6 years ago

Hello, everyone! I have a problem with the usage of Liberate.  The error information is 

*Warning* (write_verilog) : No function written for pin Q of cell balloon_sim_nognd

Then, I look at the verilog file, some information like that 

module balloon_sim_nognd (Q, D, NRESTORE, SAVE, CK);
output Q;
input D, NRESTORE, SAVE, CK;
reg notifier;
wire delayed_D, delayed_NRESTORE, delayed_SAVE, delayed_CK;
// Missing function for pin Q
// Timing

I don't know the reason.

  • Cancel
  • fengye
    fengye over 6 years ago in reply to Guangjun Cao

    Hi, Guangjun,

    Thanks again. I really grateful that you spend your precious time help me. Your suggestions have a great influence on me. The synthesis tool is RTL complier. For the imcomplete balloon library, I delete some arcs about from  NRESTORE  to Q,and add function attribution manually. The synthesis can run normally. But I don't know if it will influence the later automatic Place and route. I will debug and analyze the related arcs to see if it's invalid.

    Thanks again!

    Regard,

    Fengye

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Guangjun Cao
    Guangjun Cao over 6 years ago in reply to fengye

    Hi Fengye,

    I tried to debug the failed arc. Spice simulation does not show valid transition or expected signal level for  pin=NRESTORE, related_pin=CK, timing_type=removal_rising, when=(!D * !SAVE), rise_constraint. If the cell is designed correctly, then this is not a valid arc. However, it is designer who can tell. If an auto-generated arc is invalid, you can still use the auto-generation flow, but add define_arc -ignore in the template, eg,

    define_cell \
    -clock { CK } \
    -async { SAVE NRESTORE } \
    -input { D } \
    -output { Q } \
    -pinlist { CK D SAVE NRESTORE Q } \
    -delay delay_template_7x7 \
    -power power_template_7x7 \
    -constraint constraint_template_3x3 \
    -mpw mpw_template_3x1 \
    balloon_sim_nognd

    define_arc \
    -type hold \
    -when "!D * SAVE" \
    -pin NRESTORE \
    -related_pin CK \
    -vector {RxxRx} \       ;#mtach the order to -pinlist

    -ignore \
    balloon_sim_nognd

    -----------------------------------------------------------------

    Is this a retention cell with balloon latch? Please refer to this link for syntax of such cells. You may search for "balloon" to find related information. In particular, there is an example on p.485.

    https://media.c3d2.de/mgoblin_media/media_entries/659/Liberty_User_Guides_and_Reference_Manual_Suite_Version_2017.06.pdf

    According to Liberate manual, the ff/latch group for retention cells have to be added by user. This can be done with -user_data option in write_library command. I believe you already know by now how to use the user_data flow.

    one important note: when you use user_data during write_library, you may want to change setting for cell_use_both_ff_latch_groups, eg setting it to 2.

    Looking through your script, there are two incorrect settings for power/ground, which should be,

    set_gnd -type pwell VPW 0
    set_vdd -type nwell VNW 0.99

    Regards,

    Guangjun

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • fengye
    fengye over 6 years ago in reply to Guangjun Cao

    Hi, Guangjun,

    I really appreciate your solutions. Your reply is so detailed. With you suggestion and the documment you provided, I think I can get final solution about the characterization of the retention cell.

    Thanks again!

    Regard,

    Fengye

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
<

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

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

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