¿Qué representa el área no combinacional en el compilador de diseño synopsis?

He diseñado un sumador ondulado usando sumadores completos. Para encontrar el retraso incurrido para realizar esta adición, incluí un reloj en cada módulo sumador completo. En mi código principal, instalé estos módulos para construir el sumador de ondulación. Cuando sinteticé el código del sumador de ondulación y encontré el área, el resultado fue algo así como:

combinational area=54
non-combinational area=204;

Quiero saber si esta área no combinatoria se debe a la sobrecarga de incluir el reloj en cada módulo. ¿Hay alguna forma de reducir esta área no combinatoria?

Publique Verilog, por favor. Además, ¿no es normalmente PrimeTime el que debería usar para encontrar retrasos?
Usé el comando timing_report en el compilador de diseño. Usé el comando create_clock para dar el período del reloj.

Respuestas (1)

El área no combinacional generalmente es solo del tamaño de los elementos secuenciales en su diseño (chanclas, pestillos, arietes, etc.). ¿Incluiste alguno de estos cuando creaste los relojes?

revisa tu netlist. Si bien es posible que no haya tenido la intención de tener elementos secuenciales, el compilador de diseño puede haber pensado que sí.
@ tim le di la operación 'y' y la operación xor dentro del bloque siempre para diseñar el medio sumador. ¿Eso entra en el área no combinatoria?
módulo haa59(a,b,s,c,clk); entrada a,b; reloj de entrada; salida s,c; registro c1,s1; siempre@(posedge clk) begin s1<=a^b; c1<=a&&b; fin de asignar s=s1; asignar c=c1; módulo final
el anterior es el código verilog de halfadder que usé para diseñar sumadores completos.
Ese módulo tiene dos flip flops (s1 y c1). Ambos contarán para no peinar. área. Los andy xorson área combinacional. @centelleo
Como he dado s1 y c1 en bloque siempre, ¿se considerarán como registros?
@twinkle: no necesariamente, también podría tener un bloque combinacional siempre. Se sintetizan como registros porque los tiene actualizando sus valores en el borde del reloj (eso es lo que hacen los registros, actualizar en el borde del reloj)
@tim ¿Hay alguna otra forma de cronometrar el módulo que no sea usar siempre el bloque?
No sé qué crees que significa realmente 'cronometrar el módulo'. Los relojes existen para que puedan impulsar elementos secuenciales. Un circuito combinacional puro no debería tener un reloj. @centelleo
@tim Si tengo un gran bloque combinacional y quiero encontrar el retraso de la ruta crítica, ¿cómo lo hago?
@twinkle - Lo siento, no sé la respuesta. Tal vez ese sería un buen tema para una pregunta.