( ESNUG 319 Item 5 ) --------------------------------------------- [5/26/99]

Subject: Current Cadence/Synopsys/Avant! Techniques For Verilog Encryption

> I was wondering if anyone knew the status of source code protection/
> encryption for Verilog.  I know Cadence and some others have this
> feature but that they were not cross-vendor compatible.


From: Lance Pickup <lpickup@xanadu.btv.ibm.com>

As far as I am aware, source code protection is available via the following
means (this list may not be complete):

1) Most (all?) Verilog vendors provide a source code encryption mechanism
   based on use of `protect blocks and the +protect command line arguments.
   I know that Cadence Verilog-XL, Chrono VCS and Avant! Polaris all have
   this capability.  It's quick and painless to protect your source this
   way, involving a mere pass through the front-end parser and spitting out
   platform independent "encrypted" code.  It is also very inexpensive: the
   Verilog simulators that support this allow you to use this feature for
   free.  The drawbacks are:

     - There are exposures using these methods.  The Verilog-XL encryption
       has been cracked in the past.  Apparently VCS has a possible security
       hole that has been addressed.  The moral here is that this is not
       an extremely safe method!

     - It is vendor-specific.  So you would have to encrypt in whatever
       simulator the person receiving your source is using.  This may
       invalidate my comment about cost above if you have to go out and
       buy a simulator seat just to protect your models!

2) There are tools available which obfuscate the source -- transforming
   module, component, net, port, etc. names into "undecodable" strings of
   characters such as IO0Oo000II111iO in an attempt to mask the true nature
   of the source.  I'll leave it to you to assess the security of this
   approach.  Still, if you are certain you have non-malicious users and
   your source is not incredibly sensitive, this may be a workable approach.

3) There is the VMC tool from Synopsys which compiles your Verilog (with the
   VCS engine) into object code.  Prior versions output a model with a PLI
   interface that would work with any Verilog simulator.  The latest version
   puts a SWIFT interface on the model which can be used with most popular
   simulators, allowing you to share your Verilog model with VHDL users
   (without the need for co-sim licenses).  The SWIFT interface does not
   currently support cycle-based simulators.  I am not sure how this relates
   to the Synopsys CoreBuilder product.

4) Keep an eye on OMI (Open Model Interface).  This is not a current
   solution, but is one that is in the works.  This is now an IEEE standard
   (1499) API for simulators.  Cadence and a few other vendors have said
   that their simulators will be OMI compliant by year end and Cadence
   plans to offer a "packager" utility which will package up models
   presumably compiled with one of their simulators).  I believe the
   packager will come with the simulator and allow you to package models for
   free to be used with Cadence simulators.  If your models need to be used
   with other vendors' simulators, there will be a cost associated.

It is said that OMI will have the capability to support cycle simulators.

    - Lance Pickup
      IBM Microelectronics                         Burlington, VT



 Sign up for the DeepChip newsletter.
Email
 Read what EDA tool users really think.


Feedback About Wiretaps ESNUGs SIGN UP! Downloads Trip Reports Advertise

"Relax. This is a discussion. Anything said here is just one engineer's opinion. Email in your dissenting letter and it'll be published, too."
This Web Site Is Modified Every 2-3 Days
Copyright 1991-2024 John Cooley.  All Rights Reserved.
| Contact John Cooley | Webmaster | Legal | Feedback Form |

   !!!     "It's not a BUG,
  /o o\  /  it's a FEATURE!"
 (  >  )
  \ - / 
  _] [_     (jcooley 1991)