Exemplos de multiplexador de clock do analisador de sincronização

author-image

Por

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.

Figura 1. Mostra um circuito simples de registro para registro com clock na porta clk.

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}

Figura 2. Mostra um circuito simples de registro para registrar com um multiplexador de clock no FPGA, com duas portas de clock: clkA e clkB.

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}

Figura 3. Mostra um circuito de clocking mais complexo com multiplexadores de clock vinculados no FPGA.

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}

O conteúdo desta página é uma combinação de tradução humana e por computador do conteúdo original em inglês. Este conteúdo é fornecido para sua conveniência e apenas para informação geral, e não deve ser considerado completo ou exato. Se houver alguma contradição entre a versão em inglês desta página e a tradução, a versão em inglês prevalecerá e será a determinante. Exibir a versão em inglês desta página.