Comando Timing Analyzer Create generated Clock

author-image

Por

El analizador de sincronización considera los divisores de reloj, los relojes de ondas o los circuitos que modifican o cambian las características del reloj entrante o del host como temporizadores generados. Usted debe definir la salida de estos circuitos como relojes generados. Esta definición permite que el analizador de sincronización analice estos relojes y que a su vez represente cualquier latencia de red asociada con ellos.

Puede utilizar el comando create_generated_clock para crear relojes generados. La siguiente lista muestra el comando create_generated_clock y las opciones disponibles:

create_generated_clock
   [-name <clock name>]
   -source <host pin>
   [-edges <edge list>]
   [-edge_shift <shift list>]
   [-divide_by <factor>]
   [-multiply_by <factor>] [-multiply_by <factor>
   [->] [-duty_cycle <percent>]
   [-add]
   [-invert]
   [-host_clock <clock>]
   [-phase <phase>]
   [-offset <offset>]
   <source objetos>

La Tabla 1 describe las opciones para el comando create_generated_clock.

Las latencias de la fuente se basan en demoras de red de reloj del reloj del host (no necesariamente el pin del host). Puede utilizar el comando set_clock_latency -source para sobrescribir la latencia de origen.

La Figura 1 muestra las formas de onda de los siguientes comandos SDC que crean un reloj generado invertido basado en un reloj de 10 ns.

create_clock -period 10 [get_ports clk]
create_generated_clock -divide_by 1 -invert -source [get_registers clk] \
    [get_registers gen|clkreg]

Figura 1. Generación de un reloj invertido.

La Figura 2 muestra las formas de onda de los siguientes comandos de SDC que modifican el reloj generado mediante las opciones -edges y -edge_shift.

create_clock -period 10 -waveform { 0 5 } [get_ports clk]
# Crea un reloj de división a 2 create_generated_clock
-source [get_ports clk] -edges { 1 3 5 } \
    \[get_registers clkdivA|clkreg]
# Crea un reloj dividido por 2 independientemente del ciclo de servicio del reloj del host ahora un 50 %)
create_generated_clock -source [get_ports clk] -edges { 1 1 5 } -edge_shift  0 5 0 } \
    [get_registers clkdivB|clkreg]

Figura 2. Bordes y desplazamiento de borde de un reloj generado.

En la Figura 3 se muestran las wafeforms para los siguientes comandos de SDC que demuestran el efecto de la opción -multiply en el reloj generado.

create_clock -period 10 -waveform { 0 5 } [get_ports clk]
# Crea un reloj multiplicado por 2 create_generated_clock fuente
[get_ports clk] -multiply_by 2 \
    [get_registers clkmult|clkreg]

Figura 3. Multiplicación de un reloj generado.

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.