Processor development

Category Archives: Processor development

Synplify’s VHDL libraries deobfuscated

While working with floating point numbers in a VHDL project for a Lattice iCE40 FPGA, I encountered a synthesis error, located in the float_generic_pkg.vhd, which comes as part of Mentor Graphic’s Synplify. Unfortunately the problem could not be further investigated or even fixed, as the library is obfuscated.

I’m not sure, if the library obfuscation makes much sense here, as it is taken from publicly available resources (it’s an IEEE library). However, replacing the obfuscated library with the one available online didn’t work either, as the synthesizer tries to deobfuscate the library before using it for compilation.

From the contents of the file it is pretty obvious that a simple substitution-based obfuscation method was used, followed by a round of character transpositions within blocks of four characters.