Follow-up >
Example:
extern module my_spf;
parameter source = "/proj/big_chip/big.spf"; // may be list
parameter language = "HSpice";
parameter filter = "spc2vams"; // may include arguments
endmodule
If the simulator can read the specified file type directly (and the file
exists) it may do so, otherwise a "pipe" is created and the filter called
(see Unix "popen") as:
<filter> -module=<module name> -language=<language>\
-simulator=<caller name> -version=<caller version>\
<source>
e.g.:
spc2vams -module=my_spf -language=HSpice\
-simulator=vams -version=0.99.1\
/proj/big_chip/big.spf
The output of the filter should be read in the same manner as a `include'd
file.
Since the filter program may need extra information, it's standard input stream should be the (post-processed) text from extern to endmodule so that it can read any parameters and attributes associated with the definition.
If the filter returns a non-zero status the simulator should abort.
Notes: