Síntesis lógica
Configuración por defecto:
Revisando la ruta ~/OpenLane/configuration/synthesis.tcl
se encuentra la siguiente información en este archivo:

Configuración por defecto de las variables de síntesis.
Descripción y ejemplos:
SYNTH_CLOCK_UNCERTAINTY
Especifica un valor para la incertidumbre del reloj para el análisis de temporización. (Predeterminado: 0.25)
Al aumentarlo al doble de su valor por defecto (0.5) vemos que primeramente el cambio se aprecia en los reportes de sta de la siguiente manera:

Reporte sta min de la tapa de síntesis.
De donde comparando ambos reportes (mínimo y máximo) vemos que para el caso mínimo este delay se suma; mientras que para el caso máximo este delay se resta. Produciendo así aumento en el tiempo de hold y disminución el tiempo de setup respectivamente.
Se observa que el tiempo de hold puede aumentar tanto al punto de no cumplir para ciertos caminos. Lo cual se observa en la siguiente imagen:

Reporte sumatoria sta de la tapa de síntesis.
SYNTH_CLOCK_TRANSITION
Especifica un valor para el tiempo de transición/desplazamiento del reloj para el análisis de temporización. (Predeterminado: 0.15)
Al aumentarlo al doble de su valor por defecto (0.3) vemos que primeramente el cambio se aprecia en los reportes de sta de la siguiente manera:

Reporte sta minimo de la tapa de síntesis
Además se obtiene un nuevo mensaje en el registro de advertencias:

Registro de advertencias.
Del cual revisando el reporte mencionado vemos que se producen tres violaciones de slew, que significa que la transición de la señal es muy lenta.
SYNTH_TIMING_DERATE
Especifica un factor de reducción para multiplicar los retrasos de ruta. Especifica los rangos superior e inferior de sincronización. (Predeterminado: +5%/-5%)
Al aumentar este valor al doble de su valor por defecto (0.1) vemos que se aumenta el tiempo de llegada de los datos en 0.1 con respecto al valor por defecto; esto tras comparar para una misma ruta su análisis de sta como se observa en la siguiente imagen:

Reportes sta máximo de la tapa de síntesis.
SYNTH_STRATEGY
Estrategias para la síntesis lógica abc y el mapeo tecnológico. Valores posibles son DELAY/AREA
con rangos de 0-4 y 0-3 respectivamente; la primera parte se refiere al objetivo de optimización
de la estrategia de síntesis (area vs delay) y la segunda es un índice. (Predeterminado: AREA 0
).
Al variar la estrategia se pueden obtener optimizaciones para ciertos objetivos específicos según la aplicación. Esto se puede observar en la siguiente imagen:

Resultados exploración espacio de diseño.
SYNTH_BUFFERING
Habilita el buffer de celdas abc. Habilitado = 1, Deshabilitado = 0. (Predeterminado: 1) Lo cual tras deshabilitarlo se observa lo siguiente al comparar con el reporte por defecto:

Reportes de área de la etapa de sintesis.
De donde se observa que la principal diferencia entre las cantidad de celdas es provocada por disminución en la cantidad de buffers utilizados.
SYNTH_SIZING
Habilita el tamaño de celda abc (en lugar de almacenar en buffer). Habilitado = 1, Deshabilitado = 0. (Predeterminado: 0)
Se tienen los mismo resultados de habilitar el parámetro SYNTH_BUFFERING
.
SYNTH_READ_BLACKBOX_LIB
Bandera que permite leer el archivo biblioteca completo (sin recortar) como una caja negra para síntesis. No se utiliza en el mapeo tecnológico. Usarse para preservar instancias de compuerta en el rtl del diseño. Habilitado = 1, Deshabilitado = 0. (Predeterminado: 0)
Lo cual tras habilitarlo se observa que el área disminuye porque se leen menos celdas ya que se utiliza el concepto de caja negra. Lo anterior se observa en los siguientes reportes:

Reportes de área de la etapa de síntesis.
SYNTH_NO_FLAT
Bandera que deshabilita el aplanamiento de la jerarquía durante la síntesis, y solo la aplana después de la síntesis, el mapeo y las optimizaciones. Habilitado = 1, Deshabilitado = 0. (Predeterminado: 0)
SYNTH_ADDER_TYPE
Tipo de sumador al que se asignan los operadores $add y $sub. Posibles valores YOSYS/FA/RCA/CSA; donde YOSYS usa el sumador interno de Yosys, FA usa full-adder structure, RCA usa ripple carry adder structure y CSA usa carry select adder. (Predeterminado: YOSYS)
Para sus distintos valores posibles se tiene el siguiente cuadro resumen de los parámetros mas importantes:
Tipos de sumadores |
YOSYS |
FA |
RCA |
CSA |
---|---|---|---|---|
Chip Area |
100462.6016 |
105050.752 |
100890.512 |
107314.1728 |
Potencia |
1.99e-02 |
2.20e-02 |
2.00e-02 |
2.05e-02 |
Peor Setup |
3.15 |
0.15 |
-16.59 |
0.46 |
Peor Hold |
0.16 |
0.17 |
0.19 |
0.2 |
Violaciones Slew |
0 |
0 |
0 |
28 |
Violaciones Fanout |
4 |
7 |
13 |
31 |
Violaciones Cap |
0 |
0 |
0 |
0 |
Por otro lado la potencia y el skew se mantiene bastante similar.
SYNTH_ELABORATE_ONLY
No se realiza ningún mapeo lógico. Útil cuando se trata de netlists estructurales de Verilog. (Predeterminado: 0)
SYNTH_FLAT_TOP
Se especifica si el nivel superior debe aplanarse o no durante la elaboración. 1 = Verdadero, 0 = Falso. (Predeterminado: 0)
IO_PCT
Especifica el porcentaje del período de reloj utilizado en los retrasos de entrada/salida. Varía de 0 a 1,0. (Predeterminado: 0.2)
Al aumentarlo al doble de su valor por defecto (0.4) vemos que este cambio primeramente se puede apreciar en los reportes de sta de la siguiente manera:

Reporte sta máximo de la tapa de síntesis.
Esto principalmente afecta el tiempo de llegada del dato que para caminos críticos si se aumenta mucho puede provocar violaciones de setup, como es el caso por ejemplo de utilizar un valor de 0.6.
SYNTH_BUFFER_DIRECT_WIRES
Inserta celdas intermedias en el diseño para cables conectados directamente. (Predeterminado: 1)
Al deshabilitarlo se modifica el reporte de área, ya que la cantidad de celdas disminuye en 8, de 9442 a 9434, reduciendo ligeramente el área como se observa en la siguiente imagen:

Reportes área de la tapa de síntesis.
SYNTH_SPLITNETS
Divide redes de varios bits en redes de un solo bit. (Predeterminado: 1)
Al deshabilitarlo se aumenta considerablemente el área, debido a que se utilizan mas wires y bits por wire, esto se observa en el siguiente reporte:

Reportes área de la tapa de síntesis.
Resumen de resultados:
Se va a compara, en porcentajes, cuanto vario con respecto al modelo de referencia los parámetros mas importantes para esta etapa al modificar cada variable. Los valores de las variables son los mismo utilizados anteriormente, de modo que se tienen los siguientes resultados:
Variables |
Chip Area |
Potencia |
Peor Setup |
Peor Hold |
Violaciones Slew |
Violaciones Fanout |
Violaciones Cap |
---|---|---|---|---|---|---|---|
|
0 |
0 |
-7.94 |
-156.25 |
0 |
12 |
0 |
|
0 |
0 |
-0.317 |
6.25 |
4 |
11 |
0 |
|
0 |
0 |
-9.84 |
-12.50 |
0 |
-1 |
0 |
|
3.963 |
44.72 |
47.30 |
18.75 |
2 |
49 |
0 |
|
-7.65 |
-3.01 |
-76.50 |
0 |
0 |
-13 |
0 |
|
-7.65 |
-3.01 |
-76.50 |
0 |
0 |
-13 |
0 |
|
-0.340 |
-3.01 |
10.47 |
12.5 |
0 |
-6 |
0 |
|
6.82 |
3.015 |
-85.39 |
25 |
0 |
-21 |
0 |
|
0 |
0 |
-66.35 |
0 |
2 |
1 |
0 |
|
-0.039 |
0 |
0 |
0 |
0 |
8 |
0 |
|
17.76 |
8.04 |
-5.71 |
112.5 |
0 |
-29 |
0 |