exponenta event banner

Трассировка кода с помощью файла сопоставления

Примечание

В этом разделе генерируемые объекты VHDL ® или модули Verilog ® называются «объектами».

Файл сопоставления - это текстовый файл отчета, созданный makehdl. Файлы сопоставления создаются в качестве средства трассировки созданных объектов HDL обратно в соответствующие системы модели.

Файл сопоставления показывает взаимосвязь между системами в модели и созданными из них объектами VHDL или модулями Verilog. Запись файла сопоставления имеет форму

path --> HDL_name
где path - полный путь к системе в модели и HDL_name - имя объекта VHDL или модуля Verilog, созданного в этой системе. Файл сопоставления содержит одну запись на строку.

В простых случаях файл сопоставления может содержать только одну запись. Например, symmetric_fir подсистема sfir_fixed модель генерирует следующий файл сопоставления:

sfir_fixed/symmetric_fir --> symmetric_fir

Файлы отображения более полезны, когда код ЛПВП генерируется из сложных моделей, где множество подсистем генерируют множество объектов, и в случаях, когда конфликты между идентично названными подсистемами разрешаются Coder™ ЛПВП.

Если имя подсистемы является уникальным в модели, кодер HDL просто использует имя подсистемы в качестве имени сгенерированного объекта. При обнаружении идентично именованных подсистем кодер пытается разрешить конфликт, добавляя строку постфикса (по умолчанию, '_entity') в конфликтующую подсистему. Если впоследствии созданные имена объектов по очереди конфликтуют с этим именем, инкрементные цифры (1,2,3,...n) прилагаются.

В качестве примера рассмотрим модель, показанную на следующем рисунке. Модель верхнего уровня содержит подсистемы с именами A вложен в три уровня.

При формировании кода для подсистемы верхнего уровня A, makehdl работает с самого глубокого уровня иерархии модели, создавая уникальные имена объектов для каждой подсистемы.

makehdl('mapping_file_triple_nested_subsys/A')
### Working on mapping_file_triple_nested_subsys/A/A/A as A_entity1.vhd
### Working on mapping_file_triple_nested_subsys/A/A as A_entity2.vhd
### Working on mapping_file_triple_nested_subsys/A as A.vhd

### HDL Code Generation Complete.

В следующем примере показано содержимое результирующего файла сопоставления.

mapping_file_triple_nested_subsys/A/A/A --> A_entity1
mapping_file_triple_nested_subsys/A/A --> A_entity2
mapping_file_triple_nested_subsys/A --> A

Учитывая эту информацию, можно отслеживать сгенерированный объект обратно в соответствующую подсистему с помощью open_system команда, например:

open_system('mapping_file_triple_nested_subsys/A/A')

Каждый сгенерированный файл объекта также содержит путь к соответствующей подсистеме в комментариях заголовка в верхней части файла, как в следующем фрагменте кода.

-- Module: A_entity2
-- Simulink Path: mapping_file_triple_nested_subsys/A
-- Hierarchy Level: 0