В этом примере показано, как записывать реальные данные с оборудования для использования в моделировании.
Поддерживаемые аппаратные платформы:
Оценочный комплект Xilinx ® Zynq ® ZC706
Набор для оценки Xilinx Zynq UltraScale™+ MPSoC ZCU102
Совет по развитию ZedBoard™ Zynq-7000
Комплект для разработки Altera ® Cyclone ® V SoC
Комплект для разработки Altera Arria ® 10 SoC
Во многих случаях может потребоваться проверить алгоритм на соответствие реальным данным. В этом примере с использованием модели потоковой передачи данных с оборудования на программное обеспечение показано, как записывать сигналы из интерфейса AXI4 на устройстве SoC. Этот рабочий процесс позволяет сосредоточиться на процессорной стороне алгоритма путем замены предварительно записанного потока данных вместо конструкции Simulink ® FPGA.
Рекомендуется выполнить пример потоковой передачи данных с оборудования на программное обеспечение.

В этом разделе будут записаны данные, сгенерированные подсистемой FPGA, в модели потоковой передачи данных с оборудования на программное обеспечение. В этой модели подсистема FPGA генерирует синусоидальный сигнал с частотой 1kHz или 10kHz, управляемый через DIP-переключатель (DS1). Алгоритм FPGA фильтрует сигнал и посылает его процессору через канал памяти потока AXI4.

Для этого раздела требуются следующие продукты:
Пакет поддержки пакетов SoC для устройств Xilinx ®
Для записи данных из FPGA выполните следующие действия:
1. Создайте аппаратный коммуникационный объект, выполнив следующие действия в командной строке MATLAB ®.
hw = socHardwareBoard('Xilinx Zynq ZC706 evaluation kit','hostname','10.10.10.15',... 'username','root','password','root')
Введите имя соответствующей платы аппаратных средств, IP-адрес и учетные данные пользователя в приведенной выше команде. Аппаратный объект hw, является шлюзом связи, который обеспечивает команды управления и обмен данными ввода-вывода.
2. Откройте модель потоковой передачи данных с оборудования на программное обеспечение. Загрузите предоставленный предварительно сгенерированный битовый поток FPGA для этой модели на оборудование.
socLoadExampleBitstream(hw,'soc_hwsw_stream_top')
3. Создайте регистратор данных для вашей аппаратной платы.
dr = soc.recorder(hw);
4. Создайте входной исходный объект AXI Stream Read и настройте свойства источника.
src = soc.iosource(hw,'AXI Stream Read'); src.devName = 'mwfpga_algorithm_wrapper_ip0:s2mm0'; samplingFrequency = 1e5; src.dataTypeStr = 'uint32'; src.SamplesPerFrame = 1000; src.SampleTime = src.SamplesPerFrame/samplingFrequency;
samplingFrequency представляет частоту дискретизации синусоидальной волны в модели потоковой передачи данных от оборудования к программному обеспечению.
5. Добавьте источник чтения потока AXI в сеанс записи данных.
addSource(dr,src,'AXI4 stream interface')
6. Инициализируйте источники ввода-вывода на аппаратной плате для записи.
setup(dr)
7. Используйте record функция для записи 10 секунд данных.
record(dr, 10) while isRecording(dr) pause (0.1); end
Во время записи переключите DIP-переключатель (DS1) для изменения частоты сигнала, генерируемого FPGA.
8. Сохраните записанные данные в файл:
save(dr,'sine_wave_data')
В этом разделе осуществляется захват радиочастотных сигналов с платы AD - FMCOMMS2/3/4 RF, подключенной к FPGA. Данные будут передаваться из радиочастотной платы в процессор с использованием потокового интерфейса AXI4.
Для этого раздела требуются следующие продукты:
Пакет поддержки пакетов SoC для устройств Xilinx ®
Для этого раздела поддерживаются следующие аппаратные платформы:
Оценочный комплект Xilinx ® Zynq ® ZC706
Совет по развитию ZedBoard™ Zynq-7000
Сведения о конфигурировании платы RF см. в Руководстве по настройке аппаратных средств Host-Radio (пакет поддержки Communications Toolbox для радиоблока на основе Xilinx Zynq)

1. Откройте модель RF Capture. Загрузите предоставленный предварительно сгенерированный битовый поток FPGA для этой модели на оборудование.
socLoadExampleBitstream(hw,'soc_rfcapture')
2. Конфигурирование платы радиоблока.
rf = rfcard(hw); rf.CenterFrequency = 1090e6; rf.GainSource = 'AGC Fast Attack'; rf.BasebandSampleRate = 4e6; rf.ShowAdvancedProperties = true; rf.ShowInternalProperties = true; rf.BISTToneMode = 'Tone Inject Rx'; rf();
3. Настройка регистратора данных.
dr = soc.recorder(hw); src = soc.iosource(hw,'AXI Stream Read'); src.devName = 'mwfpga_data_capture_ip0:s2mm0'; src.dataTypeStr = 'uint32'; src.SamplesPerFrame = 4000; src.SampleTime = src.SamplesPerFrame/rf.BasebandSampleRate; addSource(dr,src,'AXI4 stream interface');
4. Запись радиосигналов.
setup(dr) system(hw,'devmem 0x40010100 32 1'); record(dr,1) while isRecording(dr) pause (0.1); end save(dr,'zynq_rf_data')
5. Для воспроизведения записанных РЧ-данных откройте модель RF Playback. Введите имя набора данных и имя источника в блоке источника данных ввода-вывода и смоделируйте модель.

Предварительно записанный zynq_rf_data.tgz файла набора данных доступен по адресу matlab\toolbox\soc\socexamples.
Моделирование с использованием данных ввода-вывода, записанных с устройства SoC