Когда это необходимо, чтобы совместно использовать модель с третьим лицом, не показывая интеллектуальную собственность, защитите модель. Когда вы создаете защищенную модель, вы скрываете детали реализации исходной модели путем компиляции ее в модель, на которую ссылаются. Защищенная модель включает производные файлы, чтобы поддержать дополнительные функциональности, которые вы задаете, такие как поддержка генерации кода C или генерации HDL-кода.
Если у вас есть лицензия HDL Coder™, можно создать защищенную модель с поддержкой генерации HDL-кода и симуляцией. Защищенный пользователь модели может затем сгенерировать HDL-код для моделей, которые ссылаются на защищенную модель, которую вы создали. Чтобы включить поддержку генерации кода C или задать дополнительные опции, такие как интерфейс кода, у вас должны быть лицензия Embedded Coder® или Simulink® Coder™. Чтобы узнать больше о том рабочем процессе, смотрите, Защищают Модели, чтобы Скрыть Содержимое.
Когда вы защищаете модель, можно позволить пользователю защищенной модели к:
Откройте веб-представление только для чтения модели, включая содержимое модели и параметры блоков.
Симулируйте модель в акселераторе (значение по умолчанию), быстрый акселератор и режимы normal mode.
Сгенерируйте HDL-код для модели, которая включает защищенную модель.
Сгенерируйте код С для модели, которая включает защищенную модель, если у вас есть Simulink Coder.
Сгенерируйте код для защищенной модели через автономный интерфейс, если вы имеете Embedded Coder и задаете основанный на ERT системный конечный файл для модели.
Вы можете опционально, пароль - защищает каждую опцию. Если вы выбираете защиту паролем для одной из этих опций, программное обеспечение защищает вспомогательные файлы при помощи шифрования AES-256.
Создайте защищенную модель при помощи одной из этих опций:
Чтобы создать защищенную модель из модели, на которую ссылаются, выберите блок Model и на вкладке Simulink Toolstrip Model Block, нажмите кнопку Protect.
Создать защищенную модель из текущей модели:
На вкладке Simulink Toolstrip Apps выберите 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®.
Модель не может иметь несохраненных изменений.
Модель использует настройку, которая активна во время защиты. Вы не можете изменить настройку защищенной модели.
Если модель содержит варианты, защищенная модель включает только вариант, который активен во время защиты.
Защищенное имя модели не должно быть изменено. Переименование модели или изменение суффикса делают модель неприменимой, пока вы не восстанавливаете ее настоящее имя и суффикс.
Модель должна также удовлетворить все требования, перечисленные в Требованиях Модели - ссылки и Ограничениях.
Эти настройки не поддерживаются, когда вы создаете защищенную модель, которая имеет поддержку генерации 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, смотрите Требования Генерации кода и Ограничения.
В этом примере показано, как можно защитить модель, на которую ссылается блок 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
задан в поле Имени модели. Когда и модель, на которую ссылаются, и защищенная модель существуют в той же папке, родительская модель ссылается на защищенную модель, если расширение не задано.
В этом случае блок 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.
На вкладке Simulink Toolstrip Model Block нажмите Protect.
В диалоговом окне Create Protected Model выберите диалоговое окно Simulate. Эта опция позволяет защищенному пользователю модели симулировать модель, которая ссылается на защищенную модель.
Если у вас есть Simulink Coder или Embedded Coder, можно задать дополнительные настройки, такие как включение поддержки генерации кода с защитой паролем при помощи флажка Use generated code или определением Code interface. Чтобы узнать больше об этих опциях, смотрите, Защищают Модели, чтобы Скрыть Содержимое (Embedded Coder).
Установите флажок Use generated HDL code, чтобы сгенерировать HDL-код для модели, которая ссылается на защищенную модель. Если вы хотите к паролю - защищают эту функциональность защищенной модели, необходимо задать минимум восьми символов. Можно задать уникальный пароль для этой опции. Вы не можете запутать исходный код HDL для защищенной модели.
В поле Destination folder задайте путь к папке для защищенной модели. Значением по умолчанию является текущая рабочая папка.
Чтобы автоматически собраться, создайте, и вспомогательные файлы пакета с защищенной моделью, установите Contents на Protected Model (.slxp) and dependencies in a project
. В этом примере, набор Contents к Protected Model (.slxp) only
.
Чтобы создать модель тестовой обвязки для защищенной модели, установите флажок Create harness model for protected model. Модель тестовой обвязки обеспечивает изолированную среду для блока Model, который ссылается на защищенную модель. В этом примере оставьте флажок очищенным.
Нажмите Create.
HDL Coder проверяет, что совместимость модели для генерации HDL-кода затем генерирует код для модели. Содержимое файла сгенерированного кода находится в hdlsrc
папка. Чтобы узнать о файлах, которые сгенерированы, смотрите Пакет и Долю Защищенные Модели.
Чтобы использовать защищенную модель в иерархии модели, сошлитесь на него через блок Model. Simulation mode для блоков Model, которые ссылаются на защищенную модель, установлен в Accelerator
. Вы не можете изменить режим. Для получения дополнительной информации см. Ссылочные Защищенные Модели от Третьих лиц.
Чтобы узнать больше об опциях, смотрите, Создают Защищенную Модель.
Создать защищенную модель при использовании 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')