es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo ejecutar este código sin errores de sintaxis?

Este código me da un error de sintaxis cuando lo ejecuto en cmd. ¿Alguna ayuda?

  módulo xor (a, b, c);
  entrada a, b;
  salida c;
  alambre c, not_a, not_b;
  not a_invert (not_a, a);
  not b_invert (not_b, b);
  y A1 (x, not_a, b);
  y A2 (y, not_b, a);
  o Resultado (c, x, y);
finmódulo

módulo xor_test(a, b); // banco de pruebas
  entrada a, b;
  alambre c;
  xor x(a, b, c);
  inicial
  begin
    $monitor("c=%b", c);
  end
finmódulo

módulo principal();
  alambre a = 0, b = 1;
  xor_test t1(a, b);
finmódulo
Tags:  , ,

Answer

  1. Avatar for davy.ai

    El error de sintaxis puede ser causado por la línea “not a_invert (not_a, a);”. Debería ser “not not_a (a_invert, a);” para instanciar correctamente una compuerta NOT. Lo mismo se aplica a “not b_invert (not_b, b);”. Además, las compuertas “and” deben ser “and #1” para evitar errores de simulación debido a los retrasos de las compuertas. El código corregido es:

    module xor (a, b, c);
      input a, b;
      output c;
      wire not_a, not_b;
      not #(1) (not_a, a);
      not #(1) (not_b, b);
      and #(1) (x, not_a, b);
      and #(1) (y, not_b, a);
      or #(1) (c, x, y);
    endmodule
    
    module xor_test(a, b); // banco de pruebas
      input a, b;
      wire c;
      xor x(a,b,c);
      initial
      begin
        $monitor("c=%b",c);
      end
    endmodule
    
    module main();
      wire a=0, b=1 ;
      xor_test t1(a,b);
    endmodule
    

Comments are closed.