10.06.2016 Views

eldo_user

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Eldo Netlist Setup<br />

Protection of Encrypted Libraries<br />

• Safety guarantee<br />

The .SEMITRANSPARENT command is effective only if it is found at the beginning of<br />

the deciphered content of an encrypted block. The semi-transparency property only<br />

applies to the content of the very same encrypted block. This constraint guarantees that<br />

it is not possible to transfer the semi-transparency property to encrypted blocks that were<br />

not semi-transparently encrypted. The Eldo encryption scheme guarantees that there is<br />

no way for an attacker to decipher or modify the content of an existing encrypted block<br />

without computing the Eldo key. There is no way for an attacker to prepend<br />

.SEMITRANSPARENT to the content of an encrypted block in order to make it semitransparent.<br />

• User-defined semi-transparent encrypted block<br />

You can manually insert .SEMITRANSPARENT as the first command of a subcircuit<br />

definition or a protected block. As long as the command is in plain-text it is discarded by<br />

Eldo. But once the circuit netlist is encrypted (using the encrypt_<strong>eldo</strong> utility), the<br />

commands are processed by Eldo as if they appear at the proper location. If you specify<br />

the encrypt_<strong>eldo</strong> utility without the -semi argument, then the only semi-transparent<br />

blocks generated are those you manually annotated.<br />

The additional encrypt_<strong>eldo</strong> utility -nosemi argument produces non-semi-transparent<br />

encrypted blocks, discarding any <strong>user</strong> annotation. It is equivalent to removing every<br />

.SEMITRANSPARENT command from the input file before encrypting it.<br />

• Semi-transparent encryption of Verilog-A blocks.<br />

Examples<br />

Verilog-A modules embedded in a SPICE netlist, using the .INLINE command or<br />

described in a separate file, can be encrypted using the same mechanism above. Module<br />

internal nodes and variables are given public visibility while keeping the<br />

implementation private. To encrypt a Verilog-A file, specify the encrypt_<strong>eldo</strong> utility<br />

with the -veriloga argument.<br />

Only protected modules that have the Verilog `pragma protect viewport compiler<br />

directive defined before the `pragma protect begin directives, will be encrypted in a<br />

semi-transparent way. The other modules that do not have this directive before the<br />

`pragma protect begin are encrypted in a standard way. The encrypt_<strong>eldo</strong> utility -semi<br />

argument is not mandatory to achieve semi-transparent encryption of Verilog-A<br />

modules. If this argument is specified then all modules to be encrypted in a file are done<br />

so in a semi-transparent way.<br />

The .SEMITRANSPARENT command is optional if the encrypt_<strong>eldo</strong> utility is specified with<br />

the -semi argument. .MODEL commands must be included inside a .PROTECT or a .SUBCKT<br />

statement in order for them to be semi-transparently encrypted. For example, to encrypt a model<br />

semi-transparently, pass the following commands to the encrypt_<strong>eldo</strong> utility:<br />

148<br />

Eldo® User's Manual, 15.3

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!