aislamiento de operandos en RTL

0

Estoy tratando de construir algunos circuitos de baja potencia en el nivel RTL. ¿Cómo me ocuparía de codificar el aislamiento de los operandos para que la herramienta de síntesis (ASIC / FPGA) lo reconozca? Suponiendo que la especificación requiere que la salida de un módulo sea 0 o 1 (no importa) cuando no está encendido y el producto de las entradas cuando está activado. Supongamos que una vez que el módulo continúa, no puede apagarse a menos que se reinicie. El código con el aislamiento del operando creo que sería algo como esto ...

module some_module(input clk,rst, input on, 
input [3:0] in1, in2, output reg [7:0] out);

reg state_ff;
reg [3:0] isol_in1, isol_in2;

// Make inputs change only when on (Isolation)
always @* isol_in1 = !state_ff ? 0 : in1; // When state=0,isolate inputs.
always @* isol_in2 = !state_ff ? 0 : in2;

always @*
 out = isol_in1 * isol_in2; 

always @ (posedge clk)
if ( rst ) 
     state_ff <= 0;
else case ( state_ff ) 
     1'd0: state_ff <= on;     // After reset, wait for on = 1.
     1'd1: state_ff <= 1'd1;   // Needs reset to turn off.
     endcase

endmodule

Estoy asumiendo que Y el aislamiento de tipo en el código anterior. Cuando la unidad está apagada (encendida = 0 desde el restablecimiento), la lógica no verá las transiciones en la entrada, por lo que evitará transiciones innecesarias en el multiplicador. ¿Esto realmente ahorra energía (asumiendo que varios módulos están siendo controlados por in1 y in2)?

    
pregunta Revanth Kamaraj

1 respuesta

2

Esto podría ahorrar energía de conmutación, pero solo en este módulo, y solo antes de que esta lógica se use una vez. Has gastado un flop haciendo eso, y has añadido algunas puertas. No creo que esto sea útil (pero no tengo visibilidad de todo el sistema).

Sería mejor si ajustara in1 , in2 en la fuente y con mayor frecuencia. Aún mejor es ajustar el reloj a un clop que los impulsa (solo necesita un solo AND, además de que ahorra tanto el reloj como la potencia de la señal)

    
respondido por el Sean Houlihane

Lea otras preguntas en las etiquetas