Forum Discussion

cjak's avatar
cjak
Icon for New Contributor rankNew Contributor
1 month ago
Solved

Constraining an unclocked output?

Hi,

I am trying to achieve timing closure, but have trouble constraining outputs that is not referenced to an external clock. Do I have to define a false path for each output?

  • Hi,

    to declare all IO as asynchronous

    set_false_path -from [all_inputs]

    set_false_path -to [all_outputs]

5 Replies

  • FvM's avatar
    FvM
    Icon for Super Contributor rankSuper Contributor

    Hi,

    to declare all IO as asynchronous

    set_false_path -from [all_inputs]

    set_false_path -to [all_outputs]

  • sstrell's avatar
    sstrell
    Icon for Super Contributor rankSuper Contributor

    If they're completely asynchronous outputs, yes, you would false path them.  You can use wildcards in your target for set_false_path if there are a lot of them.

  • cjak's avatar
    cjak
    Icon for New Contributor rankNew Contributor

    Thanks, but it is a bit unclear to me how I would define the false path:

    set_false_path -from [get_pins A*] -to [get_pins B*]

    ...when -from and -to is the same signal/net/pin?

    • KennyT_altera's avatar
      KennyT_altera
      Icon for Super Contributor rankSuper Contributor
      • If a port (e.g., reset_in) is truly asynchronous and handled by a synchronizer, you cut the path from the port to the first synchronized flip-flop: set_false_path -from [get_ports reset_in]