Когда это необходимо, чтобы совместно использовать модель с третьим лицом, не показывая интеллектуальную собственность, защитите модель. Когда вы создаете защищенную модель, вы скрываете детали реализации исходной модели путем компиляции ее в модель - ссылку. Защищенная модель включает производные файлы, чтобы поддержать дополнительные функциональности, которые вы задаете.
Этот рабочий процесс иллюстрирует, как можно создать защищенную модель с симуляцией и поддержкой генерации HDL-кода, если у вас есть лицензия HDL Coder™. Защищенный образцовый пользователь может затем сгенерировать HDL-код для моделей, которые ссылаются на защищенную модель, которую вы создали. Чтобы включить поддержку генерации кода C или задать дополнительные опции, такие как интерфейс кода, у вас должны быть лицензия Embedded Coder® или Simulink® Coder™. Чтобы узнать больше о том рабочем процессе, смотрите, Защищают Модели, чтобы Скрыть Содержимое (Simulink Coder).
Когда вы защищаете модель, можно позволить пользователю защищенной модели к:
Откройте веб-представление только для чтения модели, включая образцовое содержимое и параметры блоков.
Моделируйте модель в акселераторе (значение по умолчанию), быстрый акселератор и режимы normal mode.
Сгенерируйте HDL-код для модели, которая включает защищенную модель.
Сгенерируйте код С для модели, которая включает защищенную модель, если у вас есть Simulink Coder.
Сгенерируйте код для защищенной модели через автономный интерфейс, если вы имеете Embedded Coder и задаете основанный на ERT системный конечный файл для модели.
Вы можете опционально, пароль - защищает каждую опцию. Если вы выбирать-защита-паролем для одной из этих опций, программное обеспечение защищает вспомогательные файлы при помощи шифрования AES-256.
Создайте защищенную модель при помощи одной из этих опций:
Контекстное меню блока Model.
Функция Simulink.ModelReference.protect
.
Редактор Simulink панель меню. Чтобы создать защищенную модель из текущей модели, выберите File> Export Model To> Protected Model.
Когда вы создаете защищенную модель:
По умолчанию Simulink создает и хранит защищенную версию модели в текущей рабочей папке. Защищенная модель имеет то же имя как исходная модель с расширением .slxp
.
Исходный образцовый файл, с расширением .slx
, не изменяется. Если вы защищаете модель через блок Model, тот блок Model не изменяется.
Защищенный образцовый файл состоит из самой модели и вспомогательных файлов, в зависимости от опций, которые вы выбираете, когда вы создаете защищенную модель.
Если ваша защищенная модель требует, чтобы вспомогательные файлы, такие как определения базового рабочего пространства или словарь данных, включали эти файлы с моделью, когда вы совместно используете защищенную модель.
Когда вы создаете защищенную модель, рассматриваете эти требования:
У вас должна быть лицензия HDL Coder, чтобы создать защищенную модель.
Модель должна быть доступной на пути MATLAB®.
Модель не может иметь несохраненных изменений.
Модель использует настройку, которая активна во время защиты. Вы не можете изменить настройку защищенной модели.
Если модель содержит варианты, защищенная модель включает только вариант, который активен во время защиты.
Защищенное имя модели не должно быть изменено. Переименование модели или изменение суффикса делают модель неприменимой, пока вы не восстанавливаете ее настоящее имя и суффикс.
Модель должна также удовлетворить все требования, перечисленные в Требованиях Модели - ссылки и Ограничениях (Simulink).
Эти настройки не поддержаны, когда вы создаете защищенную модель, которая имеет поддержку генерации HDL-кода.
Защищенная модель должна использовать те же параметры конфигурации в качестве верхнего уровня, от которого на нее ссылаются.
Настройками решателя, которые вы задаете в панели Solver диалогового окна Configuration Parameters, должен быть Fixed-step
и auto
.
Вы не должны включать эти настройки в диалоговом окне Configuration Parameters:
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
в диалоговом окне Configuration Parameters не поддержаны.
Модели, которые содержат образцовые аргументы, не поддержаны.
Исходный код HDL защищенной модели не может быть запутан.
Вложенные защищенные модели не поддержаны.
Защищенная модель не может иметь коллбэков.
Чтобы узнать больше об ограничениях для генерации кода C, смотрите Требования Генерации кода и Ограничения (Simulink Coder).
Этот пример иллюстрирует, как можно защитить модель, на которую ссылается блок 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 и убедитесь, что modelname с дополнительным .slx
задан в поле Имени модели. Когда и модель, на которую ссылаются, и защищенная модель существуют в той же папке, защищенная модель берет настройку. Этот приоритет делает ссылку родительской модели защищенная модель, если расширение не является specifed.
В этом случае блок 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')
В этом примере вы используете контекстное меню, чтобы преобразовать блок Model в защищенную модель.
Щелкните правой кнопкой по блоку Model и выберите Subsystem & Model Reference> Create Protected Model for Selected Model Block.
В диалоговом окне Create Protected Model выберите диалоговое окно Simulate. Эта опция позволяет защищенному образцовому пользователю моделировать модель, которая ссылается на защищенную модель.
Если у вас есть Simulink Coder или Embedded Coder, можно задать дополнительные настройки те, которые включают поддержку генерации кода с защитой паролем при помощи флажка Use generated code или задают Code interface. Чтобы узнать больше об этих опциях, смотрите, Защищают Модели, чтобы Скрыть Содержимое (Embedded Coder).
Установите флажок Use generated HDL code, чтобы сгенерировать HDL-код для модели, которая ссылается на защищенную модель. Если вы хотите к паролю - защищают эту функциональность защищенной модели, необходимо задать минимум восьми символов. Можно задать уникальный пароль для этой опции. Вы не можете запутать исходный код HDL для защищенной модели.
В поле Create protected model in задайте путь к папке для защищенной модели. Значение по умолчанию является текущей рабочей папкой.
Чтобы создать модель тестовой обвязки для защищенной модели, установите флажок Create harness model for protected model. В этом примере оставьте флажок очищенным. Нажмите Create.
HDL Coder затем проверяет совместимость модели для генерации HDL-кода и затем генерирует код для модели. Содержимое файла сгенерированного кода находится в папке hdlsrc
. Чтобы узнать о файлах, которые сгенерированы, смотрите
Если вы установили флажок, когда вы создали защищенную модель, модель тестовой обвязки открывается как новая, неназванная модель, которая содержит только блок Model, который ссылается на защищенную модель. Чтобы использовать защищенную модель, сошлитесь на него через блок Model, такой как тот, включенный в модель тестовой обвязки. Simulation mode для блока Model установлен в Accelerator
. Вы не можете изменить режим. Для получения дополнительной информации см. Ссылочные Защищенные Модели от Третьих лиц (Simulink).
Чтобы узнать больше об этих опциях пользовательского интерфейса, смотрите, Создают Защищенную Модель (Simulink Coder).
Чтобы создать защищенную модель при использовании функции Simulink.ModelReference.protect
, установите Mode
на HDLCodeGeneration
. Например, запустите эту команду, чтобы защитить модель hdlcoder_referenced_model_gain
, на которую ссылаются:
Simulink.ModelReference.protect('hdlcoder_referenced_model_gain', ... 'Mode','HDLCodeGeneration')
Когда вы создаете защищенную модель из Редактора Simulink, защищенный образцовый отчет сгенерирован и включен как часть защищенной модели. В данном примере, чтобы просмотреть защищенный образцовый отчет, дважды кликните защищенную модель или щелкните правой кнопкой по значку значка защищенной модели по блоку в модели тестовой обвязки и выберите Display Report.
Отчет содержит:
Summary, включая следующие таблицы:
Environment, обеспечивая версию Simulink, версию Simulink Coder, версию HDL Coder и платформу раньше создавал защищенную модель.
Supported functionality, сообщая о On
, Off
или On with password protection
для каждой возможной функциональности, которую поддерживает защищенная модель. Если вы конфигурируете свою защищенную модель для нескольких целей, эта таблица включает список поддерживаемых целей.
Licenses, перечисляя лицензии, требуемые запускать защищенную модель.
Interface Report, включая информацию об интерфейсе модели, такую как спецификации ввода и вывода, соединяет интерфейсом с параметрами и хранилищами данных.
Чтобы сгенерировать отчет при использовании функции Simulink.ModelReference.protect
, установите опцию 'Report
' на True
.
Если защищенная созданная модель имеет симуляцию и поддержку генерации HDL-кода, защищенный образцовый пользователь может моделировать и сгенерировать HDL-код из модели, которая ссылается на защищенную модель. Вы генерируете HDL-код для модели, которая ссылается на защищенную модель таким же образом как, как вы сгенерировали бы код для обычной модели.
Если защищенная модель защищена паролем, прежде чем вы сгенерируете код, щелкните правой кнопкой по защищенному образцовому значку значка и выберите Authorize. Необходимо затем ввести пароль для каждой опции. Если введенный пароль совпадает с паролем, который вы задали при создании защищенной модели, модель авторизовывается. Можно затем сгенерировать HDL-код для модели.
Например, чтобы сгенерировать HDL-код для защищенной модели hdlcoder_referenced_model_gain.slxp
, на которую ссылается модель hdlcoder_protected_model_parent_harness
:
Авторизуйте защищенную модель hdlcoder_referenced_model_gain.slxp
, если вы задали пароль при создании защищенной модели.
Сгенерируйте HDL-код для Подсистемы DUT из контекстного меню или при помощи функции makehdl
.
makehdl('hdlcoder_protected_model_parent_harness/DUT')