Задайте Несколько Основных Интерфейсов 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, имена порта и соответствующие адресные пространства.

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

|

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

Больше о