Re: datapath enhancements to verilog, extern etc.


Subject: Re: datapath enhancements to verilog, extern etc.
From: Kevin Cameron (dkc@galaxy.nsc.com)
Date: Tue Dec 11 2001 - 15:00:08 PST


The Verilog-AMS "Filters for foreign languages" proposal is appended below, with a minor change for per-instance attributes. It hasn't been approved, so feel free to offer alternatives and/or enhancements. Just substitute your favorite non-Verilog HDL where it mentions Spice.

This mechanism (or something like it) could be used for state machine definitions and other extensions that translate fairly directly to Verilog 2001/199?
If an open-source filter for the new language is donated to Accellera and it receives popular support, the extensions can then be rolled into later language revs.

Kev.

---------------------------------
Issue 17: Filters for foreign languages
http://www.eda.org/verilog-ams/htmlpages/tc-docs/issues/0017/index.html

Rationale

Most CAD design systems use legacy design languages (e.g. Spice - which has many variants, Spectre and Mast). Stipulating that Verilog-AMS simulators should read any of these languages directly is an unreasonble onus on simulator developers, even if the DOD requires Spice compatibility. It is also unreasonable (and sometimes impracticable) to have users maintain multiple copies of the same data in different formats.

Proposal

The "external module" proposal should be extended with parameters and/or keywords indicating a source file, the language of the source file and a filter program which will translate the specified source into Verilog-AMS. Filter programs could be supplied by users or by vendors.

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. Per-instance parameter values would be appended after endmodule.

If the filter returns a non-zero status the simulator should abort.

Notes:
  The source specification does not have to be a file, it can be a database reference (e.g. milkyway) or some other logical name that the filter understands (e.g. WWW URL's and
encrypted files).



This archive was generated by hypermail 2b28 : Tue Dec 11 2001 - 14:55:01 PST