| # SystemVerilog Source Code Obfuscator | |
| <!--* | |
| freshness: { owner: 'hzeller' reviewed: '2020-10-05' } | |
| *--> | |
| Obfuscation is useful for preparing test cases that may have sensitive content | |
| with tool vendors. `verible-verilog-obfuscate` transforms SystemVerilog code by | |
| replacing identifiers with obfuscated names (of equal length), and preserving | |
| all other text, including spaces. Output is written to stdout. The resulting | |
| file size is the same as the original. Diagnostic positions (line, column) on | |
| the obfuscated version of the file should correspond to positions in the | |
| original file. | |
| Usage: `verible-verilog-obfuscate [options] < original > output` | |
| ``` | |
| Flags: | |
| --decode (If true, when used with --load_map, apply the translation | |
| dictionary in reverse to de-obfuscate the source code, and do not | |
| obfuscate any unseen identifiers. There is no need to --save_map with this | |
| option, because no new substitutions are established.); default: false; | |
| --load_map (If provided, pre-load an existing translation dictionary | |
| (written by --save_map). This is useful for applying pre-existing | |
| transforms.); default: ""; | |
| --preserve_builtin_functions (If true, preserve built-in function names such | |
| as sin(), ceil()..); default: true; | |
| --preserve_interface (If true, module name, port names and parameter names | |
| will be preserved. The translation map saved with --save_map will have | |
| identity mappings for these identifiers. When used with --load_map, the | |
| mapping explicitly specified in the map file will have higher priority | |
| than this option.); default: false; | |
| --save_map (If provided, save the translation to a dictionary for reuse in a | |
| future obfuscation with --load_map.); default: ""; | |
| ``` |