Запись данных ввода-вывода с однокристального устройства

В этом примере показано, как записать реальные данные с оборудования для использования в симуляции.

Поддерживаемые аппаратные платформы:

  • Набор для оценки 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.

См. также

Симуляция с данными ввода-вывода, записанными с однокристального устройства