O analisador de sincronização facilita o uso de comandos Synopsys® Design Constraint (SDC) para restringir estruturas de clock complexas, como clocks multiplexados. O seguinte mostra três circuitos de exemplo e os comandos SDC apropriados para restringi-los.
Assuma que a porta clk é conduzida por um multiplexador off-chip que seleciona entre dois clocks, um com um período de 10 ns e outro com um período de 8 ns. Os comandos SDC a seguir mostram como atribuir vários clocks à porta clk. Ele também mostra como adicionar uma exceção indicando que os dois clocks nunca estarão ativos ao mesmo tempo no FPGA.
# Crie os dois clocks na porta create_clock -name clk_100 -período 10 [get_ports clk] create_clock -name clk_125 -period 8 [get_ports clk] -add # Configure os dois clocks como clocks exclusivos set_clock_groups -exclusive -group {clk_100} -group {clk_125}
Assuma que a porta clkA é conduzida por um clock com um período de 10 ns e que a porta clkB é conduzida por um clock com um período de 8 ns. Os comandos SDC a seguir mostram como atribuir os clocks. Este exemplo é semelhante ao exemplo anterior, mas os clocks são atribuídos a portas separadas.
# Crie um clock em cada porta create_clock -nome clk_100 -período 10 [get_ports clkA] create_clock -name clk_125 -period 8 [get_ports clkB] -add # Configure os dois clocks como clocks exclusivos set_clock_groups -exclusive -group {clk_100} -group {clk_125}
Neste caso, você deve usar o comando set_clock_groups para indicar que os clocks A e D, A e B, C e D, e B e C, nunca poderão estar ativos ao mesmo tempo.
create_clock -name A -period 10 [get_ports clkA] create_clock -name B -period 8 [get_ports clkB] create_clock -name C -period 8 [get_ports clkC] create_clock -name D -period 10 [get_ports clkD] # caminhos cortados entre clocks set_clock_groups -exclusive -group {A C} -group {B D}