Создайте защищенные модели, чтобы скрыть содержимое и сгенерировать HDL-код

Когда вы хотите поделиться моделью с третьей стороной, не раскрывая интеллектуальное свойство, защитите модель. Когда вы создаете защищенную модель, вы скрываете детали реализации исходной модели, компилируя ее в ссылочную модель. Защищенная модель включает производные файлы для поддержки дополнительных функциональностей, которые вы задаете, таких как поддержка генерации кода C или генерация HDL-кода.

Если у вас есть лицензия на HDL Coder™, можно создать защищенную модель с поддержкой симуляции и генерации HDL-кода. Пользователь защищенной модели может затем сгенерировать HDL-код для моделей, которые ссылаются на защищенную модель, которую вы создали. Чтобы включить поддержку генерации кода C или задать дополнительные опции, такие как интерфейс кода, вы должны иметь Simulink® Coder™ или Embedded Coder® лицензия. Дополнительные сведения об этом рабочем процессе см. в разделе Защита моделей для сокрытия содержимого.

Как работает защита модели

Когда вы защищаете модель, можно позволить пользователю защищенной модели:

  • Откройте веб-представление модели только для чтения, включая содержимое модели и параметры блоков.

  • Симулируйте модель в Accelerator (по умолчанию), Rapid Accelerator и режимы normal mode.

  • Сгенерируйте HDL-код для модели, которая включает в себя защищенную модель.

  • Сгенерируйте код С для модели, которая включает защищенную модель, если у вас есть Simulink Coder.

  • Сгенерируйте код для защищенной модели через автономный интерфейс, если у вас есть Embedded Coder и укажите системный целевой файл на основе ERT для модели.

Вы можете опционально защитить паролем каждую опцию. Если вы выбираете защиту паролем для одного из следующих опций, программное обеспечение защищает вспомогательные файлы с помощью AES-256 шифрования.

Как создать защищенную модель

Создайте защищенную модель с помощью одного из следующих опций:

  • Чтобы создать защищенную модель из модели-ссылки, выберите блок Model и на вкладке Model Block Simulink Toolstrip нажмите кнопку Protect.

  • Чтобы создать защищенную модель из текущей модели:

    • На вкладке Apps Simulink Toolstrip выберите HDL Coder. Появится вкладка HDL Code.

    • Выберите блок Model и на вкладке HDL Code > Share выберите Generate Protected Model.

  • Чтобы программно создать защищенную модель, используйте Simulink.ModelReference.protect функция.

Когда вы создаете защищенную модель:

  • Simulink создает и хранит защищенную версию модели в файле, который имеет то же имя, что и исходная модель, с .slxp расширение.

  • Исходный файл модели с .slx расширение, не меняется. Если вы защищаете модель через Model блок, этот Model блок не меняется.

  • Кроме того, Simulink создает архив проекта (.mlproj), который содержит защищенную модель, модель тестовой обвязки для защищенной модели и дополнительные вспомогательные файлы.

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

Общие требования и ограничения защищенной модели

Когда вы создаете защищенную модель, примите во внимание следующие требования:

  • Для создания защищенной модели необходимо иметь лицензию HDL Coder или Simulink Coder.

  • Модель должна быть доступна в MATLAB® путь.

  • Модель не может иметь несохраненных изменений.

  • Модель использует строение, которая активна во время защиты. Вы не можете изменить строение защищенной модели.

  • Если модель содержит варианты, защищенная модель включает только вариант, который активен во время защиты.

  • Имя защищенной модели не должно быть изменено. Переименование модели или изменение суффикса делает модель непригодной, пока вы не восстановите ее исходное имя и суффикс.

Модель должна также соответствовать всем требованиям, перечисленным в Модель-ссылку Requirements and Limitations.

Защищенные ограничения модели для генерации HDL-кода

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

  • Защищенная модель должна использовать те же параметры конфигурации, что и верхний уровень, из которого она ссылается.

  • Настройки решателя, которые вы задаете в панели Solver диалогового окна Параметры конфигурации (Configuration Parameters), должны быть Fixed-step и auto.

  • Вы не должны включать эти настройки в диалоговом окне Параметров конфигурации:

    • Generate parameterized HDL code from masked subsystem

    • Module name prefix

    • Use trigger signal as clock

    • Minimize clock enables

    • Scalarize vector ports

    • Allow clock-rate pipelining at DUT output ports

  • Модели с несколькими синхросигналами или Clock inputs, установленным на multiple в диалоговом окне Параметры конфигурации не поддерживаются.

  • Модели, которые содержат аргументы модели, не поддерживаются.

  • Исходный код HDL защищенной модели не может быть запутан.

  • Вложенные защищенные модели не поддерживаются.

  • Защищенная модель не может иметь коллбэков.

Дополнительные сведения об ограничениях для генерации кода C см. в разделе Требования к генерации кода и ограничения.

Подготовка родительской модели

В этом примере показано, как можно защитить модель, на которую ссылается блок Model в родительской модели. Откройте родительскую модель hdlcoder_protected_model_parent_harness.

open_system('hdlcoder_protected_model_parent_harness')
set_param('hdlcoder_protected_model_parent_harness','SimulationCommand','Update')

Перейдите к блоку Model в родительской модели. Если вы дважды кликните DUT Подсистема, а затем откройте mynested Подсистема, вы видите блок Model, который ссылается на модель hdlcoder_referenced_model_gain.

open_system('hdlcoder_protected_model_parent_harness/DUT/mynested')

Откройте блок Model и убедитесь, что имя модели с расширением .slx задается в поле имя. Когда и ссылочная модель, и защищенная модель существуют в одной папке, родительская модель ссылается на защищенную модель, если расширение не задано.

В этом случае блок Model ссылается на модель hdlcoder_referenced_model_gain.slx, модель, которую вы хотите защитить. Дважды кликните Model блокируйте или открывайте модель hdlcoder_referenced_model_gain в отдельном окне.

open_system('hdlcoder_referenced_model_gain')
set_param('hdlcoder_referenced_model_gain','SimulationCommand','Update')

Защита ссылочных Моделей

  1. Выберите Model блок.

  2. На вкладке Model Block Simulink Toolstrip нажмите Protect.

  3. В диалоговом окне «Создание защищенной модели» выберите диалоговое окно «Simulate». Эта опция позволяет пользователю защищенной модели моделировать модель, которая ссылается на защищенную модель.

  4. Если у вас есть Simulink Coder или Embedded Coder, можно задать дополнительные настройки, такие как включение поддержки генерации кода с защитой паролем при помощи флажка Use generated code или определения Code interface. Дополнительные сведения об этих опциях см. в разделе Защита моделей для сокрытия содержимого (Embedded Coder).

  5. Установите флажок Use generated HDL code, чтобы сгенерировать HDL-код для модели, которая ссылается на защищенную модель. Если вы хотите защитить паролем эту функциональность защищенной модели, необходимо задать минимум восемь символов. Вы можете задать уникальный пароль для этой опции. Вы не можете запутать исходный код HDL для защищенной модели.

  6. В Destination folder окне укажите путь к папке для защищенной модели. Значением по умолчанию является текущая рабочая папка.

  7. Чтобы автоматически собирать, создавать и упаковать вспомогательные файлы с помощью защищенной модели, установите Contents равным Protected Model (.slxp) and dependencies in a project. В этом примере установите Contents равным Protected Model (.slxp) only.

  8. Чтобы создать модель тестовой обвязки для защищенной модели, установите флажок Create harness model for protected model. Модель тестовой обвязки обеспечивает изолированное окружение для блока Model, который ссылается на защищенную модель. В этом примере снимите флажок.

  9. Нажмите Create.

    HDL Coder проверяет совместимость модели для генерации HDL-кода, затем генерирует код для модели. Содержимое сгенерированного файла кода находится в hdlsrc папка. Чтобы узнать о сгенерированных файлах, см. Раздел «Пакет и совместное использование защищенных моделей».

  10. Чтобы использовать защищенную модель в иерархии модели, ссылайтесь на нее через блок Model. Значение Simulation mode для блоков Model, которые ссылаются на защищенную модель Accelerator. Вы не можете изменить режим. Для получения дополнительной информации смотрите Ссылки Защищенные Модели от Третьих Сторон.

Дополнительные сведения об опциях см. в разделе Создание защищенной модели.

Чтобы создать защищенную модель при использовании Simulink.ModelReference.protect function, установите Mode на HDLCodeGeneration. Для примера запуска эту команду, чтобы защитить ссылку на модель hdlcoder_referenced_model_gain:

Simulink.ModelReference.protect('hdlcoder_referenced_model_gain', ... 
                                    'Mode','HDLCodeGeneration')

Отчет о защищенной модели

Когда вы создаете защищенную модель из Редактор, отчет защищенной модели генерируется и включается как часть защищенной модели. В данном примере, чтобы просмотреть отчет о защищенной модели, дважды кликните защищенную модель или щелкните правой кнопкой значок защищенной модели на блоке в модели тестовой обвязки и выберите Display Report.

Отчет содержит:

  • A Summary, включая следующие таблицы:

    • Environment, обеспечивая версию Simulink, версию Simulink Coder, версию HDL Coder и платформу, используемую для создания защищенной модели.

    • Supported functionality, создание отчетов On, Off, или On with password protection для каждой возможной функциональности, которую поддерживает защищенная модель. Если вы конфигурируете свою защищенную модель для нескольких целевых объектов, эта таблица включает список поддерживаемых целевых объектов.

    • Licenses с перечнем лицензий, необходимых для запуска защищенной модели.

  • Interface Report, включая информацию интерфейса модели, такие как входные и выходные спецификации, параметры интерфейса и хранилища данных.

Чтобы сгенерировать отчет при использовании Simulink.ModelReference.protect function, set the "Report"опция для True.

Сгенерируйте HDL-код для моделей, ссылающихся на защищенную модель

Если защищенная модель имеет поддержку симуляции и генерации HDL-кода, пользователь защищенной модели может симулировать и сгенерировать HDL-код из модели, которая ссылается на защищенную модель. Вы генерируете HDL-код для модели, которая ссылается на защищенную модель таким же образом, как и то, как вы генерировали бы код для регулярной модели.

Если защищенная модель защищена паролем, прежде чем вы сгенерируете код, щелкните правой кнопкой значок защищенной модели и выберите Authorize. Затем необходимо ввести пароль для каждой опции. Если введенный пароль совпадает с паролем, который вы указали при создании защищенной модели, модель авторизована. Затем можно сгенерировать HDL-код для модели.

Например, чтобы сгенерировать HDL-код для защищенной модели hdlcoder_referenced_model_gain.slxp на который ссылается hdlcoder_protected_model_parent_harness модель:

  1. Авторизируйте защищенную модель hdlcoder_referenced_model_gain.slxp если вы задаете пароль при создании защищенной модели.

  2. Сгенерируйте HDL-код для Подсистемы DUT из контекстного меню или при помощи makehdl функция.

    makehdl('hdlcoder_protected_model_parent_harness/DUT')

См. также

Функции

Похожие темы