• 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 23768
  • 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
  • Guangjun Cao
    Guangjun Cao over 6 years ago

    Hi Fengye,

    When using write_verilog, out pins must have a 'function' attribute. for flip/flops, a 'ff' group must also be created inside the cell section. If these are not auto-created, you have to use the user_data flow when generateing the .lib file.

    Regards,

    Guangjun

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

    Hi Guangjun,

    Thanks a lot for your reply.  The function attribution of my flipflop cell cannot auto-created. For the usage of the user_data, I don't know if I need to prepare a verilog file as a user_data file. Can you give me some suggestions?

    Regards,

    Fengye

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

    Hi Fengye,

    The user_data flow can be applied to your .lib creation. You do not necessarily need to work on the Verilog side. As long as your .lib file is complete, the verilog file should be correct.

    I do not understand why the function is not auto-generated. This is quite odd. I suspect some of your settings for characterization might not be right. However, without a full test case, I am not able to further comment.

    Regards,

    Guangjun

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

    Hi Guangjun,

    Thanks a lot ! In fact, I don't know how to use "user_data"  to my .lib creation after referencing the Liberate mannual. For other flipflop cell, the function can be auto-created, but for a balloon flipflop, the .lib file cannot be generated completely with the similar template and char.tcl setting. I just give the define_cell instead of all possible arc. So, there isn't fuction attribution in my lib.

    When this lib file is used for synthesis, the cell is marked as 'unusable cell'  , I guess  the function or timing arc maybe the reason. I still want to know if there is some tool or commands about checking the correctness of the lib file.

    Regards,

    Fengye

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

    Hi Fengye,

    What is the difference between a balloon flipflop and a normal flipflop? Is this kind of cell supported by Liberty Specification? For custom digital cell, you may have to add some attribute manually, although it is not always the case. This can either be done by a user_data file or set_attribute command. Again, without a full test case, I can not further comment. So, do you have a full test case?

    a user_data file has the same syntax as a .lib file. It can be used in write_library command with -user_data option. You can use write_userdata_library command to generate a user_data file and understand the structure. With an existing user_data file, you will be able to add any extra attributes as required.

    Regards,

    Guangjun

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

    Hi Guangjun,

    Thanks for your patience and suggestions. The balloon flipflop has two asynchronous input "SAVE" and "NRESTORE", the other cell has an asynchronous input  "RENT"
    define_cell \
    -clock { CK } \
    -async { RETN } \
    -input { D } \
    -output { Q } \
    -pinlist { CK D RETN Q } \
    -delay delay_template_7x7 \
    -power power_template_7x7 \
    -constraint constraint_template_3x3 \
    -mpw mpw_template_3x1 \
    memory_sim_nognd

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

    I don't whether the balloon cell is supported by Liberty. As the user_data, I will understandand and use as you suggested. Except for the synthesis, you know how to check and verify the correctness of the .lib file?

    I know you are busy and I don't want to waste your time. I just hope your suggestions when you are in free time.

    Regard,

    Fengye

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

    Hi Fengye,

    I do not see any fundamental differences between the two define_cell commands. What are the differences in terms of logic behavior?

    With this define_cell command, do you get all arcs generated/characterized?

    Is balloon a unique type of cell that must be modelled differently, or can it be modelled the same way as a normal ff?--- please check the Liberty specification document.

    please read the Liberite manual on write_userdata_library command. You can use read_library-->write_userdata_library to generate an example user_data.lib. then, you can added whatever attribute you want to. Alternatively, you may use set_attribute command to do the same.

    Liberate does not check the completeness of a library. This can be done by downstream tools, eg. a STA tool. On the other hand, I suggest you look into the logfile and generated .lib to verify if there is any warnings or missing/failed arcs.

    If you can provide a full test case(model+netlist+script) + a detailed logic table, I might be able to help you look into it.

    Regards,

    Guangjun

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

    Hi, Guangjun,

    Thanks your reply! With my provided define_cell, Liberate can generate some arc, but I don't know if it's all arcs.  The "Liberty specification document", you mean is the Liberate userguide? The logfile will remind removal error,

    like "ERROR (LIB-52): The constraint search failed to find a solution within the search range for arc of cell:'balloon_sim_nognd', r_pin:'CK', r_pin dir:'r', pin:'NRESTORE', pin dir:'r', type:'removal_rising rise_constraint' when: (!D * SAVE), GLITCH_PROBE. This cell will be marked as failed and the constraint data will be set to: 1.0 (see constraint_failed_value). To debug, review the saved simulation results for deck: removal_34. Possible causes include: 'constraint_glitch_peak' too small; 'constraint_check_final_state_threshold' too large; estimated search range too small (see constraint_search_bound). Modify the constraint parameters and rerun."

    I really appreiate if you can help me look into my problem. I can provide my full test case, 

    链接: pan.baidu.com/.../1k-gja8wv_EXsXKhUh8sZGg 提取码: 6hh9 

    Regard,

    Fengye

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

    Hi Fengye,

    Please use the following ftp account to upload your test case. make sure the following data are included,

    1. full logic table and pin information

    2. model and netlist

    3. all tcl scripts.

    Liberty specification is followed by all Vendors/STA tools. It is an industry standard, which is not specific to Cadence tools.

    Guangjun

    FTP Server : ftp.cadence.com
    FTP Account : xftp1574
    FTP Password : Q12LwygJ
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • fengye
    fengye over 6 years ago in reply to Guangjun Cao

    Hi Guangejun,

    I have upload my test case with the ftp server. If you have time, I hope you can help me look into it.

    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