Hola, cuando uso el systemverilog, hay algunos puntos confusos.
el primero es distinguir sobre DPI y DPI-C.
como ejemplo siguiente, se utiliza DPI no DPI-C. pero como sé, el DPI-C está acostumbrado en C.
CODE:SV_file.sv
program main;
logic a;
import "DPI" function void show(logic a);
initial begin
a = 1'b0;
show(a);
a = 1'b1;
show(a);
a = 1'bX;
show(a);
a = 1'bZ;
show(a);
end
endprogram
CODE: C_file.v
#include <stdio.h>
#include <svdpi.h>
void show(svLogic a){
if(a == 0)
printf(" a is 0 \n");
else if(a == 1)
printf(" a is 1 \n");
else if(a == 2)
printf(" a is x \n");
else if(a == 3)
printf(" a is z \n");
}
RESULTS
a is 0
a is 1
a is z
a is x
¿Me harías saber cómo usar el DPI y el DPI-C?