Browse Prior Art Database

Encryption of Verilog or VHDL Source Code to Protect IP from Human Interpretation Disclosure Number: IPCOM000033039D
Original Publication Date: 2004-Nov-22
Included in the Prior Art Database: 2004-Nov-22
Document File: 1 page(s) / 53K

Publishing Venue



An encryption method is disclosed for rendering a Verilog or VHDL source code very difficult for a human being to interpret while allowing any Verilog or VHDL compiler to work with the modified code. The method consists in suppressing any unnecessary blank space and new-line characters, replacing every name instance by randomly generated names and reformatting the new code.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 64% of the total text.

Page 1 of 1

Encryption of Verilog or VHDL Source Code to Protect IP from Human Interpretation

The problem to solve is to be able to distribute a Verilog or VHDL model for circuit simulation, circuit synthesis or circuit assembly purpose while protecting the IP of the delivered circuit.

A first characteristic of the disclosed method is to render very impracticable the reverse engineering or any other analysis made by a human being. The difficulty of such analysis being proportional to the considered circuit size. A second characteristic of the method is that the encrypted Verilog or VHDL code still complies to the Verilog or VHDL grammar and thus may be processed by any standard Verilog or VHDL compiler for simulation or synthesis purpose.

The HDL source code is first parsed to collect the list of all the signal names. A new name is randomly generated for each name found in the source code. The new name is an alphanumeric, typically 32-character long, using numbers 0 to 9 and the uppercase letters A to Z. Care is taken to ensure that every generated identifier is unique. An association table is built so that the names will be replaced by their new identifier in a second processing pass.

The encrypted HDL code is generated during a second pass through the original code.

A first feature of the method is to suppress any unnecessary blank space or new-line character and to re-flow the HDL code on a large number of columns, typically 4000 columns (i.e. a new-line character is inse...