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

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

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

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

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

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

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

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

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

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

  • По умолчанию Simulink® создает и хранит защищенную версию модели в текущей рабочей папке. Защищенная модель имеет то же имя как исходная модель с .slxp расширение.

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

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

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

  • Контекстное меню блока Model.

  • Simulink.ModelReference.protect функция.

  • Вкладка Simulink Toolstrip Simulation. Чтобы создать защищенную модель из текущей модели, из списка Save, выбирают Protected Model.

  • Вкладка Simulink Toolstrip C Code. Чтобы создать защищенную модель из текущей модели, из списка Share, выбирают Generate Protected Model. Чтобы создать защищенную модель из модели, на которую ссылаются, кликните по блоку Model, который ссылается на модель, которую вы хотите защитить и выбрать Generate Protected Model From Selected Model Block из списка Share.

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

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

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

Сконфигурируйте блоки 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. Из контекстного меню выберите Subsystem & Model Reference> Create Protected Model for Selected Model Block.

  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 скрыть цель исходного кода и логику защищенной модели. Для получения дополнительной информации об опциях защиты модели смотрите Тип контента (Simulink Coder).

  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. В поле Create protected model in задайте путь к папке для защищенной модели. Значением по умолчанию является текущая рабочая папка.

  7. Чтобы создать модель тестовой обвязки для защищенной модели, установите флажок Create harness model for protected model. Когда вы создаете защищенную модель, модель тестовой обвязки открывается как новая, неназванная модель, которая содержит только блок Model, который ссылается на защищенную модель. Чтобы использовать защищенную модель, сошлитесь на него через блок Model, такой как тот, включенный в модель тестовой обвязки. Для получения дополнительной информации см. Ссылочные Защищенные Модели от Третьих лиц (Simulink).

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

  9. Нажмите Create. Неназванная модель тестовой обвязки открывается. Можно группировать модель тестовой обвязки с защищенной моделью, чтобы совместно использовать с третьим лицом. Они могут скопировать блок Model от модели тестовой обвязки до другой модели, где это - интерфейс к защищенной модели. Simulation mode для блока Model установлен в Accelerator. Вы не можете изменить режим.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Защищенная модель должна использовать нормальный, акселератор, программное обеспечение в цикле (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).

Похожие темы