Запутайте сгенерированный HDL-код из моделей Simulink

Чтобы совместно использовать HDL-код с третьим лицом, не показывая интеллектуальную собственность, можно сгенерировать запутываемый HDL-код из моделей Simulink®. Путаница уменьшает удобочитаемость кода. Сгенерированный HDL-код не имеет никаких комментариев, новых строк или пробелов, и заменяет имена идентификатора на случайные имена.

Как сгенерировать запутываемый HDL-код

По умолчанию сгенерированный HDL-код не запутывается. HDL-код содержит новые строки, комментарии, и читаем.

Сгенерировать запутываемый HDL-код для подсистемы DUT в вашей модели:

  1. Во вкладке Apps выберите HDL Coder. Вкладка HDL Code появляется.

  2. Откройте панель HDL Code Generation диалогового окна Configuration Parameters. Во вкладке HDL Code выберите Settings> HDL Code Generation Settings.

  3. Задайте генерацию запутываемого HDL-кода. В диалоговом окне Configuration Parameters, на разделе HDL Code Generation> Global Settings> Coding Style> RTL Style, устанавливают флажок Generate obfuscated HDL code.

  4. Сгенерируйте 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-код с путаницей

По умолчанию сгенерированный 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-кода не совместима с определенными Параметрами конфигурации и игнорирует эти параметры, если им включают на модели. Параметры включают:

Факторы запутанности кода и ограничения

  • Синтезирование запутываемого HDL-кода может произвести различные результаты синтеза результатов синтеза исходного HDL-кода. Для лучших результатов выполните синтез на оригинальном коде вместо запутываемого кода.

  • Путаница HDL-кода заменяет только имена, соответствующие файлам HDL, сигналам, блокам, именам переменных или портам со случайными именами. Другие имена идентификатора не заменяются, такие как имена векторов или перечислений.

  • Для некоторых интерфейсов, которые вы используете в своей модели Simulink, интерфейсная информация, такая как имена порта и интерфейсные имена сохраняется в запутываемом HDL-коде. Эти имена не запутываются. Интерфейсы включают:

    • DUT

    • Модель - ссылка

    • Черный квадрат

    • Xilinx® или Intel® цель с плавающей точкой

  • Вы не можете запутать HDL-код, сгенерированный для этих блоков:

Смотрите также

Функции

Параметры конфигурации Simulink

Похожие темы