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: "";