protect/endprotect & verilog 2001

E

Eric Peterson

Guest
Hi,
Is there a way to use the protect/endprotect encryption on verilog
2001 code? I'm currently using Verilog-XL for encryption, and it
barfs on the various new constructs.

Regards,
Eric
 
On Wed, 19 Jan 2005 22:57:15 GMT, Eric Peterson
<Eric.R.Peterson@verizon.net> wrote:

Hi,
Is there a way to use the protect/endprotect encryption on verilog
2001 code? I'm currently using Verilog-XL for encryption, and it
barfs on the various new constructs.

Regards,
Eric
Which version of XL are you using ? With 5.1, I have no trouble
encrypting rtl with signed (signed wires, register and $signed)
feature but I don't know whether other 2001 features are also
supported.
 
On Thu, 20 Jan 2005 09:25:03 +0000, mk wrote:

On Wed, 19 Jan 2005 22:57:15 GMT, Eric Peterson
Eric.R.Peterson@verizon.net> wrote:
Hi,
Is there a way to use the protect/endprotect encryption on verilog
2001 code? I'm currently using Verilog-XL for encryption, and it
barfs on the various new constructs.

Which version of XL are you using ? With 5.1, I have no trouble
encrypting rtl with signed (signed wires, register and $signed) feature
but I don't know whether other 2001 features are also supported.
I'm using verilog-xl version 5.00. Currently it has problems with
`ifndef statements, but I suspect as more 2001 functionality gets put
into NC, I'm looking to the future as to what I should be using.

The Model Packager seems to require compilation of the source, which
makes it difficult for me as I would like to give customers the option
of setting verilog parameters (which is done at compile time).

Eric
 
mk wrote:
Which version of XL are you using ? With 5.1, I have no trouble
encrypting rtl with signed (signed wires, register and $signed)
feature but I don't know whether other 2001 features are also
supported.
Those aren't the best examples, since Verilog-XL actually
supports signed arithmetic. In fact, Verilog-2001 signed
arithmetic was based on the implementation in XL, rather
than the other way around.

However, most Verilog-2001 constructs should encrypt just
fine. The exceptions would be new compiler directives,
since XL expects to recognize those during encryption.
The rest of the new tokens look like some old token to
XL, so it can encrypt them.
 
"Eric Peterson" <Eric.R.Peterson@verizon.net> wrote in message
news:pan.2005.01.20.17.33.40.826173@verizon.net...
On Thu, 20 Jan 2005 09:25:03 +0000, mk wrote:

On Wed, 19 Jan 2005 22:57:15 GMT, Eric Peterson
Eric.R.Peterson@verizon.net> wrote:
Hi,
Is there a way to use the protect/endprotect encryption on verilog
2001 code? I'm currently using Verilog-XL for encryption, and it
barfs on the various new constructs.

Which version of XL are you using ? With 5.1, I have no trouble
encrypting rtl with signed (signed wires, register and $signed) feature
but I don't know whether other 2001 features are also supported.

I'm using verilog-xl version 5.00. Currently it has problems with
`ifndef statements, but I suspect as more 2001 functionality gets put
into NC, I'm looking to the future as to what I should be using.

The Model Packager seems to require compilation of the source, which
makes it difficult for me as I would like to give customers the option
of setting verilog parameters (which is done at compile time).
You might consider using an obfuscator, instead.
Our obfuscator can scramble the symbol names, but
preserves *all* Verilog 2001 constructs.
You can also tell it to preserve vendor-specific synthesis
comments.

See
http://www.semanticdesigns.com/Products/Obfuscators/VerilogObfuscator.html

--
Ira D. Baxter, Ph.D., CTO 512-250-1018
Semantic Designs, Inc. www.semdesigns.com
 
My own followup - thanks to those that reponded...

On Wed, 19 Jan 2005 22:57:15 +0000, I wrote:

Is there a way to use the protect/endprotect encryption on verilog
2001 code? I'm currently using Verilog-XL for encryption, and it
barfs on the various new constructs.
According to Cadence support, if I upgrade to NC 5.1, there is a utility
called 'ncprotect' that should allow me to protect code that contains
verilog 2001 constructs. It has a slightly different syntax (I can't
figure out why...)

// pragma protect /* indicates that this file has protect statements */
// pragma protect begin
code to be protected here
// pragma protect end

FYI...

Thanks again,
Eric
 
Eric asked why the syntax for ncprotect differs from the old `protect
directive.

The `protect directive uses a company-proprietary encryption algorithm.
The encrypted code can only be simulated on Cadence simulators. Other
vendors may provide their own encryption that their tools can decrypt,
but these won't work across different vendors either. These algorithms
can't be made public, or anyone could decrypt the supposedly protected
code.

I believe that the alternate format used by ncprotect is part of an
effort to
allow encryption that can be read by multiple vendors' tools. The
approach
uses standard encryption algorithms with keys selected by the IP
vendor.
The keys are provided to all trusted tool vendors. Alternately, they
can be
put into the encrypted code, in key blocks for each supported vendor,
encrypted with public keys provided by each vendor. This scheme
requires
a syntax that can provide extra information for encryption and
decryption.
 

Welcome to EDABoard.com

Sponsor

Back
Top