Error al cargar el diseño. Referencia no resuelta

1

¡Por favor ayuda!

DUT: AND gate

module ANDgate(a, b, c);
input a;
input b;
output c;
assign c = a & b;
endmodule

TESTBENCH: sin tarea

'include "simple_task.v"    
module task_calling();
  reg tb_a;
  reg tb_b;
  wire tb_c;  

ANDgate myAND (
  .a(tb_a),
  .b(tb_b),
  .c(tb_c));

always
  begin 
    task_ANDinputs(tb_a, tb_b);
    $display ("time = ", $time, " a = %d, b=%d, c=%d", tb_a, tb_b, tb_c);
  end  

endmodule

TAREA:

'include "ANDgate.v"
module simple_task();

task task_ANDinputs(output x, output y);

begin
  x = 1'b1;
  y = 1'b0;
end

endtask

endmodule

Pregunta, no hay error de compilación, pero dice ERROR LOADING DESIGN. ¿Hay algún problema con mi programa? El único uso de la tarea es ingresar 1 y 0 a x e y respectivamente. Y este es el error detallado: ** Error: (vsim-3043) C: /altera/14.1/Simple Task 2 / task_calling.v (14): Referencia no resuelta a 'task_ANDinputs'.

Por favor avise.

    

1 respuesta

1

No debe incluir otro módulo dentro de las palabras clave del módulo / endmodule. Ya no recibo errores cuando realizo los siguientes cambios:

task_calling.v:

'include "ANDgate.v"

module task_calling();

'include "simple_task.v"
  reg tb_a;
  reg tb_b;
  wire tb_c;  

ANDgate myAND (
  .a(tb_a),
  .b(tb_b),
  .c(tb_c));

initial
  begin 
    task_ANDinputs(tb_a, tb_b);
    $display ("time = ", $time, " a = %d, b=%d, c=%d", tb_a, tb_b, tb_c);
  end  

endmodule

simple_task.v:

task task_ANDinputs(output x, output y);

begin
  x = 1'b1;
  y = 1'b0;
end

endtask

Cambié tu always a un initial para evitar un bucle infinito.

    
respondido por el toolic

Lea otras preguntas en las etiquetas