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.
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}
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}
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}