Mientras que el bucle en el banco de pruebas de y la puerta. obteniendo ninguna salida

1

He escrito un banco de pruebas simple para y la puerta. Mi código y banco de pruebas funcionaban bien. Ahora lo que quiero hacer es "Estoy tratando de implementar un bucle while para mis casos". No obtengo un error de sintaxis pero no veo ningún resultado. ¿Alguien puede decir mi error?

escala de tiempo 1ns / 100ps

cuenta int = 0; módulo and_gate_test;

// Inputs
reg in1_t;
reg in2_t;

// Outputs
wire out_t;

// Instantiate the Unit Under Test (UUT)
and_gate and_gate_1 (in1_t,in2_t,out_t);


initial 
begin
    // Initialize Inputs
    //case 0
    while(count==100){
    in1_t <= 0;
    in2_t <= 0;
    #1 $display ("out_t=%b",out_t);
            //case 1
    in1_t <= 1;
    in2_t <= 1;
    #1 $display ("out_t=%b",out_t);

    //case2
    in1_t <= 0;
    in2_t <= 1;
    #1 $display ("out_t=%b",out_t);

    //case3
    in1_t <= 1;
    in2_t <= 0;
    #1 $display ("out_t=%b",out_t);

   count++; }
    // Add stimulus here

end

endmodule

    
pregunta user2319906

1 respuesta

1

Su código nunca ingresa al ciclo while porque el conteo se inicializa a cero antes de verificar la condición while == 100. Incluso si la condición no se rompió, el refuerzo después de que se rompa el resto del código. Creo que esto es lo que estás intentando:

// Inputs
reg in1_t;
reg in2_t;

// Outputs
wire out_t;

// test variables
integer count;

// Instantiate the Unit Under Test (UUT)
and_gate and_gate_1 (in1_t,in2_t,out_t);

initial 
   begin
      // Initialize Inputs
      for (count=0; count<=100; count=count+1) begin
         //case 0
         in1_t <= 0;
         in2_t <= 0;
         #1 $display ("out_t=%b",out_t);

         //case 1
         in1_t <= 1;
         in2_t <= 1;
         #1 $display ("out_t=%b",out_t);

         //case2
         in1_t <= 0;
         in2_t <= 1;
         #1 $display ("out_t=%b",out_t);

         //case3
         in1_t <= 1;
         in2_t <= 0;
         #1 $display ("out_t=%b",out_t);
      end
   end
    
respondido por el travisbartley

Lea otras preguntas en las etiquetas