From: Jay Lawrence (lawrence@cadence.com)
Date: Wed Sep 10 2003 - 06:40:01 PDT
Precedence: bulk
The following reply was made to PR enhancement/466; it has been noted by GNATS.
From: "Jay Lawrence" <lawrence@cadence.com>
To: <alec@fintronic.com>, <etf-bugs@boyd.com>
Cc:
Subject: RE: enhancement/466: Separate Compilation
Date: Wed, 10 Sep 2003 09:25:28 -0400
Alec,
I read through this proposal this morning and just can't seem to make
sense of what is being proposed.
In order to standardize on separate compilation as an IP delivery
mechnism, I believe the important thing is vendor neutrality. It must be
possible to use a model packaged with any given tool in any other tool.
Without this the IP providers have a configuration management nightmare.
The IEEE 1499 Open Model Interface (OMI) standard already defines how to
deliver separately compiled models. If 1364 wants to standardize on how
to do this I believe it would best be done by referencing the 1499
standard, not reinventing the wheel.
Jay
===================================
Jay Lawrence
Senior Architect
Functional Verification
Cadence Design Systems, Inc.
(978) 262-6294
lawrence@cadence.com
===================================
> -----Original Message-----
> From: alec@fintronic.com [mailto:alec@fintronic.com]
> Sent: Tuesday, September 09, 2003 7:20 PM
> To: etf-bugs@boyd.com
> Subject: enhancement/466: Separate Compilation
>
>
> Precedence: bulk
>
>
> >Number: 466
> >Category: enhancement
> >Originator: Fintronic USA, Inc.
> >Environment:
>
> >Description:
>
> Separate compilation
> ====================
>
> 1. Introduction
>
> Super-FinSim provides the facility of separately compiling parts of
> the Verilog hierarchy. This pre-compiled hierarchy can then be mixed
> with other Verilog sources to build a new design. This facility is
> extremely helpful for users who want to ship their IP to their
> customers but do not want them to access the Verilog source. Not only
> will the access to the source be denied using the regular
> `protect/`endprotect mechanism but the IP provider will only have to
> ship binary files which would make it virtually impossible to
> re-create the original Verilog code. Another useful application of
> separately compiled code is for users who add legacy code to their
> designs which has been tested and will not need to be modified.
>
>
> 2. Compiling a Verilog Design Hierarchy into object code for
> later reuse
> --------------------------------------------------------------
> ----------
>
> 2.1 +sepgen option
>
> A Verilog description can be separately compiled for later reuse by
> invoking the compiler, called finvc, with the special option +sepgen,
> followed by an invocation of finbuild, as follows:
>
> # finvc +sepgen+<mymodel> <other options>
>
> # finbuild
>
> <mymodel> is a name given by the user to this design. One of the uses
> of <mymodel> is to make any symbols in the separately compiled design
> not clash with similar symbols in the final design (which instantiates
> the separately compiled design). After running these two steps, the
> temporary directory (fintemp by default) will contain the compiled `C'
> files, the interpretation data files, the elaboration data files as
> well as all other files needed for simulating this hierarchy. In
> addition it will contain a Verilog interface file called
> interface.v. This file contains the shell for the exported modules in
> the separately compiled design. Any of these modules can be
> instantiated in the final design.
>
> 2.3 Other options.
>
> finvc also assumes that everything in the separately compiled design
> except the interface for the top level module is protected. This
> assumption can be relaxed with the option (+fin_sep_unprotect).
>
> 3. Using a separately compiled hierarchy
> ----------------------------------------
>
> 3.1 +sepuse option
>
> In order to use a separately compiled Verilog design hierarchy as part
> of a new Verilog design hierarchy one must invoke finvc with the
> special option +sepuse, followed by finbuild and the invocation of the
> executable simulator, as follows:
>
> # finvc +sepuse+<directory name> <other options>
>
> # finbuild
>
> # TOP.sim
>
> The directory name is the directory where all the files were generated
> in the compilation step. More than one such +sepuse options can be
> specified. In this case finvc treats the file interface.v in the
> separately compiled directory as a library file, so that any module
> that is used in the final design and cannot be found is searched in
> this file.
>
> 4. Restrictions
> ---------------
>
> 4.1 Restrictions on the separately compiled code
>
> A module in the separately compiled design can be instantiated
> outside of the separately compiled design only if:
>
> a) there are no external references anywhere in the the separately
> compiled design (things like a.b.c).
>
> b) none of its parameters or the parameters of the modules
> instantiated in the hierarchy below it are overwritten with more
> than one value
>
> 4.2. Restrictions on the code instantiating a separately compiled
> module
>
> A design can instantiate modules from the separately compiled
> design if:
>
> a) it does not overwrite the parameters of the separately
> compiled module
> b) it doesn't make external references into the
> separately compiled design
> c) its time precision is not finer than the time precision of
> the separately compiled design.
>
This archive was generated by hypermail 2.1.4
: Wed Sep 10 2003 - 06:43:07 PDT
and
sponsored by Boyd Technology, Inc.