В этом примере показано, как записать реальные данные с оборудования для использования в симуляции.
Поддерживаемые аппаратные платформы:
Набор для оценки ZC706 Xilinx ® Zynq ®
Набор для оценки ZCU102 Xilinx Zynq UltraScale™+ MPSoC
ZedBoard™ Zynq-7000 развития
Комплект для разработки Altera ® Cyclone ® V
Набор для разработки Altera Arria ® 10 SoC
Во многих ситуациях вы можете захотеть проверить свой алгоритм на соответствие реальным данным. Этот пример, используя Данные Streaming от Оборудования до Модели ПО, показов, как записать сигналы с AXI4 интерфейса на однокристальном устройстве. Этот рабочий процесс позволяет вам фокусироваться на процессорной стороне алгоритма путем замены предварительно записанного потока данных вместо проекта Simulink ® FPGA.
Мы рекомендуем заполнить пример потоковой передачи данных с оборудования на программное обеспечение.
В этом разделе вы будете записывать данные, сгенерированные подсистемой FPGA, в модель Потоковые данные от оборудования к программному обеспечению. В этой модели подсистема FPGA генерирует синусоидальный сигнал с частотой 1kHz или 10kHz, управляемый через DIP-переключатель (DS1). Алгоритм FPGA фильтрует сигнал и отправляет его процессору через AXI4 Stream Memory Channel.
Для этого раздела требуются следующие продукты:
Пакет поддержки SoC Blockset для устройств 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;
The samplingFrequency
представляет синусоиде частоты дискретизации в модели Потоковые данные от Оборудования к программному обеспечению.
5. Добавьте источник AXI Stream Read к сеансу записи данных.
addSource(dr,src,'AXI4 stream interface')
6. Инициализируйте источники ввода-вывода на аппаратной плате для записи.
setup(dr)
7. Используйте record
функция для записи 10 секунд данных.
record(dr, 10) while isRecording(dr) pause (0.1); end
Во время записи переключите переключатель DIP (DS1), чтобы изменить частоту сигнала, формируемого ПЛИС.
8. Сохраните записанные данные в файл:
save(dr,'sine_wave_data')
В этом разделе вы будете захватывать RF-сигналы от платы AD - FMCOMMS2/3/4 RF, подключенной к FPGA. Данные будут передаваться с платы RF на процессор с помощью AXI4 интерфейса потока.
Для этого раздела требуются следующие продукты:
Пакет поддержки SoC Blockset для устройств Xilinx ®
Поддерживаемые аппаратные платформы для этого раздела:
Набор для оценки ZC706 Xilinx ® Zynq ®
ZedBoard™ Zynq-7000 развития
Конфигурирование платы RF смотрите в Руководстве по Setup аппаратных средств Host-Radio (Пакет поддержки Communications Toolbox для Xilinx Zynq-Based Radio)
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. Setup регистратора данных.
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, откройте модель RF Playback. Введите имя набора данных и имя источника на блоке IO Data Source и симулируйте модель.
Предварительно записанный файл набора данных zynq_rf_data.tgz доступен в matlab\toolbox\soc\socexamples.
Симуляция с данными ввода-вывода, записанными с однокристального устройства