Импортируйте код Verilog и сгенерируйте модель Simulink
importhdl
импортирует и анализирует заданные файлы Verilog®, чтобы сгенерировать соответствующую модель Simulink®.
importhdl(FileNames)
importhdl(FileNames,Name,Value)
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 File
Убедитесь, что файлы входа HDL не содержат синтаксических ошибок, являются синтезируемыми, и используют построения, которые поддерживаются импортом HDL. Например, этот код показывает три файла Verilog что инстанцирование модуля использования, чтобы сформировать иерархический проект. Один модуль example1.v
реализует простую последовательную схему на основе если еще условие. Другой модуль 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-код для специфичного для поставщика дюйм/с, можно импортировать HDL-код как модуль BlackBox с помощью функции importhdl
.
Задайте вход Verilog Files
Убедитесь, что файлы входа HDL не содержат синтаксических ошибок, являются синтезируемыми, и используют построения, которые поддерживаются импортом HDL. Например, этот код показывает три файла Verilog что инстанцирование модуля использования, чтобы сформировать иерархический проект. Один модуль sequentialexp.v
реализует простую последовательную схему на основе если еще условие. Другой модуль comditionalcomb.v
реализует простое комбинационное арифметическое выражение.
edit('conditionalcomb.v') edit('sequentialexp.v') edit('intelip.v')
Смотрите, что модуль sequentialexp.v
инстанцирует Intel® IP, который реализует сумматор с плавающей точкой с одинарной точностью.
Главный модуль 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
, чтобы видеть реализацию черного ящика.
open_system('top/top/u_seq')
open_system('top/top/u_seq/u_intelip')
Этот пример показывает, как можно импортировать код Verilog, который содержит эти операторы, и сгенерируйте соответствующую модель Simulink™:
Арифметика
Логический
Xor
Поразрядно
Условное выражение
Реляционный
Конкатенация
Задайте вход файл 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 File
Убедитесь, что файлы входа 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
один из входных портов не связан. Это - хорошая практика, чтобы избежать неотключенных выходных параметров путем добавления блока Terminator.
addterms('top'); sim('top');
Вы видите иерархию Подсистем, которые реализуют код Verilog, который использует инстанцирование модуля.
open_system('top/top/NG1')
open_system('top/top/rconst')
Этот пример показывает, как можно импортировать файл, содержащий код Verilog, и вывести блоки RAM в модели Simulink™, которая сгенерирована. Можно импортировать код Verilog, который выводит любую из различных RAM в библиотеке HDL RAMs включая 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');
Если вы перемещаетесь по модели, вы видите блок Simple Dual Port RAM.
open_system('SimpleDualPortRAM/SimpleDualPortRAM')
FileNames
— Имена файлов HDL, чтобы импортироватьИмена файлов HDL, чтобы импортировать для генерации модели Simulink. По умолчанию importhdl
импортирует файлы Verilog. Импортировать:
Один файл HDL, задайте имя файла как вектор символов.
Несколько файлов HDL, задайте имена файлов как массив ячеек из символьных векторов.
Все файлы HDL в папке, задайте имя папки как вектор символов.
Несколько папок и комбинаций файлов и папок, заданных как массив ячеек из символьных векторов.
Пример: importhdl('example')
импортирует заданный файл Verilog. Если example
является подпапкой в текущей рабочей папке, импорт HDL генерирует модель Simulink для всех файлов .vhd
в той папке.
Пример: importhdl({'top.v','subsystem1.v','subsystem2.v'})
импортирует заданные файлы Verilog и генерирует соответствующую модель Simulink.
Пример: importhdl(pwd)
импортирует все файлы Verilog в текущей папке и генерирует соответствующую модель Simulink.
Пример: importhdl('root/example/hdlsrc')
импортирует все файлы Verilog на заданном пути и генерирует соответствующую модель Simulink. Можно задать относительный или абсолютный путь.
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми.
Имя (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. Блок Subsystem, который импортируется как BlackBox, использует порты ввода и вывода, которые вы предоставляете определению модуля. В Подсистеме входные порты соединяются с блоками Терминатора, блоки Константа со значением zero
соединяются с выходными портами. Используйте эту возможность импортировать специфичного для поставщика дюйм/с как подсистемы BlackBox в вашей модели.
Пример: importhdl({'example.v,'example1.v','example2.v','xilinxIP.v},'topModule','top','blackBoxModule','xilinxIP')
импортирует заданные файлы Verilog witjh xilinxIP
как модуль BlackBox. Соответствующей Подсистеме в модели Simulink соединили входные порты с блоками Терминатора и блоками Константа с постоянным значением нуля, соединенного с выходными портами.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.