Чтобы совместно использовать HDL-код с третьим лицом, не показывая интеллектуальную собственность, можно сгенерировать запутываемый HDL-код из моделей Simulink®. Путаница уменьшает удобочитаемость кода. Сгенерированный HDL-код не имеет никаких комментариев, новых строк или пробелов, и заменяет имена идентификатора на случайные имена.
По умолчанию сгенерированный HDL-код не запутывается. HDL-код содержит новые строки, комментарии, и читаем.
Сгенерировать запутываемый HDL-код для подсистемы DUT в вашей модели:
Во вкладке Apps выберите HDL Coder. Вкладка HDL Code появляется.
Откройте панель HDL Code Generation диалогового окна Configuration Parameters. Во вкладке HDL Code выберите Settings> HDL Code Generation Settings.
Задайте генерацию запутываемого HDL-кода. В диалоговом окне Configuration Parameters, на разделе HDL Code Generation> Global Settings> Coding Style> RTL Style, устанавливают флажок Generate obfuscated HDL code.
Сгенерируйте HDL-код. Выберите подсистему DUT как подсистему Code for, и затем нажмите кнопку Generate HDL Code.
По умолчанию HDL Coder™ генерирует, запутал код VHDL®. Чтобы сгенерировать запутываемый код Verilog®, в панели HDL Code Generation, устанавливают Language на Verilog
и затем нажмите кнопку Generate HDL Code.
Чтобы сгенерировать запутываемый HDL-код из командной строки, используйте ObfuscateGeneratedHDLCode
свойство с hdlset_param
или makehdl
. Например, чтобы сгенерировать запутываемый HDL-код для symmetric_fir
подсистема в sfir_fixed
модель:
makehdl('sfir_fixed/symmetric_fir', 'ObfuscateGeneratedHDLCode', 'on') % To generate obfuscated Verilog code, set 'Targetlanguage' to 'Verilog' makehdl('sfir_fixed/symmetric_fir', 'TargetLanguage', 'Verilog', ... 'ObfuscateGeneratedHDLCode', 'on')
По умолчанию сгенерированный HDL-код не запутывается. Например, этот код показывает сгенерированный код VHDL для шаблона модели Complex Multiplier в Simulink. Чтобы узнать больше об этом шаблоне, смотрите Использование Шаблоны Simulink для генерации HDL-кода.
... -- ------------------------------------------------------------- -- -- Module: HDL_Complex_Multiplier -- Source Path: untitled/HDL_Complex_Multiplier -- Hierarchy Level: 0 -- -- ------------------------------------------------------------- LIBRARY IEEE; USE IEEE.std_logic_1164.ALL; USE IEEE.numeric_std.ALL; ENTITY HDL_Complex_Multiplier IS PORT( ... X_re : IN std_logic_vector(17 DOWNTO 0); -- sfix18_En17 ... ); END HDL_Complex_Multiplier; ...
Чтобы сгенерировать запутываемый HDL-код, включите путаницу HDL-кода и затем сгенерируйте код. Например, этот код показывает имена сущности и имена порта, которые запутываются в сгенерированном коде VHDL.
LIBRARY IEEE; ... ENTITY Q1LNc1j7NFXR IS PORT(EEY54qLw4C0j9uD:IN std_logic_vector(17 DOWNTO 0); ...
Когда вы задаете генерацию запутываемого HDL-кода, и затем генерируете код, HDL Coder представляет отчет Запутанности кода. Отчет Запутанности кода отображает состояние путаницы HDL-кода. Это также отображается, использует ли модель параметры конфигурации, которые несовместимы с запутанностью кода, и обеспечивает ссылку, чтобы отключить эти параметры. Эти параметры проигнорированы во время процесса путаницы.
Путаница HDL-кода не совместима с определенными Параметрами конфигурации и игнорирует эти параметры, если им включают на модели. Параметры включают:
Эти параметры в HDL Code Generation> Global Settings> панель General:
Эти параметры во вкладке HDL Code Generation> Global Settings> Coding Standards:
Параметры Индивидуальной настройки Комментария Файла во вкладке HDL Code Generation> Global Settings> Coding Style.
Сгенерировать трассируемость сообщает о параметре в HDL Code Generation> панель Report.
Синтезирование запутываемого HDL-кода может произвести различные результаты синтеза результатов синтеза исходного HDL-кода. Для лучших результатов выполните синтез на оригинальном коде вместо запутываемого кода.
Путаница HDL-кода заменяет только имена, соответствующие файлам HDL, сигналам, блокам, именам переменных или портам со случайными именами. Другие имена идентификатора не заменяются, такие как имена векторов или перечислений.
Для некоторых интерфейсов, которые вы используете в своей модели Simulink, интерфейсная информация, такая как имена порта и интерфейсные имена сохраняется в запутываемом HDL-коде. Эти имена не запутываются. Интерфейсы включают:
DUT
Модель - ссылка
Черный квадрат
Xilinx® или Intel® цель с плавающей точкой
Вы не можете запутать HDL-код, сгенерированный для этих блоков: