Импорт кода Verilog и создание модели Simulink
importhdl импортирует и анализирует указанные файлы Verilog ® для создания соответствующей модели Simulink ®.
importhdl( импортирует указанные файлы Verilog и создает соответствующую модель Simulink, удаляя при этом неподключенные компоненты, которые не вносят непосредственного вклада в вывод.FileNames)
importhdl( импортирует указанные файлы Verilog и создает соответствующую модель Simulink при удалении несвязанных компонентов, которые не вносят непосредственного вклада в вывод, с опциями, заданными одним или несколькими аргументами пары имя-значение.FileNames,Name,Value)
В этом примере показано, как можно импортировать файл, содержащий код Verilog, и создать соответствующую модель Simulink™.
Указать входной файл Verilog
Убедитесь, что входной файл HDL не содержит синтаксических ошибок, является синтезируемым и использует конструкции, поддерживаемые импортом HDL. В этом примере показан код Verilog компаратора.
edit('comparator.v')

Импорт файла Verilog
Чтобы импортировать файл HDL и создать модель Simulink™, передайте имя файла в виде символьного вектора в importhdl функция.
importhdl('comparator.v')
### Parsing <a href="matlab:edit('comparator.v')">comparator.v</a>.
### Top Module of the source: 'comparator'.
### Identified ClkName::clk.
### Identified RstName::rst.
### Hdl Import parsing done.
### Creating Target model comparator
### Generating Dot Layout...
### Start Layout...
### Working on hierarchy at ---> 'comparator'.
### Laying out components.
### Working on hierarchy at ---> 'comparator/comparator'.
### Laying out components.
### Applying Dot Layout...
### Drawing block edges...
### Applying Dot Layout...
### Drawing block edges...
### Setting the model parameters.
### Generated model as C:\Temp\examples\examples\hdlcoder-ex77699673\hdlimport\comparator\comparator.slx.
### HDL Import completed.
Импорт HDL анализирует входной файл и отображает сообщения процесса импорта в окне команд MATLAB™. Импорт обеспечивает связь с созданной моделью Simulink™. comparator.slx. Созданная модель использует то же имя, что и верхний модуль во входном файле Verilog.
Проверка созданной модели Simulink™
Чтобы открыть созданную модель Simulink™, выберите ссылку. Модель сохраняется в hdlimport/comparator путь относительно текущей папки. Можно моделировать модель и наблюдать за результатами моделирования.
addpath('hdlimport/comparator') open_system('comparator.slx') sim('comparator.slx')

В этом примере показано, как можно импортировать несколько файлов, содержащих код Verilog, и создать соответствующую модель Simulink™.
Укажите входной файл Verilog
Убедитесь, что входные файлы HDL не содержат синтаксических ошибок, являются синтезируемыми и используют конструкции, поддерживаемые при импорте HDL. Например, в этом коде показаны три файла Verilog, использующие экземпляр модуля для формирования иерархической структуры. Один модуль example1.v реализует простую последовательную схему на основе условия if-else. Другой модуль example2.v реализует простое комбинационное арифметическое выражение.
edit('example1.v') edit('example2.v')

Верхний модуль, содержащийся в файле example.v создает экземпляры двух модулей в example1.v и example2.v
edit('example.v')

Импорт файлов Verilog
Чтобы импортировать файл HDL и создать модель Simulink™, передайте имена файлов в виде массива ячеек векторов символов в importhdl функция. По умолчанию импорт HDL идентифицирует верхний модуль и пакет синхросигналов при анализе входного файла.
importhdl({'example.v','example1.v','example2.v'})
### Parsing <a href="matlab:edit('example.v')">example.v</a>.
### Parsing <a href="matlab:edit('example1.v')">example1.v</a>.
### Parsing <a href="matlab:edit('example2.v')">example2.v</a>.
### Top Module of the source: 'example'.
### Identified ClkName::clk.
### Hdl Import parsing done.
### Creating Target model example
### Generating Dot Layout...
### Start Layout...
### Working on hierarchy at ---> 'example'.
### Laying out components.
### Working on hierarchy at ---> 'example/example'.
### Laying out components.
### Working on hierarchy at ---> 'example/example/example1'.
### Laying out components.
### Applying Dot Layout...
### Drawing block edges...
### Working on hierarchy at ---> 'example/example/example2'.
### Laying out components.
### Applying Dot Layout...
### Drawing block edges...
### Applying Dot Layout...
### Drawing block edges...
### Applying Dot Layout...
### Drawing block edges...
### Setting the model parameters.
### Generated model as C:\Temp\examples\examples\hdlcoder-ex56732899\hdlimport\example\example.slx.
### HDL Import completed.
Импорт HDL анализирует входной файл и отображает сообщения процесса импорта в окне команд MATLAB™. Импорт обеспечивает связь с созданной моделью Simulink™. example.slx. Созданная модель использует то же имя, что и верхний модуль, который содержится во входном файле Verilog example1.v.
Проверка созданной модели Simulink™
Чтобы открыть созданную модель Simulink™, выберите ссылку. Модель сохраняется в hdlimport/example путь относительно текущей папки. Можно моделировать модель и наблюдать за результатами моделирования.
addpath('hdlimport/example') open_system('example.slx')

Чтобы избежать деления на ноль, можно подавить диагностику предупреждения перед моделированием.
Simulink.suppressDiagnostic({'example/example/example2/Div'}, ...
'SimulinkFixedPoint:util:fxpDivisionByZero')
sim('example')
Можно просмотреть иерархию подсистем, реализующих код Verilog, использующий экземпляр модуля.
open_system('example/example/example1')

open_system('example/example/example2')

В этом примере показано, как можно импортировать несколько файлов, содержащих код Verilog, и создать соответствующую модель Simulink™. При импорте нескольких файлов, если требуется запутать код HDL или если файлы содержат код HDL для IP-адресов конкретных поставщиков, можно импортировать код HDL как модуль BlackBox с помощью importhdl функция.
Укажите входные файлы Verilog
Убедитесь, что входные файлы HDL не содержат синтаксических ошибок, являются синтезируемыми и используют конструкции, поддерживаемые при импорте HDL. Например, в этом коде показаны три файла Verilog, использующие экземпляр модуля для формирования иерархической структуры. Один модуль sequentialexp.v реализует простую последовательную схему на основе условия if-else. Другой модуль comditionalcomb.v реализует простое комбинационное арифметическое выражение.
edit('conditionalcomb.v') edit('sequentialexp.v') edit('intelip.v')

Увидеть, что sequentialexp.v модуль создает экземпляр IP-адреса Intel ®, который реализует сумматор с плавающей запятой с одинарной точностью.

Верхний модуль top содержится в файле blackboxtop.v создает экземпляры двух модулей в conditionalcomb.v и sequentialexp.v
edit('blackboxtop.v')

Импорт файлов Verilog
Чтобы импортировать файл HDL и создать модель Simulink™, передайте имена файлов в виде массива ячеек векторов символов в importhdl функция. По умолчанию импорт HDL идентифицирует верхний модуль и пакет синхросигналов при анализе входного файла.
importhdl({'blackboxtop.v','conditionalcomb.v','sequentialexp.v','intelip.v'}, ...
'topModule','top','blackBoxModule','intelip')
### Parsing <a href="matlab:edit('blackboxtop.v')">blackboxtop.v</a>.
### Parsing <a href="matlab:edit('conditionalcomb.v')">conditionalcomb.v</a>.
### Parsing <a href="matlab:edit('sequentialexp.v')">sequentialexp.v</a>.
### Parsing <a href="matlab:edit('intelip.v')">intelip.v</a>.
### Top Module of the source: 'top'.
### Identified ClkName::clk.
### Hdl Import parsing done.
### Creating Target model top
### Generating Dot Layout...
### Start Layout...
### Working on hierarchy at ---> 'top'.
### Laying out components.
### Working on hierarchy at ---> 'top/top'.
### Laying out components.
### Working on hierarchy at ---> 'top/top/u_comb'.
### Laying out components.
### Applying Dot Layout...
### Drawing block edges...
### Working on hierarchy at ---> 'top/top/u_seq'.
### Laying out components.
### Working on hierarchy at ---> 'top/top/u_seq/u_intelip'.
### Laying out components.
### Applying Dot Layout...
### Drawing block edges...
### Applying Dot Layout...
### Drawing block edges...
### Applying Dot Layout...
### Drawing block edges...
### Applying Dot Layout...
### Drawing block edges...
### Setting the model parameters.
### Generated model as C:\Temp\examples\examples\hdlcoder-ex63017378\hdlimport\top\top.slx.
### HDL Import completed.
Импорт HDL анализирует входной файл и отображает сообщения процесса импорта в окне команд MATLAB™. Импорт обеспечивает связь с созданной моделью Simulink™. top.slx. Созданная модель использует то же имя, что и верхний модуль, который содержится во входном файле Verilog conditionalcomb.v.
Проверка созданной модели Simulink™
Чтобы открыть созданную модель Simulink™, выберите ссылку. Модель сохраняется в hdlimport/top путь относительно текущей папки. Можно моделировать модель и наблюдать за результатами моделирования.
addpath('hdlimport/top') open_system('top.slx') set_param('top','SimulationCommand','update')

Чтобы избежать деления на ноль, можно подавить диагностику предупреждения перед моделированием.
Simulink.suppressDiagnostic({'top/top/u_seq/Div'}, ...
'SimulinkFixedPoint:util:fxpDivisionByZero')
sim('top')
Можно просмотреть иерархию подсистем, реализующих код Verilog, использующий экземпляр модуля.
open_system('top/top/u_comb')

При открытии подсистемы, реализующей последовательный канал, можно открыть u_intelip Подсистема для просмотра реализации blackbox.
open_system('top/top/u_seq')

open_system('top/top/u_seq/u_intelip')

В этом примере показано, как можно импортировать код Verilog, содержащий следующие операторы, и создать соответствующую модель Simulink™:
Арифметика
Логичный
XOR
Bitwise
Условный
Относительный
Связь
Указать входной файл Verilog
Убедитесь, что входной файл HDL не содержит синтаксических ошибок, является синтезируемым и использует конструкции для различных операторов. Например, этот код Verilog показывает различные операторы.
edit('VerilogOperators.v')

Импорт файла Verilog
Чтобы импортировать файл HDL и создать модель Simulink™, передайте имя файла в виде символьного вектора в importhdl функция.
importhdl('VerilogOperators.v')
### Parsing <a href="matlab:edit('VerilogOperators.v')">VerilogOperators.v</a>.
### Top Module of the source: 'VerilogOperators'.
### Hdl Import parsing done.
### Creating Target model VerilogOperators
### Generating Dot Layout...
### Start Layout...
### Working on hierarchy at ---> 'VerilogOperators'.
### Laying out components.
### Working on hierarchy at ---> 'VerilogOperators/VerilogOperators'.
### Laying out components.
### Applying Dot Layout...
### Drawing block edges...
### Applying Dot Layout...
### Drawing block edges...
### Generated model as C:\Temp\examples\examples\hdlcoder-ex29847655\hdlimport\VerilogOperators\VerilogOperators.slx.
### HDL Import completed.
Импорт HDL анализирует входной файл и отображает сообщения процесса импорта в окне команд MATLAB™. Импорт обеспечивает связь с созданной моделью Simulink™. VerilogOperators.slx. Созданная модель использует то же имя, что и верхний модуль во входном файле Verilog.
Проверка созданной модели Simulink™
Чтобы открыть созданную модель Simulink™, выберите ссылку. Модель сохраняется в hdlimport/VerilogOperators путь относительно текущей папки. Можно моделировать модель и наблюдать за результатами моделирования.
addpath('hdlimport/VerilogOperators') open_system('VerilogOperators.slx') sim('VerilogOperators.slx')

В этом примере показано, как можно импортировать несколько файлов, содержащих код Verilog, которые выполняют неявные преобразования типов данных и создают соответствующую модель Simulink™. Импорт HDL может выполнять неявное преобразование типа данных, например, в арифметических операциях, преобразовании типа данных, выборе битов и конкатенации битов.
Укажите входной файл Verilog
Убедитесь, что входные файлы HDL не содержат синтаксических ошибок, являются синтезируемыми и используют конструкции, поддерживаемые при импорте HDL. Например, в этом коде показаны три файла Verilog, использующие экземпляр модуля для формирования иерархической структуры. Модули NG1_implicit.v и round_const.v выполнить неявное преобразование типа данных.
edit('NG1_implicit.v') edit('round_constant.v')

Верхний модуль, содержащийся в файле example.v создает экземпляры двух модулей в NG1_implicit.v и round_constant.v.
edit('implicit_top.v')

Импорт файлов Verilog
Чтобы импортировать файл HDL и создать модель Simulink™, передайте имена файлов в виде массива ячеек векторов символов в importhdl функция. По умолчанию импорт HDL определяет верхний модуль при анализе входного файла.
importhdl({'implicit_top.v','NG1_implicit.v','round_constant.v'})
### Parsing <a href="matlab:edit('implicit_top.v')">implicit_top.v</a>.
### Parsing <a href="matlab:edit('NG1_implicit.v')">NG1_implicit.v</a>.
### Parsing <a href="matlab:edit('round_constant.v')">round_constant.v</a>.
### Top Module name: 'top'.
Warning: Unused input port 'i' in 'rconst' module.
### Hdl Import parsing done.
### Creating Target model top
### Generating Dot Layout...
### Start Layout...
### Working on hierarchy at ---> 'top'.
### Laying out components.
### Working on hierarchy at ---> 'top/top'.
### Laying out components.
### Working on hierarchy at ---> 'top/top/NG1'.
### Laying out components.
Configurable Subsystem block 'simulink/Ports & Subsystems/Configurable Subsystem' must be converted to a Variant Subsystem block. Variant subsystems offers enhanced capabilities while maintaining equivalant functionality. Support of Configurable Subsystem will be removed in a future release.
### Applying Dot Layout...
### Drawing block edges...
### Working on hierarchy at ---> 'top/top/rconst'.
### Laying out components.
### Applying Dot Layout...
### Drawing block edges...
### Applying Dot Layout...
### Drawing block edges...
### Applying Dot Layout...
### Drawing block edges...
### Generated model file C:\TEMP\Examples\hdlcoder-ex12503110\hdlimport\top\top.slx.
### Importhdl completed.
Импорт HDL анализирует входной файл и отображает сообщения процесса импорта в окне команд MATLAB™. Импорт обеспечивает связь с созданной моделью Simulink™. implicit_top.slx. Созданная модель использует то же имя, что и верхний модуль, который содержится во входном файле Verilog implicit_top.v.
Проверка созданной модели Simulink™
Чтобы открыть созданную модель Simulink™, выберите ссылку. Модель сохраняется в hdlimport/example путь относительно текущей папки. Можно моделировать модель и наблюдать за результатами моделирования.
addpath('hdlimport/top'); open_system('top.slx')

В rconst Подсистема, один из входных портов не подключен. Рекомендуется избегать непроверенных выходов путем добавления блока терминатора.
addterms('top'); sim('top');
Можно просмотреть иерархию подсистем, реализующих код Verilog, использующий экземпляр модуля.
open_system('top/top/NG1')

open_system('top/top/rconst')

В этом примере показано, как можно импортировать файл, содержащий код Verilog, и определить блоки ОЗУ в создаваемой модели Simulink™. Можно импортировать код Verilog, который выводит любой из различных RAM в библиотеке RAM HDL, включая HDL. Блоки на основе системных объектов RAM и блоки RAM.
Указать входной файл Verilog
Убедитесь, что входной файл HDL не содержит синтаксических ошибок, является синтезируемым и использует конструкции, поддерживаемые импортом HDL. В этом примере показан код Verilog.
edit('simple_dual_port_ram.v')

Импорт файла Verilog
Чтобы импортировать файл HDL и создать модель Simulink™, передайте имя файла в виде символьного вектора в importhdl функция.
importhdl('simple_dual_port_ram.v')
### Parsing <a href="matlab:edit('simple_dual_port_ram.v')">simple_dual_port_ram.v</a>.
### Top Module name: 'SimpleDualPortRAM'.
### Identified ClkName::clk.
### Hdl Import parsing done.
### Creating Target model SimpleDualPortRAM
### Generating Dot Layout...
### Start Layout...
### Working on hierarchy at ---> 'SimpleDualPortRAM'.
### Laying out components.
### Working on hierarchy at ---> 'SimpleDualPortRAM/SimpleDualPortRAM'.
### Laying out components.
Configurable Subsystem block 'simulink/Ports & Subsystems/Configurable Subsystem' must be converted to a Variant Subsystem block. Variant subsystems offers enhanced capabilities while maintaining equivalant functionality. Support of Configurable Subsystem will be removed in a future release.
### Applying Dot Layout...
### Drawing block edges...
### Applying Dot Layout...
### Drawing block edges...
### Setting model parameters.
### Generated model file C:\TEMP\Examples\hdlcoder-ex67646187\hdlimport\SimpleDualPortRAM\SimpleDualPortRAM.slx.
### Importhdl completed.
Импорт HDL анализирует входной файл и отображает сообщения процесса импорта в окне команд MATLAB™. Импорт обеспечивает связь с созданной моделью Simulink™. SimpleDualPortRAM.slx. Созданная модель использует то же имя, что и верхний модуль во входном файле Verilog.
Проверка созданной модели Simulink™
Чтобы открыть созданную модель Simulink™, выберите ссылку. Модель сохраняется в hdlimport/SimpleDualPortRAM путь относительно текущей папки. Можно моделировать модель и наблюдать за результатами моделирования.
addpath('hdlimport/SimpleDualPortRAM'); open_system('SimpleDualPortRAM.slx'); sim('SimpleDualPortRAM.slx');

При навигации по модели отображается блок простого двухпортового ОЗУ.
open_system('SimpleDualPortRAM/SimpleDualPortRAM')

FileNames - имена импортируемых файлов HDL;Имена файлов HDL, импортируемых для создания модели Simulink. По умолчанию importhdl импортирует файлы Verilog. Для импорта:
Один HDL-файл, укажите имя файла как символьный вектор.
Несколько HDL-файлов, укажите имена файлов как массив ячеек символьных векторов.
Для всех HDL-файлов в папке укажите имя папки в виде символьного вектора.
Несколько папок и комбинаций файлов и папок, указанных как массив ячеек векторов символов. Можно также использовать подпапки, содержащие рекурсивные папки.
Пример: importhdl('example') импортирует указанный файл Verilog. Если example является подпапкой в текущей рабочей папке, импорт HDL анализирует экземпляры файлов и модулей в подпапках, а затем создает модель Simulink для всех .v файлы. Если importhdl не удается найти подпапку с именем example, поиск по пути MATLAB ® файлов HDL с именемexample.
Пример: importhdl({'top.v','subsystem1.v','subsystem2.v'}) импортирует указанные файлы Verilog и создает соответствующую модель Simulink.
Пример: importhdl(pwd) импортирует все файлы Verilog в текущей папке и создает соответствующую модель Simulink.
Пример: importhdl('root/example/hdlsrc') импортирует все файлы Verilog по указанному пути и создает соответствующую модель Simulink. Можно указать относительный или абсолютный путь.
Пример: importhdl('subfolder') импортирует все файлы Verilog в указанной подпапке и создает соответствующую модель Simulink. По умолчанию importhdl выполняет разбор вложенных папок, содержащих рекурсивные папки.
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
importhdl('root/example/hdlsrc') импортирует все файлы Verilog по указанному пути и создает соответствующую модель Simulink. Можно указать относительный или абсолютный путь.'Language' - Язык входного файла HDL'Verilog' (по умолчанию)Язык входного исходного файла, содержащего код HDL, указанный как символьный вектор. Если указан файл VHDL ®, при импорте HDL возникает ошибка.
Пример: importhdl('fifo.v','Language','Verilog') импортирует файл Verilog fifo.v и генерирует соответствующую модель Simulink fifo.slx.
'topModule' - Название верхнего модуля или объектаIdentified by parsing input file (по умолчанию) | символьный вектор | строковый скалярИмя модуля верхнего уровня в коде HDL, указанное как символьный вектор. Это имя становится именем подсистемы верхнего уровня, из которой импорт HDL создает иерархию подсистем в созданной модели Simulink. Если входные файлы HDL содержат более одного верхнего модуля, укажите модуль верхнего уровня, который будет использоваться для создания модели Simulink с помощью TopModule собственность.
Пример: importhdl('full_adder.v','TopModule','two_half_adders') импортирует файл Verilog full_adder.v и генерирует соответствующую модель Simulink full_adder.slx с two_half_adders в качестве подсистемы верхнего уровня.
'clockBundle' - Имена пакетов синхросигналов{'clock', 'reset', 'enable'} (по умолчанию) | массив ячеек символьных векторовИмена тактовых, сбросных и разрешающих тактовых сигналов для последовательных каналов, заданных как массив ячеек символьного вектора. Имена по умолчанию для сигналов синхросигналов:
Тактовый сигнал - clk, clock
Сигнал сброса - rst, reset
Сигнал включения синхросигнала - clk_enb, clk_en, clk_enable, enb, enable
Если информация о пакете часов не указана, при импорте HDL используются значения по умолчанию. При анализе входного файла, если импорт HDL идентифицирует имя тактового генератора, отличное от имени тактового генератора, указанного в ClockBundle, при импорте возникает ошибка.
Пример: importhdl('example.v','clockBundle',{'clk','rst','clk_enb'}) импортирует файл Verilog example.v с указанной информацией о пачке синхросигналов.
'blackBoxModule' - Имена модулей BlackBox'' (по умолчанию) | символьный вектор | массив ячеек символьных векторовИмя или имена модулей во входных файлах Verilog, которые будут импортированы как подсистемы BlackBox в созданной модели Simulink. Блок «Подсистема», импортированный как BlackBox, использует входные и выходные порты, предоставляемые определению модуля. Внутри подсистемы входные порты подключаются к блокам терминатора, блоки констант со значением zero подключаются к портам вывода. Используйте эту возможность для импорта определенных поставщиком IP-адресов в качестве подсистем BlackBox в модели.
Пример: importhdl({'example.v,'example1.v','example2.v','xilinxIP.v},'topModule','top','blackBoxModule','xilinxIP') импортирует указанные файлы Verilog с помощью xilinxIP в качестве модуля BlackBox. Соответствующая подсистема в модели Simulink имеет входные порты, соединенные с блоками терминатора, и блоки константы с постоянным нулевым значением, соединенные с выходными портами.
'autoPlace' - Расположение блоков для улучшенной компоновки'on' (по умолчанию) | 'off'Автоматическое упорядочение блоков в модели Simulink, созданных при выполнении importhdl. По умолчанию autoPlace является on. importhdl затем использует Simulink.BlockDiagram.arrangeSystem для улучшения компоновки модели путем перегруппировки, изменения размеров и перемещения блоков, а также выпрямления сигнальных линий.
Пример: importhdl('example.v','autoPlace','on') импортирует файл Verilog example.v и создает модель Simulink с улучшенной компоновкой модели.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.