Muitos clocks podem existir em um design; no entanto, nem todos os clocks interagem entre si, e certas interações de clock não são possíveis. Os clocks assíncronos são clocks não relacionados (os clocks assíncronos têm diferentes fontes ideais de clock). Os clocks exclusivos não estão ativos ao mesmo tempo (por exemplo, clocks multiplexados). A exclusividade mútua deve ser declarada ao Analisador de Temporização para evitar que ele analise essas interações de clock.
Você pode usar o comando set_clock_groups para especificar clocks exclusivos ou assíncronos. A lista a seguir mostra o comando set_clock_groups, incluindo as opções disponíveis:
set_clock_groups [-assíncrono | -exclusive] -group <clock name> -group <clock name> [-group <clock name>] ...
A Tabela 1 descreve as opções para o comando set_clock_groups comando.
Tabela 1. Descrição de opções para set_clock_groups comando
Descrição da | opção |
---|---|
-assíncrona | Os clocks assíncronos são aqueles que são completamente independentes (por exemplo, têm diferentes fontes ideais de clock) |
-exclusivo | Clocks exclusivos não são usados ativamente no design em ao mesmo tempo (por exemplo, clocks multiplexados) |
-nome < de > | Especifica nomes de clock de destino válidos que são mutuamente exclusivos. < nome do > é usado para especificar os nomes do clock. |
O exemplo a seguir mostra um comando set_clock_groups e os comandos set_false_path equivalentes.
# Clocks A & C nunca estão ativos quando os clocks B & D estão ativos set_clock_groups -exclusive -group {A C} -group {B D} # Especificações equivalentes usando caminhos falsos set_false_path -de [get_clocks A] -a [get_clocks B] set_false_path -a partir de [get_clocks A] -para [get_clocks D] set_false_path -, de [get_clocks C] a [get_clocks B] set_false_path -, de [get_clocks C] a [get_clocks D] set_false_ de [get_clocks B] a [get_clocks A] set_false_path -, de [get_clocks B] a [get_clocks C] set_false_path -, de [get_clocks D] a [get_clocks A] set_false_path -, de [get_clocks D] a [get_clocks C]