Импортируйте код 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
Подсистема, один из входа портов не соединен. Рекомендуется избегать неотключенных выходов путем добавления блока Terminator.
addterms('top'); sim('top');
Вы можете увидеть иерархию подсистем, которые реализуют код Verilog, который использует экземпляр модуля.
open_system('top/top/NG1')
open_system('top/top/rconst')
В этом примере показано, как можно импортировать файл, содержащий код Verilog, и вывести блоки оперативной памяти в Simulink™ модели, которая генерируется. Можно импортировать код Verilog, который выводит любую из различных ОЗУ в библиотеке HDL RAM, включая hdl. Блоки RAM System-Object и блоковые 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Имена файлов для импорта для генерации модели 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-коде, заданное как вектор символов. Это имя становится именем Subsystem верхнего уровня, из которого 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, использует входные и выходные порты, которые вы предоставляете определению модуля. Внутри Подсистемы входные порты соединяются с Terminator блоками, Constant блоки со значением zero
соединяются с портами выхода. Используйте эту возможность для импорта IP-адресов конкретного поставщика в качестве подсистем BlackBox в вашей модели.
Пример: importhdl({'example.v,'example1.v','example2.v','xilinxIP.v},'topModule','top','blackBoxModule','xilinxIP')
импортирует указанные файлы Verilog с xilinxIP
как модуль BlackBox. Соответствующая Подсистема в модели Simulink имеет входные порты, соединенные с блоками Terminator, и блоки Constant с постоянным значением нуля, соединенные с выходными портами.
'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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.