• 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. Logic Design
  3. can LEC provide cdc check?

Stats

  • Locked Locked
  • Replies 9
  • Subscribers 65
  • Views 18977
  • 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

can LEC provide cdc check?

zhiweiwu0318
zhiweiwu0318 over 16 years ago

Who can kindly tell me which rule is cdc(cross domain check) in LEC? i can't find any clue in the document.

by the way, i used IFV for cdc, but it can't provide all un-synchronizer singals, oops!

  • Cancel
  • timmynolan
    timmynolan over 16 years ago

    I'm not quite sure what you mean by 'rule', but LEC does have CDC checks.

    Assuming you have the software, start it using 'lec -verify'  Once lec has started I found the user guide and ref manual enough to get it going.

     

    Tim 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • johannes
    johannes over 16 years ago

    There's a section on CDC in <LEC-Install>/doc/Verify_User/Verify_User.pdf

    Regards,
    Johannes

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • arthurwu
    arthurwu over 16 years ago

    hi,
    thank you very much. i used normal mode not verify mode in Conformal previously, so i couldn't find cdc check. now it's ok, but i still had some problem about cdc check in LEC.
    1. I always got wrong result from LEC, do i need to define clock before check, or tool can automatically extract clock for me?
    2. I am still confused about synchronization rules. Where can i get more infomation about these rules besides Verify_Ref.pdf and Verify_User.pdf?
    thank you very much!

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • johannes
    johannes over 16 years ago

    1. There's a "read sdc" command, with which you can import the clocks from your SDC file.

    2. The documentation is the only source I know of.

    Regards,

    Johannes

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • timmynolan
    timmynolan over 16 years ago

    Hi,

    I agree that the easiest way to get clocks in is to read an SDC file. That is what I have been using. otherwise you need to manually add them yourself using the 'ADD CLOCK' command I believe. Again the ref/user manuals should help you with that.

    What do you not understand about the synchronization rules? I found the whole two flows things a bit confusing at first and only after talking to Cadence people did I understand it. I assume if you have read the documentation (or part of it :) then you know that Lec has 2 CDC flows. The 'normal validation' flow and the 'categorization' flow. If you do NOT use the 'ADD SYNCHRONIZER RULE' command Lec goes into the categorization flow where it will try to group your CDC paths into a predefined rule. (e.g. a flop synchronizer where the logic inbetween is only allowed to be buffers or nothing). Each of the rules is different combinations of flop and mux synchronizers. You can also define custom rules. The categorization flow is aimed to give you an idea of the synchronizers in your design. To actually run the checks you need to be in the normal validation flow - that is to add synchornization rules for the allowed CDC 'types' in your design. e.g. a 2 flop synchronizer with nothing allowed between the flops. You then add the structural checks and check those before adding functional ones.

     I hope this makes sense :)

    Tim 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • arthurwu
    arthurwu over 16 years ago

    Thank you for your detailed reply, i got your meaning, but still has 2 questions:
    1. Can't EDA tool extract clock automatically?  which benefit can i get if i use "read sdc" command instead?
    2. So you suggest the user-defined synchronization rules instead of pre-defined rules? Why? I always believe the default is the best if you are not familiar with the tool. you know, 2 FF is the most useful synchronizer, so can i only use pre-defined rule "PRE_DFF_1" in my design?
    3. About "set clock_domain rule" command, which option is the most common?  -unknown, -derived, -noderived? -either_phase, -logic_phase? -extract buffer?

    Thank you very much!

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • timmynolan
    timmynolan over 16 years ago

     1. I dont think Lec can extract the clock automatically. I dont know to be sure (I havent been using Lec long) but the documentation seems to suggest that you have to specify yourself using the 'ADD CLOCK' or 'READ SDC' commands. 

    2. I think you misunderstand what I have said. This is the bit I spent a long time being confused over. You cannot verify your design in the 'categorization' flow. It is to give you an idea of what sort of synchronizers are in your design. To properly validate it you need to be in the normal flow which as far as I understand means you need to add synchronization rules for the synchronizers you allow in your design. Below is the email reply I got from Cadence support. (it might make sense or it might not :)

     "When you run the tool with predefined rules it is more to have a categorization of the type of synchronization you have in your design.It is not the normal flow. The categorization flow is just there to have an idea of the design. The regular flow is when you define your add sync rule. Thus you need to define your synchronization rule before you run the structural check. And functional checks cannot be run without structural checks. The difference can be seen if you look at the FAIL category in the categorization flow. Had it been the normal validation flow these would have shown up under the "fail" column of report validated data."

    You can just add the same rules if you want using the 'add synchronizer rule' command and specifying the right options.

     3.  Good Question! Depends on the design I believe. Since there are all the options I guess they are all meant to be used. I have been using: -derived -logic_nophase -conflict_error -noextract

    Make sure you know what each option does and choose the one suited to your design. It is best to check the domains afterwards anyway. I had to add some together that were separate. Check out this. It might help although the user guide is pretty good for describing things: http://www.cadence.com/india/newsletters/icon_2006_03.pdf  - the technowatch bit.

    I'm still quite new to Lec and only started looking at it a couple of months ago but this is what I believe is correct 

     Tim

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • arthurwu
    arthurwu over 16 years ago

      Now I have some concept about CDC, thank you very much!
      For cdc check, i think how to set clock_domain rule depends on clock definition in time analysis( like PT) script. We must check those signal transfer where PT do it as false path.
      Another question: how to use command "add clock association", i am confused about term "pathname", i can't find any command example in the user guide, it needs improvement.
      Take an example: there is a mux in my design, 2 inputs are clk_a and clk_b, output is clk_out. clk_a and clk_b is port, and the mux's father module is module_a.module_b, so can i use command as "add clock association clk_a module_a.module_b.clk_out"? It's fail in the Conformal with log "Error: Invalid argument".
      Thank you in advance!

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • timmynolan
    timmynolan over 16 years ago

    I'm not sure if i can be much help here!

    First of all. The 'reference' (not user) guide has a description of the commands and the ADD CLOCK ASSOCIATION command is described there. From what I can tell. The Syntax is:

    ADD CLOCK ASSOCIATION <known domain> <other domains> [ -name <new domain name>]

    So, the first field is the domain to group others into, followed by all other domains to make synchronous to it. Without the -Name option, the domain keeps the name of the first domain you specify (<known domain>) . I believe you can specify clock names as well as domain names. 

    I'm not entirely sure about the command you have put up. I have not used many Hierarchichal modules in Lec (most are flattened). So does Lec put the output of the Mux into a new clock domain? And you want to group the two together? You can view the associations with REPORT CLOCK ASSOCIATION and then group accordingly. Im not sure if I correctly understand the problem.

     Hope thats some help.

    Tim 

    • 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