Кросс-сетевая косимуляция
Зачем выполнять кросс-сетевую косимуляцию?
Можно выполнить межсетевую косимуляцию, когда ваша настройка включает одну машину, работающую под MATLAB® и Simulink® программное обеспечение и другая машина под управлением симулятора HDL. Как правило, Windows®-platform машина запускает программное обеспечение MATLAB и Simulink, в то время как Linux® машина запускает симулятор HDL. Однако эти процедуры применяются к любой комбинации платформ, которые Verifier™ HDL и Симулятор HDL поддержки.
Подготовка к кросс-сетевой косимуляции
Прежде чем вы косимулируете между симулятором HDL и MATLAB или Simulink по сети, выполните следующие шаги:
Создайте файлы для проекта и проверки.
Пользователи ModelSim
Создайте и скомпилируйте HDL- проекта и создайте функцию MATLAB (для косимуляции MATLAB) или модель Simulink (для косимуляции Simulink).
Если вы собираетесь косимулировать с Simulink, используйте -voptargs=+acc
флаг при компиляции так, чтобы проект не был оптимизирован, и включать тот же флаг при выпуске vsim
Команда (см. «Выполнение косимуляции между сетями с использованием Simulink»). Использование этого флага сохраняет некоторые неиспользованные сигналы от проекта, которые требуются моделью Simulink для запуска и отображения результатов.
Резцовые пользователи
Создайте, скомпилируйте и доработайте свои HDL- проекта и создайте функцию MATLAB (для косимуляции MATLAB) или модель Simulink (для косимуляции Simulink).
Скопируйте библиотеки HDL-верификатора на компьютер с Симулятора HDL
Перейдите к системе, в которой вы установили MATLAB. Затем найдите папку в распределении MATLAB, в которой находятся библиотеки HDL Verifier.
Обычно библиотеки можно найти в установленной папке по умолчанию:
matlabroot/toolbox/edalink/extensions/adaptor/platform/productlibraryname_
compiler_tag.ext
где переменная, показанная в следующей таблице, имеет указанные значения.
Переменная | Значение |
---|
matlabroot | Место установки программного обеспечения MATLAB; значение по умолчанию является MATLAB/ version где version - установленный релиз (для примера, R2009a). |
adaptor | incisive или modelsim |
platform | Операционная система машины с Симулятором HDL, для примера linux32 . (Для получения дополнительной информации см. «Библиотеки косимуляции».) |
productlibraryname | Имя файлов библиотеки для MATLAB и для Simulink (для примера, liblfmhdlc , liblfmhdls для ModelSim® пользователей; liblfihdlc , liblfihdls для резца® пользователей). См. «Библиотеки косимуляции». |
compiler_tag | Компилятор, используемый для создания библиотеки (для примера, gcc32 или spro ). Для получения дополнительной информации см. раздел «Библиотеки косимуляции». |
ext | dll (библиотека динамических ссылок - только Windows) или so (расширение общей библиотеки) |
Список всех поставленных HDL-библиотек HDL Verifier HDL см. в разделе Библиотеки по умолчанию.
С машины MATLAB скопируйте библиотеки HDL Verifier, которые вы планируете использовать (которые вы определили на шаге 2), на машину, на которой вы установили Симулятор HDL. Обратите внимание на расположение, в которое вы скопировали библиотеки; эта информация понадобится вам при фактическом установлении соединения с Симулятором HDL. В целях этого примера пример кода ссылается на папку назначения следующим HDLSERVER_LIB_LOCATION
.
Если теперь необходимо выполнить косимуляцию с помощью MATLAB, см. «Выполнение кросс-сетевой косимуляции с использованием MATLAB». Если вы хотите косимулировать с Simulink, см. «Выполнение косимуляции между сетями с использованием Simulink».
Выполнение межсетевой косимуляции с использованием MATLAB
Чтобы выполнить сеанс косимуляции HDL-симулятора к MATLAB по сети, выполните следующие шаги:
Пользователи ModelSim
В MATLAB получите доступный разъем с помощью hdldaemon
:
Или присвойте один (который, как вы знаете, доступен):
На машине с Симулятора HDL запустите Симулятор HDL из интерпретатора с помощью следующей команды:
vsim -foreign "matlabclient /HDLSERVER_LIB_LOCATION/library_name;" design_name
где аргументы, показанные в следующей таблице, имеют указанные значения.
В симуляторе HDL запланировать испытательный стенд или компонент (matlabcp
или matlabtb
). Укажите номер порта сокета из шага 1 и имя хост-машины, где hdldaemon
выполняется.
Резцовые пользователи
В MATLAB получите доступный разъем с помощью hdldaemon
:
Или назначить один:
Создайте файл строения MATLAB (для загрузки функций, используемых в Симулятор HDL) со следующим содержимым:
//Command file for MATLAB HDL Verifier.
//Loading of foreign Library and HDL simulator functions.
-loadcfc /HDLSERVER_LIB_LOCATION/library_name:matlabclient
//TCL wrappers for MATLAB commands
-input @proc" "nomatlabtb" "{args}" "{call" "nomatlabtb" "\$args}
-input @proc" "matlabtb" "{args}" "{call" "matlabtb" "\$args}
-input @proc" "matlabcp" "{args}" "{call" "matlabcp" "\$args}
-input @proc" "matlabtbeval" "{args}" "{call" "matlabtbeval" "\$args}
Где library_name
- имя библиотеки, скопированной в разделе Подготовка к Cross-Network Cosimulation. Вы можете назвать этот файл строения как угодно.
На машине с Симулятора HDL запустите Симулятор HDL из интерпретатора с помощью следующей команды:
ncsim -gui -f matlab_config.file design_name
где аргументы, показанные в следующей таблице, имеют указанные значения.
Аргумент | Значение |
---|
matlab_config.file | Имя строения MATLAB (с шага 3) |
design_name | Проект VHDL или Verilog, который вы хотите загрузить |
В симуляторе HDL запланировать испытательный стенд или компонент (matlabcp
или matlabtb
). Укажите номер порта сокета из шага 1 и имя хоста, где hdldaemon
выполняется.
Выполнение кросс-сетевой косимуляции с использованием Simulink
Когда вы хотите выполнить сеанс косимуляции HDL-симулятора в Simulink по сети, выполните следующие шаги:
Пользователи ModelSim
Запустите Симулятор HDL из интерпретатора с помощью следующей команды:
vsim -foreign "simlinkserver /HDLSERVER_LIB_LOCATION/library_name;
-socket socket_num" -voptargs=+acc design_name
где аргументы, показанные в следующей таблице, имеют указанные значения.
Аргумент | Значение |
---|
library_name | Имя библиотеки, скопированной на машину с Симулятора HDL (в разделе Подготовка к Cross-Network Cosimulation). |
socket_num | Номер сокета, выбранный для этого подключения |
design_name | Проект VHDL или Verilog, который вы хотите загрузить |
На машине с MATLAB и Simulink запустите Simulink и откройте свою модель.
Дважды кликните блок HDL Cosimulation, чтобы открыть диалоговое окно Function Параметры Блоков.
Щелкните на вкладке Connections.
Очистить «Выполняется Симулятор HDL на этом компьютере». HDL Verifier меняет метод подключения на сокет.
В текстовом поле, помеченном Host name, введите имя хоста машины, на которой расположен симулятор HDL.
В текстовом поле, помеченном Port number or service, введите номер сокета с шага 1.
Щелкните OK, чтобы выйти из диалогового окна блока и сохранить изменения.
Резцовые пользователи
Запустите Симулятор HDL из интерпретатора с помощью следующей команды:
ncsim -gui -loadvpi "/HDLSERVER_LIB_LOCATION/library_name:simlinkserver"
+socket=socket_num design_name
где аргументы, показанные в следующей таблице, имеют указанные значения.
Аргумент | Значение |
---|
library_name | Имя библиотеки, скопированной на машину с Симулятора HDL (в разделе Подготовка к Cross-Network Cosimulation). |
socket_num | Номер сокета, выбранный для этого подключения |
design_name | Проект VHDL или Verilog, который вы хотите загрузить |
На машине с MATLAB и Simulink запустите Simulink и откройте свою модель.
Дважды кликните блок HDL Cosimulation, чтобы открыть диалоговое окно Function Параметры Блоков.
Щелкните на вкладке Connections.
Снимите флажок, помеченный The HDL simulator is running on this computer. HDL Verifier меняет метод подключения на сокет.
В Host name поле введите имя хоста машины, на которой расположен Симулятор HDL.
В Port number or service поле введите номер сокета с шага 1.
Щелкните OK, чтобы выйти из диалогового окна блока и сохранить изменения.
Затем запустите симуляцию, добавьте больше блоков или внесите другие желаемые изменения. Инструкции по использованию Simulink и Симулятора HDL для косимуляции см. в Simulink как Испытательный стенд или Component Simulation with Simulink.