¿Cómo sabe los valores de cada parámetro de SDC por primera vez?

cuando hacemos síntesis con SDC. debemos ser utilizados con SDC. Pero quiero saber qué sucede si se encuentra en una situación en la que su síntesis es la primera vez, además, la empresa ni siquiera hizo una síntesis antes. todo de la primera vez, luego su rol y responsabilidad es hacer síntesis.

Bien, entonces, ¿cómo sabes los parámetros de los comandos de cada SDC? Por ejemplo,

set_clock_uncertainty -setup?

set_clock_uncertainty -hold?

set_clock_transition -rise -max?

set_clock_transition -fall -min?

set_input_delay?

set_output_delay?

...?

cuando conociste esto por primera vez, ¿cómo lo manejas?

Respuestas (1)

Tienes que aprender todas las restricciones utilizadas en SDC, desde aquí .

Como conoce la frecuencia de todos los relojes, solo necesita comprender la importancia de cada restricción y averiguar qué valor óptimo debería ser correcto.

Algunas restricciones como set_input_delayy set_output_delaytiene un valor estándar o un valor generalizado como, INPUT_DELAY_MARGINes el 60 % de su período de reloj y OUTPUT_DELAY_MARGINes el 40 % de su período de reloj.

Establezca ese valor en el parámetro y luego déle a las set_input_delayrestricciones set_output_delay.

set PERIOD_CLK               1    # 1 nSec is period of that clock

set INPUT_DELAY_MARGIN    0.60
set OUTPUT_DELAY_MARGIN   0.40 

set CLK_IN_DELAY [expr { $PERIOD_CLK * $INPUT_DELAY_MARGIN }]
set PCLK_OUT_DELAY  [expr { $PERID_PCLK * $OUTPUT_DELAY_MARGIN }]

# input delay is given to din_i pin/port
set_input_delay $CLK_IN_DELAY  -clock $CLK  [get_ports din_i]

# output delay is given to dout_o pin/port
set_output_delay $CLK_OUT_DELAY     -clock $CLK     [get_ports dout_o]

como está haciendo STA en el escenario RTL, es más para CDC, solo para verificaciones de pelusa.

set_clock_uncertentyes 0.250 del período del reloj.

set_clock_transitiones dos pequeños, 0.1ps. mira esto

EDITAR: lugares donde actuó STA,ingrese la descripción de la imagen aquí

¿Puede explicarme por qué la entrada es 60% y la salida 40%? no 40% y salida 60%? También, ¿cómo establecer los valores de transición y sesgo y el valor set_clock_uncertenty, etc.? ¿También hay un valor estándar?
Si no sabe la hora exacta en que la señal llega al puerto de entrada o al puerto de salida, mantendremos un valor pesimista del 60 % para el mundo exterior y del 40 % para el chip.
En el nivel RTL, no tiene un formato de retraso estándar, y el entorno donde coloca su módulo de diseño y el tiempo de ese entorno, por lo que el valor asumido aquí es todos los valores pesimistas, y FYI STA se realiza en muchas etapas donde, tiene todas sus suposiciones actualizadas con valores reales.
Prakash Darji: gracias, pero mi pregunta es: si mi reloj tiene 100 MHz, ¿cómo se configura el valor de los coeficientes de otros parámetros? por ejemplo, set_clock_uncertaint, set_clock_latency, set_clock_transition -rise min/max...
¡Sí, yo también tengo esa respuesta! esperar actualización
Oppps..., lo tengo ;)
¿Cómo lo tienes?
seguro que me gustaría aceptar. pero cuéntame tu experiencia. ¿Cómo obtuve esos números?
Esos números son un análisis experimental y luego se arreglan con el promedio del peor de los casos al caso normal, cuando vaya al siguiente paso del flujo ASIC o FPGA, lo sabrá.
hermano, necesito más reputación para votar. espera hasta entonces,
¡¡Está bien!! ¡¡Puedo entender!!
¿Puedo preguntarte fuera de los temas sobre el SCAN?
Soy ingeniero de diseño de front-end RTL, haga una pregunta, trataré de responder con seguridad. pero también puede plantear una nueva pregunta.