Когда это необходимо, чтобы совместно использовать модель с третьим лицом, не показывая интеллектуальную собственность, защитите модель. Когда вы создаете защищенную модель, вы скрываете детали реализации исходной модели путем компиляции ее в модель - ссылку. Защищенная модель включает производные файлы, чтобы поддержать дополнительные функциональности, которые вы задаете.
Когда вы защищаете модель, можно позволить пользователю защищенной модели к:
Откройте веб-представление только для чтения модели, включая образцовое содержимое и параметры блоков.
Моделируйте модель в акселераторе (значение по умолчанию), быстрый акселератор и режимы normal mode.
Сгенерируйте код для модели, которая включает защищенную модель.
Сгенерируйте HDL-код для модели, которая включает защищенную модель. Чтобы узнать о создании защищенных моделей с поддержкой генерации HDL-кода, смотрите, Создают Защищенные Модели, чтобы Скрыть Содержимое и Сгенерировать HDL-код (HDL Coder).
Сгенерируйте код для защищенной модели через автономный интерфейс, если вы имеете Embedded Coder® и задаете основанный на ERT системный конечный файл для модели.
Вы можете опционально, пароль - защищает каждую опцию. Если вы выбирать-защита-паролем для одной из этих опций, программное обеспечение защищает вспомогательные файлы при помощи шифрования AES-256.
Когда вы создаете защищенную модель:
По умолчанию Simulink® создает и хранит защищенную версию модели в текущей рабочей папке. Защищенная модель имеет то же имя как исходная модель с расширением .slxp
.
Исходный образцовый файл, с расширением .slx
, не изменяется. Если вы защищаете модель через блок Model, тот блок Model не изменяется.
Защищенный образцовый файл состоит из самой модели и вспомогательных файлов, в зависимости от опций, которые вы выбираете, когда вы создаете защищенную модель.
Создайте защищенную модель при помощи одной из этих опций:
Контекстное меню блока Model.
Функция Simulink.ModelReference.protect
.
Редактор Simulink панель меню. Чтобы создать защищенную модель из текущей модели, выберите File> Export Model To> Protected Model.
Если ваша защищенная модель требует, чтобы вспомогательные файлы, такие как определения базового рабочего пространства или словарь данных, включали эти файлы с моделью, когда вы совместно используете его. Для получения дополнительной информации смотрите Пакет и Долю Защищенные Модели.
Этот пример показывает, как создать защищенную модель для просмотра только для чтения, симуляции или генерации кода при помощи контекстного меню блока Model.
Сконфигурируйте блоки Model в родительской модели, чтобы обратиться к исходной модели, на которую ссылаются. Этот шаг препятствует тому, чтобы блоки Model стали защищенными ссылками, когда вы создаете защищенную модель.
Откройте родительскую модель, которая ссылается на модель, которую вы хотите защитить. В данном примере откройте модель sldemo_mdlref_basic
.
Чтобы запустить рабочий процесс, создайте локальную копию модели sldemo_mdlref_counter
, которую вы хотите защитить. Можно затем создать локальную копию родительской модели sldemo_mdlref_basic
. Необходимо сохранить родительскую модель в той же папке как модель, на которую ссылаются.
Откройте модель sldemo_mdlref_basic
что вы сохраненный локально. Убедитесь, что блоки Model CounterA
, CounterB
и CounterC
ссылаются на модель sldemo_mdlref_counter
что вы сохраненный локально.
Для каждого блока Model откройте диалоговое окно Block Parameters и задайте дополнительный .slx
в поле Model name. Когда и модель и защищенная модель существуют в той же папке, .slxp
более приоритетен по сравнению с .slx
. Если вы не задаете расширение, то исходный блок Model в модели обращается к защищенной модели вместо исходной модели. Нажмите OK.
Щелкните правой кнопкой по любому из этих трех блоков Model. Из контекстного меню выберите Subsystem & Model Reference> Create Protected Model for Selected Model Block.
В диалоговом окне Create Protected Model установите флажки Simulate и Use generated code. Эти опции позволяют защищенному образцовому пользователю моделировать и генерировать код для модели, которая ссылается на защищенную модель. Если вы хотите к паролю - защищают функциональность защищенной модели, вводят пароль с минимумом четырех символов. Каждая опция может иметь уникальный пароль.
Если вы имеете 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 с защищенной моделью.
Из списка Content type выберите Obfuscated source code
, чтобы скрыть цель исходного кода и логику защищенной модели. Для получения дополнительной информации об опциях защиты модели смотрите Тип контента (Simulink Coder).
Если у вас есть 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).
В поле Create protected model in задайте путь к папке для защищенной модели. Значение по умолчанию является текущей рабочей папкой.
Чтобы создать модель тестовой обвязки для защищенной модели, установите флажок Create harness model for protected model. Когда вы создаете защищенную модель, модель тестовой обвязки открывается как новая, неназванная модель, которая содержит только блок Model, который ссылается на защищенную модель. Чтобы использовать защищенную модель, сошлитесь на него через блок Model, такой как тот, включенный в модель тестовой обвязки. Для получения дополнительной информации см. Ссылочные Защищенные Модели от Третьих лиц (Simulink).
Чтобы далее настроить вашу защищенную модель, вы можете:
Задайте пользовательский obfuscator для запутанности кода. Смотрите Задают Пользовательский Obfuscators для Защищенных Моделей.
Задайте несколько целей генерации кода. Смотрите Создают Защищенные Модели с Несколькими Целями.
Задайте коллбэки для защищенной модели. Смотрите Задают Коллбэки для Защищенных Моделей.
Нажмите Create. Неназванная модель тестовой обвязки открывается. Можно группировать модель тестовой обвязки с защищенной моделью, чтобы совместно использовать с третьим лицом. Они могут скопировать блок Model от модели тестовой обвязки до другой модели, где это - интерфейс к защищенной модели. Simulation mode для блока Model установлен в Accelerator
. Вы не можете изменить режим.
Когда вы создаете защищенную модель из Редактора Simulink, защищенный образцовый отчет сгенерирован и включен как часть защищенной модели. В данном примере, чтобы просмотреть защищенный образцовый отчет, дважды кликните защищенную модель или щелкните правой кнопкой по значку значка защищенной модели по блоку в модели тестовой обвязки и выберите Display Report.
Отчет содержит:
Summary, включая следующие таблицы:
Environment, обеспечивая версию Simulink и другие версии продукта и платформу раньше создавал защищенную модель.
Supported functionality, сообщая о On
, Off
или On with password protection
для каждой возможной функциональности, которую поддерживает защищенная модель. Если вы конфигурируете свою защищенную модель для нескольких целей, эта таблица включает список поддерживаемых целей.
Licenses, перечисляя лицензии, требуемые запускать защищенную модель.
Interface Report, включая информацию об интерфейсе модели, такую как спецификации ввода и вывода, экспортировал функциональную информацию, интерфейсные параметры и хранилища данных.
Чтобы сгенерировать отчет при использовании функции Simulink.ModelReference.protect
, установите опцию 'Report
' на true
.
Можно протестировать защищенную модель, чтобы сравнить его с исходной моделью. Для получения дополнительной информации смотрите Тест Защищенные Модели.
Когда вы создаете защищенную модель, рассматриваете эти после требований:
У вас должен быть Simulink Coder™, чтобы создать защищенную модель. Можно также создать защищенную модель, если у вас есть лицензия HDL Coder.
Модель должна быть доступной на пути MATLAB®.
Модель не может иметь несохраненных изменений.
Модель не может использовать невстроенную S-функцию прямо или косвенно.
Модель использует настройку, которая активна во время защиты. Вы не можете изменить настройку защищенной модели.
Если модель содержит варианты, защищенная модель включает только вариант, который активен во время защиты.
Процесс защиты модели не сохраняет коллбэки. Для получения дополнительной информации о создании коллбэков для использования с защищенной моделью смотрите, Задают Коллбэки для Защищенных Моделей
Не переименовывайте защищенную модель или изменяйте ее суффикс. Если вы делаете так, модель неприменима, пока вы не восстанавливаете ее настоящее имя и суффикс.
Используйте уникальное имя для модели и для моделей, на которые она ссылается. Если защищенные модели - ссылки модель, которая совместно использует имя или с различной защищенной моделью или с различной моделью в иерархии другой защищенной модели, существует ограничения для использования защищенных моделей. Если топ-модель ссылается на две защищенных модели, которые имеют такой конфликт по совпадению имен, вы не можете защитить топ-модель, сгенерировать код для топ-модели или моделировать топ-модель в программном обеспечении в цикле (SIL), процессоре в цикле (PIL) или быстрых режимах Accelerator.
Модель должна также удовлетворить требования, перечисленные в Требованиях Модели - ссылки и Ограничениях (Simulink).
Чтобы создать защищенную модель, которая поддерживает генерацию кода, ваша модель должна удовлетворить эти требования:
Защищенная модель должна использовать нормальный, акселератор, программное обеспечение в цикле (SIL) или процессор в режимах (PIL) цикла и единой цели.
Не устанавливайте флажок Code Generation > Verification > Measure function execution time. Если вам выбрали эту опцию, когда вы защищаете свою модель, программное обеспечение выключает параметр и выводит предупреждение.
Защищенные модели, на которые ссылаются, должны поддержать генерацию кода без защиты паролем.
Защищенная модель должна быть совместима с Content type каждой защищенной модели, на которую ссылаются. Эта таблица предоставляет информацию о совместимости.
Совместимость типа контента генерации кода
Защищенный тип контента родительской модели | Совместимые защищенные образцовые типы контента, на которые ссылаются, |
---|---|
Binaries |
|
Binaries с набором 'ObfuscateCode' к 'false' |
|
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).