Ejemplos de multiplexor de reloj del analizador de sincronización

author-image

Por

El analizador de sincronización facilita el uso de comandos Synopsys® Design Constraint (SDC) para restringir las estructuras de reloj complejas, como los relojes multiplexados. A continuación se muestran tres circuitos de ejemplo y los comandos SDC adecuados para limitarlos.

Figura 1. Muestra un circuito simple de registro a registro sincronizado por el puerto clk.

Supongamos que el puerto clk es impulsado por un multiplexor fuera del chip que selecciona entre dos relojes, uno con un período de 10 ns y otro con un período de 8 ns. Los siguientes comandos de SDC muestran cómo asignar varios relojes al puerto clk. También muestra cómo agregar una excepción que indica que los dos relojes nunca estarán activos al mismo tiempo en el FPGA.

# Cree los dos relojes en el puerto
create_clock -name clk_100 -period 10 [get_ports clk]
create_clock -name clk_125 -period 8 [get_ports clk] -add
# Establezca los dos relojes como relojes exclusivos
set_clock_groups -exclusive -group {clk_100} -group {clk_125}

Figura 2. Muestra un circuito simple de registro a registro con un multiplexor de reloj en el FPGA, con dos puertos de reloj: clkA y clkB.

Supongamos que el puerto clkA es impulsado por un reloj con un período de 10 ns, y que el puerto clkB es impulsado por un reloj con un período de 8 ns. Los siguientes comandos de SDC muestran cómo asignar los relojes. Este ejemplo es similar al ejemplo anterior, pero los relojes se asigna a puertos separados.

# Cree un reloj en cada puerto
create_clock -name clk_100 -period 10 [get_ports clkA]
create_clock -name clk_125 -period 8 [get_ports clkB] -add
# Establezca los dos relojes como relojes exclusivos
set_clock_groups -exclusive -group {clk_100} -group {clk_125}

Figura 3. Muestra un circuito de temporación más complejo con multiplexores de reloj vinculados en el FPGA.

En este caso, debe utilizar el comando set_clock_groups para indicar que los relojes A y D, A y B, C y D, y B y C, nunca pueden estar activos al mismo tiempo.

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]
# trayectos cortados entre los relojes
set_clock_groups -exclusive -group {A C} -group {B D}

El contenido de esta página es una combinación de la traducción humana y automática del contenido original en inglés. Este contenido se ofrece únicamente para su comodidad como información general y no debe considerarse completa o precisa. Si hay alguna contradicción entre la versión en inglés de esta página y la traducción, prevalecerá la versión en inglés. Consulte la versión en inglés de esta página.