Задайте Несколько Основных Интерфейсов AXI в Исходных проектах, чтобы получить доступ к Ведомому Интерфейсу DUT AXI4

Можно задать несколько Основных интерфейсов AXI в пользовательском исходном проекте и получить доступ к ведомым интерфейсам AXI4 в сгенерированном HDL ядро IP DUT для DUT. Эта возможность позволяет вам одновременно соединить HDL ядро IP DUT с двумя или больше Основными IP AXI в исходном проекте, таком как Ведущий IP HDL Verifier™ JTAG AXI и процессор ARM® в системе обработки Zynq®.

Находящиеся в Vivado исходные проекты

Чтобы задать несколько Основных интерфейсов AXI, вы задаете BaseAddressSpace и MasterAddressSpace для каждого Основного экземпляра AXI, и также свойство IDWidth.

IDWidth является шириной всех сигналов ID, таких как AWID, WID, ARID и RID, заданный как положительное целое число. По умолчанию IDWidth является 12, который позволяет вам задать одну связь интерфейса AXI Master с ядром IP DUT. Чтобы соединить ядро IP DUT с несколькими Основными интерфейсами AXI, вам, вероятно, придется увеличить IDWidth. Значение IDWidth специфично для инструмента. Чтобы видеть значение, которое необходимо использовать при определении больше чем одного интерфейса AXI Master, обратитесь к документации для того инструмента. Если вы используете неправильную ширину ID, инструмент синтеза генерирует ошибку и сообщает о правильном IDWidth, который необходимо использовать.

Этот код является синтаксисом для поля MasterAddressSpace при определении нескольких Основных интерфейсов AXI в исходных проектах Vivado®-based:

'MasterAddressSpace', ...
   {'AXI Master Instance Name1/Address Space of Instance Name1', ...
    'AXI Master Instance Name2/Address_Space of Instance Name2',...};

Например, этот код иллюстрирует, как можно изменить файл plugin_rd, чтобы задать два Основных интерфейса AXI.

% ...

%% Add custom design files
% add custom Vivado design
hRD.addCustomVivadoDesign( ...
    'CustomBlockDesignTcl', 'system_top.tcl', ...
    'VivadoBoardPart',      'xilinx.com:zc706:part0:1.0');


% ...
% ...

% The DUT IP core in this reference design is connected 
% to both Zynq Processing System and the MATLAB as AXI 
% Master IP. Because of 2 AXI Master, ID width 
% has to be increased from 12 to 13. 
hRD.addAXI4SlaveInterface( ...
    'InterfaceConnection', 'axi_interconnect_0/M00_AXI', ...
    'BaseAddress',         {'0x40010000', '0x40010000'}, ...
    'MasterAddressSpace',  {'processing_system7_0/Data', 'hdlverifier_axi_master_0/axi4m'}, ...
    'IDWidth',             13);

% ...

В этом примере два Основных IP AXI являются HDL Verifier MATLAB как Ведущий IP AXI и процессор ARM. На основе синтаксиса MasterAddressSpace, для HDL Verifier MATLAB как Ведущий IP AXI, AXI Master Instance Name является hdlverifier_axi_master_0, и Address_Space of Instance Name является axi4m.

Ведомые интерфейсы AXI4 в HDL, который ядро IP DUT соединяет с Xilinx® AXI Interconnect IP, который задан свойством InterfaceConnection метода addAXI4SlaveInterface. Ведомые интерфейсы AXI4 имеют BaseAddress. Этот BaseAddress должен сопоставить с MasterAddressSpace для двух Основных IP AXI, которые заданы как массив ячеек из символьных векторов.

Необходимо убедиться, что Основной дюйм/с AXI был уже включен в проект исходного проекта Vivado. system_top.tcl является файлом TCL, который задан свойством CustomBlockDesignTcl метода addCustomVivadoDesign. В этом файле TCL необходимо убедиться, что два Основных IP AXI соединяются с тем же Соединительным IP AXI Xilinx. Межсоединения затем соединяют Основного дюйм/с AXI с ведомыми интерфейсами AXI4 в ядре IP HDL.

После того, как вы запускаете рабочий процесс IP Core Generation и создаете проект Vivado, открываете проект. В проекте Vivado, если вы открываете блочную конструкцию, вы видите два Основных IP AXI, соединенные с HDL ядро IP DUT. Если вы выбираете вкладку Address Editor, вы видите Основные имена экземпляра AXI и соответствующие адресные пространства.

Находящиеся в Qsys исходные проекты

Чтобы задать несколько Основных интерфейсов AXI, вы задаете InterfaceConnection и BaseAddressSpace для каждого Основного экземпляра AXI, и также свойство IDWidth. Этот код является синтаксисом для поля InterfaceConnection при определении нескольких Основных интерфейсов AXI в исходных проектах Qsys™-based:

'InterfaceConnection', ...
   {'AXI Master Instance Name1/Port name of Instance Name1', ...
    'AXI Master Instance Name2/Port name of Instance Name1', ...};

Например, этот код иллюстрирует, как можно изменить файл plugin_rd, чтобы задать три Основных интерфейса AXI.

% ...

%% Add custom design files
% add custom Qsys design
hRD.addCustomQsysDesign('CustomQsysPrjFile', 'system_soc.qsys');
hRD.CustomConstraints = {'system_soc.sdc','system_setup.tcl'};


% ... 

% add AXI4 slave interfaces
hRD.addAXI4SlaveInterface( ...
    'InterfaceConnection', {'hps_0.h2f_axi_master','master_0.master','MATLAB_as_AXI_Master_0.axm_m0'}, ... 
    'BaseAddress',         {'0x0000_0000','0x0000_0000','0x0000_0000'},...
    'InterfaceType',       'AXI4'...
    'IDWidth',             14); 

% ...

На основе синтаксиса опции InterfaceConnection, для HDL Verifier MATLAB как Ведущий IP AXI, AXI Master Instance Name является MATLAB_as_AXI_Master_0, и Port name является axm_m0. Для каждого Основного IP AXI BaseAddress ядра IP HDL и InterfaceConnection должен быть задан как массив ячеек из символьных векторов.

Необходимо убедиться, что Основной дюйм/с AXI был уже включен в проект исходного проекта Qsys. system_soc.qsys является файлом, который задан свойством CustomQsysPrjFile метода addCustomQsysDesign. В этом файле необходимо убедиться, что два Основных IP AXI соединяются с тем же Соединительным IP Qsys AXI.

Межсоединения затем соединяют Основного дюйм/с AXI с ведомыми интерфейсами AXI4 в ядре IP HDL.

После того, как вы запускаете рабочий процесс IP Core Generation и создаете проект Quartus®, открываете проект. В проекте Куарта вы видите три Основных IP AXI и Основные интерфейсы AXI, соединенные с ядром IP HDL для DUT. Если вы выбираете вкладку Address Map, вы видите Основные имена экземпляра AXI, имена порта и соответствующие адресные пространства.

Смотрите также

|

Связанные примеры

Больше о