Можно задать несколько интерфейсов AXI Master в пользовательском исходном проекте и получить доступ к AXI4 ведомым интерфейсам в сгенерированном ядре HDL DUT IP для DUT. Эта возможность позволяет вам одновременно подключать HDL DUT IP-ядро к двум или более AXI Master IP в исходный проект, таким как HDL Verifier™ JTAG AXI Master IP и ARM® процессор в Zynq® система обработки.
Чтобы задать несколько интерфейсов 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 и соответствующие адресные пространства.
Чтобы задать несколько интерфейсов 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, имена портов и соответствующие адресные пространства.
hdlcoder.Board
| hdlcoder.ReferenceDesign