hi i have written a code like this
class A
extern function void calculate_partitions;
/////
somecode
////
endclass
function void A::calculate_partitions;
output int start_gb,end_gb,start_mb,end_mb,start_kb,end_kb;
endfunction
///////////////////////////
this code is showing a compilation error like Extern method ‘calculate_partitions’ declares argument ‘start_gb’ not found in prototype.
what is wrong with this style of coding.i read that output or input ports can be declared like this
In reply to pawan:
The extern prototype requires Verilog-2001 or what is now called ANSI-style argument declarations that match the arguments of the external declaration. You are free to use either ansi- or non-ansi style ports, but why not make them the same.
class A
extern function void calculate_partitions(
output int start_gb,end_gb,start_mb,end_mb,start_kb,end_kb
);
/////
somecode
////
endclass
function void A::calculate_partitions(
output int start_gb,end_gb,start_mb,end_mb,start_kb,end_kb
)
endfunction