Задайте несколько основных интерфейсов AXI в исходных проектах для доступа к интерфейсам DUT AXI4 Slave

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

Основанные на Vivado Исходные проекты

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

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

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

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

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

% ...

%% 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);

% ...

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

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

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

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

Основанные на QSYS Исходные проекты

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

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

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

% ...

%% 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 как AXI Master IP, AXI Master Instance Name является MATLAB_as_AXI_Master_0 и Port name является axm_m0. Для каждого главного IP AXI, BaseAddress HDL IP ядра и InterfaceConnection должен быть задан как массив ячеек из векторов символов.

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

Затем соединители соединяют ведущие IP-адреса AXI с AXI4 ведомыми интерфейсами в ядре IP HDL.

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

См. также

|

Похожие примеры

Подробнее о