Защитите модели, чтобы скрыть содержимое

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

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

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

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

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

  • Сгенерируйте HDL-код для модели, которая включает защищенную модель. Чтобы узнать о создании защищенных моделей с поддержкой генерации HDL-кода, смотрите, Создают Защищенные Модели, чтобы Скрыть Содержимое и Сгенерировать HDL-код (HDL Coder).

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

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

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

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

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

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

Чтобы создать защищенную модель из модели, на которую ссылаются, выберите блок Model, который ссылается на модель, затем используйте одну из этих опций:

  • На вкладке Simulink Toolstrip Model Block нажмите кнопку Protect.

  • На вкладке Simulink Toolstrip C Code кликните по стреле кнопки Share, затем выберите Generate Protected Model From Selected Model Block.

Чтобы создать защищенную модель из текущей модели, используйте одну из этих опций:

  • На вкладке Simulink Toolstrip Simulation кликните по стреле кнопки Save, затем выберите Protected Model.

  • На вкладке Simulink Toolstrip C Code кликните по стреле кнопки Share, затем выберите Generate Protected Model.

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

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

В этом примере показано, как создать защищенную модель из модели, на которую ссылаются, для просмотра только для чтения, симуляции или генерации кода.

Подготовьте родительскую модель

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

  1. Откройте родительскую модель, которая ссылается на модель, которую вы хотите защитить. В данном примере откройте модель sldemo_mdlref_basic.

  2. Чтобы запустить рабочий процесс, создайте локальную копию модели sldemo_mdlref_counter то, что вы хотите защитить. Можно затем создать локальную копию родительской модели sldemo_mdlref_basic. Необходимо сохранить родительскую модель в той же папке как модель, на которую ссылаются.

  3. Откройте sldemo_mdlref_basic модель, что вы сохраненный локально. Убедитесь, что Model блокирует CounterA, CounterB, и CounterC сошлитесь на sldemo_mdlref_counter модель, что вы сохраненный локально.

  4. Для каждого блока Model откройте диалоговое окно Block Parameters и задайте дополнительный .slx в поле Model name. Когда и модель и защищенная модель существуют в той же папке, .slxp более приоритетен по сравнению с .slx. Если вы не задаете расширение, то исходный блок Model в модели обращается к защищенной модели вместо исходной модели. Нажмите OK.

Защитите модель, на которую ссылаются,

  1. Кликните по любому из трех блоков Model. На вкладке Simulink Toolstrip Model Block нажмите Protect.

  2. В диалоговом окне Create Protected Model установите флажки Simulate и Use generated code. Эти опции позволяют защищенному пользователю модели симулировать и генерировать код для модели, которая ссылается на защищенную модель. Если вы хотите к паролю - защищают функциональность защищенной модели, вводят пароль с минимумом четырех символов. Каждая опция может иметь уникальный пароль.

  3. Если вы имеете Embedded Coder и задаете основанный на ERT системный конечный файл (например, ert.tlc) для модели отображается поле Code interface.

    В этом примере, sldemo_mdlref_basic не задает основанный на ERT системный конечный файл, поэтому опции Code interface не доступны в диалоговом окне Create Protected Model.

    От Code interface выпадающий список выберите одну из этих опций:

    • Model reference — Задает доступ кода через интерфейс модели - ссылки кода, который позволяет использование защищенной модели в иерархии модели - ссылки. Пользователи защищенной модели могут сгенерировать код от родительской модели, которая содержит защищенную модель. Пользователи могут запустить блок Model симуляции SIL/PIL с защищенной моделью.

    • Top model — Задает доступ кода через автономный интерфейс. Пользователи защищенной модели могут запустить блок Model симуляции SIL/PIL с защищенной моделью.

  4. Из списка Content type выберите Obfuscated source code скрыть цель исходного кода и логику защищенной модели. Для получения дополнительной информации об опциях защиты модели смотрите Тип контента.

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

    В этом примере, модели sldemo_mdlref_counter, на которую ссылаются, использование double типы данных. Во вкладке HDL Code Generation> Floating Point, набор Library к Native Floating Point и Latency Strategy к ZERO. См. также Создают Защищенные Модели, чтобы Скрыть Содержимое и Сгенерировать HDL-код (HDL Coder).

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

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

    Примечание

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

  8. Установка Contents к Protected Model (.slxp) and dependencies in a project устанавливает флажок Create harness model for protected model. Модель тестовой обвязки включена в проект и обеспечивает изолированную среду для блока Model, который ссылается на защищенную модель.

  9. Чтобы далее настроить вашу защищенную модель, вы можете:

  10. Нажмите Create.

    Архив проекта (.mlproj) это содержит защищенную модель, модель тестовой обвязки, и вспомогательные файлы появляются в заданной папке назначения. Чтобы протестировать защищенную модель, извлеките содержимое архива проекта путем двойного клика по нему в Браузере текущей папки и определения папки назначения. В качестве альтернативы щелкните правой кнопкой по проекту, архивируют и нажимают Extract Here. Проект открывается, и извлеченные файлы находятся в новой папке, названной в честь архива проекта.

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

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

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

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

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

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

    Сгенерировать отчет при использовании Simulink.ModelReference.protect функция, набор 'Report' к true.

  12. Можно протестировать защищенную модель, чтобы сравнить его с исходной моделью. Для получения дополнительной информации смотрите Тест Защищенные Модели.

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

Защищенные требования модели и ограничения

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

  • У вас должны быть Simulink Coder™ или лицензия HDL Coder, чтобы создать защищенную модель.

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

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

  • Модель не может использовать невстроенную S-функцию прямо или косвенно.

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

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

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

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

  • Используйте уникальное имя для модели и для моделей, на которые она ссылается. Если защищенные модели - ссылки модель, которая совместно использует имя или с различной защищенной моделью или с различной моделью в иерархии другой защищенной модели, существует ограничения для использования защищенных моделей. Если топ-модель ссылается на две защищенных модели, которые имеют такой конфликт по совпадению имен, вы не можете защитить топ-модель, сгенерировать код для топ-модели или симулировать топ-модель в программном обеспечении в цикле (SIL), процессоре в цикле (PIL) или быстрых режимах Accelerator.

Модель должна также удовлетворить требования, перечисленные в Требованиях Модели - ссылки и Ограничениях.

Требования генерации кода и ограничения

Чтобы создать защищенную модель, которая поддерживает генерацию кода, ваша модель должна удовлетворить эти требования:

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

  • Не устанавливайте флажок Code Generation > Verification > Measure function execution time. Если вам выбрали эту опцию, когда вы защищаете свою модель, программное обеспечение выключает параметр и выводит предупреждение.

  • Защищенные модели, на которые ссылаются, должны поддержать генерацию кода без защиты паролем.

  • Защищенная модель должна быть совместима с Content type каждой защищенной модели, на которую ссылаются. Эта таблица предоставляет информацию о совместимости.

    Совместимость типа контента генерации кода

    Защищенный тип контента родительской моделиСовместимые защищенные типы контента модели, на которые ссылаются,
    Binaries
    • Binaries

    • Obfuscated source code

    Binaries с 'ObfuscateCode' установите на 'false'
    • Binaries

    • Binaries с 'ObfuscateCode' установите на 'false'

    • Obfuscated source code

    • Readable source code

    Obfuscated source code
    • Obfuscated source code

    Readable source code
    • Obfuscated source code

    • Readable source code

    Когда Content type защищенной родительской модели и защищенных моделей, на которые ссылаются, не соответствует, генерация кода применяет Content type, который обеспечивает более высокий уровень защиты. Например, защищенная родительская модель установлена для Binaries генерирует Binaries для защищенных моделей, на которые ссылаются, которые установлены в Obfuscated source code. Защищенная родительская модель установлена для Readable source code генерирует Obfuscated source code для защищенных моделей, на которые ссылаются, которые установлены в Obfuscated source code.

Чтобы избежать ошибки во время генерации кода модели, которая включает защищенную модель:

  • Защищенное имя модели должно быть уникальным от других имен модели в той же иерархии модели - ссылки.

  • Интерфейсы должны соответствовать.

  • Параметры должны быть совместимыми.

Вложенные защищенные требования модели и ограничения

Если на вашу защищенную модель ссылается другая модель, которая защищена, ваша модель должна:

  • Поддержите режим Accelerator. Необходимо выбрать Simulate в диалоговом окне Create Protected Model или установить 'Mode' к 'Accelerator' или 'CodeGeneration' при помощи Simulink.ModelReference.protect функция.

  • Используйте 'CodeInterface' по умолчанию установка: 'Model reference'.

  • Не используют защиту паролем для симуляции.

  • Не имеют коллбэки.

  • Поддержите операции, которые защищенная родительская модель поддерживает без защиты паролем.

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

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

Если модель, которую вы хотите защитить, ссылается на защищенную модель, защищенная модель, на которую ссылаются, должна удовлетворить предыдущие требования.

Примечание

Защищенная модель, которую вы создаете с выбранной опцией Use generated HDL code, позволяет шифрование и поддержку симуляции и генерации HDL-кода из модели, которая ссылается на защищенную модель. Вы не можете запутать исходный код HDL, иметь коллбэки, или использование вложило защищенные модели с этой опцией. Чтобы узнать больше об ограничениях генерации HDL-кода, смотрите Защищенные Ограничения Модели для генерации HDL-кода (HDL Coder).

Похожие темы