HDL оптимизированный передатчик QPSK

Этот пример показывает, как оптимизировать передатчик QPSK, смоделированный в примере Передатчика и Получателя QPSK для генерации HDL-кода и аппаратной реализации.

Введение

Оптимизированный пример Передатчика QPSK HDL показывает, как блоки Simulink, которые поддерживают генерацию HDL-кода, могут использоваться, чтобы реализовать основополосную обработку передатчика цифровой связи.

Подсистема HDLTx может быть расположена каскадом с подсистемой HDLRx, данной в HDL Оптимизированный пример Получателя QPSK в порядке сформировать полную цепочку получателя передатчика QPSK, от которой может быть сгенерирован HDL-код.

В верхнем уровне иерархии существует два компонента: HDLTx и Измерение Качества сигнала. Подсистема HDLTx была оптимизирована для генерации HDL-кода при помощи оборудования дружественные блоки и методы проекта.

Подсистема HDLTx генерирует Синфазное (I) и Квадратура (Q) каналы, представляющие QPSK (четвертичное Манипулирование Сдвига Фазы) отображение символа. Это представляется как комплексный вектор к передаче Корневого повышенного косинуса (RRC) импульсный формирующий фильтр. Вывод подсистемы HDLTx поэтому состоит из и сверхдискретизированных символов импульсной формы.

Подсистема Измерения Качества сигнала предназначается для основанной на программном обеспечении валидации проекта и поэтому не поддержана для генерации HDL-кода.

Компонент Измерения Качества сигнала состоит из соответствия, RRC получают фильтр и осциллограф Схемы Совокупности. Цель осциллографа является двукратной. Это оба отображения выходные данные, и вычисляет значения Ошибочного отношения модуляции (MER) и Значение вектора ошибок (EVM). Это позволяет разработчику исследовать шум, введенный в систему из проекта фильтра RRC. Это явится результатом двух источников - (a) квантование содействующих значений в фильтре RRC и (b) усеченный импульсный ответ фильтра RRC (фактор спада 0.5). EVM может поэтому быть улучшен или увеличением числа дробных битов для содействующих значений или путем перепроектирования фильтра RRC, чтобы дать улучшенный ответ.

Обзор HDL оптимизированный QPSK Tx

Компонент HDLTx состоит из трех подсистем -

  • Данные Generation & Packetization

  • Отображение символа

  • Импульсное формирование

Конвейерные регистры вставляются между подсистемами в порядке минимизировать комбинаторную задержку пути между компонентами и поэтому максимизировать достижимую частоту часов (т.е. минимизация задержки критического пути). Подсистема The Data Generation & Packetization содержит несколько субкомпонентов, которые являются также конвейерными. Существует, поэтому, фиксированная задержка, прежде чем допустимые данные появятся во входе к компоненту Формирования Импульса. Чтобы гарантировать, что только допустимые данные передаются, допустимы и допустимые в портах, включены, которые используются, чтобы управлять 2:1 Мультиплексор (Входной Мультиплексор).

Data Generation & Packetization, Отображение Символа и подсистемы Формирования Импульса далее описаны в следующих разделах.

1 - Data Generation & Packetization

Следующая фигура иллюстрирует иерархию верхнего уровня компонента. Packetizer FSM и Источник данных генерируют и преамбулу и биты данных, и выполняют скремблирование и пакетирование. Пакеты состоят из 26 битов преамбула Баркера кода и 174 битов скремблированных данных. Преамбула Баркера кода используется в HDL Оптимизированный Пример Получателя QPSK для основанного на автокорреляции пакетного обнаружения через использование согласованного фильтра. Подсистема Бита-парного соединения преобразовывает один битный вход последовательных данных в двухбитовый вывод половины уровня выборки, обеспечивая правильный формат данных для картопостроителя символа. Внутренне, блок источника данных имеет конвейерную задержку 2 выборок. Кроме того, существует конвейерная задержка между источником данных и подсистемой бита-парного соединения. Допустимый сигнал поэтому задержан, чтобы совпадать с конвейерной задержкой информационного канала. Подсистема Бита-парного соединения уменьшает частоту дискретизации фактором 2. Размещение субдискретизирования два в допустимом пути к управлению гарантирует что частота дискретизации допустимых соответствий пути к управлению тот из пути прохождения сигнала.

  • Packetizer FSM - компонент Packetizer FSM состоит из машины Мура, созданное использование функционального блока MATLAB™. FSM имеет два состояния - Pack_Preamble и Append_Data. Состояние Pack_Preamble служит, чтобы включить счетчик преамбулы через load_preamble вывод. Счетчик преамбулы генерирует сигнал адреса для Интерполяционной таблицы преамбулы (LUT), постепенно увеличивающийся от 0-> 25. После этого FSM перемещается в состояние Append_Data, утверждая сигнал load_data, где это должно остаться для 174 циклов. В это время reset_preamble, которым вывод сохранен высоко, в то время как load_preamble выводят, сохранен низко. FSM должен последовательно переключиться между двумя состояниями в свою очередь.

  • Источник данных - Как показано в следующей фигуре, компонент Источника данных содержит два LUTs, содержа преамбулу и биты данных. Биты преамбулы являются инвариантными между пакетами, и таким образом, счетчик, используемый, чтобы обратиться к LUT преамбулы, сбрасывается после загрузки каждой преамбулы. Счетчику, используемому, чтобы обратиться к LUT данных, позволяют повториться после достижения максимального значения адреса, которое соответствует последнему символу пакетной строки тела "Hello World 099". Каждый из LUTs является нулем, дополненным в порядке гарантировать, что количество элементов данных имеет длину степени двойки. В дополнение к включению счетчика для LUT данных ввод данных загрузки используется, чтобы управлять, когда компонент скремблера данных должен быть включен, и управлять, должны ли преамбула или биты данных быть переданы выводу через 2:1 Мультиплексор Данных о Преамбуле.

  • Скремблер данных - скремблер данных детализирован в следующей фигуре. Скремблер создается из первых принципов с помощью логических элементов XOR (для 2 сложений по модулю) и регистры. При помощи активированной подсистемы это обеспечено это, скремблер только включен, когда существуют новые входные данные, которые будут обработаны.

  • Бит-парное соединение - цель подсистемы Бита-парного соединения состоит в том, чтобы сгруппировать пары битов в двухбитовый вывод без знака - формат ввода, ожидаемый компонентом отображения символа. Чтобы достигнуть этого, пара downsamplers используется, чтобы уменьшать частоту дискретизации фактором два с первым downsampler выбор второй фазы и второго downsampler выбор первой фазы. Блок Bit Concat конкатенирует одни битные входные параметры в двухбитовый вывод без знака.

2 - Картопостроитель символа

Картопостроитель Символа использует блок QPSK Modulator Baseband от Communications Toolbox™ в порядке сопоставить целочисленное входное значение [0,1,2,3] на оцененный символ соответствующего комплекса [1 + 1i,-1 + 1i, 1 - 1i,-1 - 1i]. Отображение символов этим способом позволяет, чтобы 2 битовых значения использовались, чтобы представлять каждый символ. Это позволяет wordlengths в фильтре передачи RRC для продукта и аккумуляторе datapaths быть оптимизированным. Блок использует схему Gray Mapping.

3 - Импульсное формирование

Импульс, Формирующий компонент, использует КИХ-фильтр Интерполяции, показывая фактор повышающей дискретизации четыре, и Корневой Повышенный импульсный ответ Косинуса. Получение просачивается, оптимизированная демонстрация Получателя QPSK HDL формирует согласованный фильтр к этому фильтру передачи. Фильтр является конвейерным (см. HDL Block Properties) в порядке гарантировать, что комбинаторная задержка минимизирована в проекте.

Результаты и отображения

Во время симуляции совокупность получила после передачи сигнала через передачу, и получите цепочку фильтра, отображен через Осциллограф Схемы Совокупности (содержавший в компоненте Измерения Качества сигнала). Кроме того, осциллограф отображает расчетный EVM и MER через Инструменты-> Измерения-> опция Качества сигнала.

EVM является расчетным значением вектора ошибок между идеальной точкой совокупности (данный мгновенным картопостроителем символа вывод) и точкой совокупности, полученной после передачи, и получите импульсную фильтрацию формы, был выполнен. EVM дает показатель качества относительно искажения, введенного передачей, и получите фильтрацию. В этом случае EVM позволяет разработчику системы определять, приемлемо ли искажение, введенное импульсными формирующий фильтрами из-за эффектов квантования фиксированной точки и неидеальных (усеченных) импульсных ответов, или в противном случае. Для получения дополнительной информации обратитесь к документации блока EVM Measurement.

MER является мерой отношения сигнал-шум в цифровых приложениях модуляции. Это - отношение средней ссылочной степени сигнала к среднеквадратичной погрешности. Для получения дополнительной информации обратитесь к документации блока MER Measurement.

Показанный ниже снимок состояния от вывода Constellation Diagram scope.

Генерация HDL-кода

HDL-код, сгенерированный от подсистемы HDLTx, был синтезирован с помощью Xilinx® ISE на Virtex6 (XC6VLX240T) FPGA и запустился на уровне приблизительно 300 МГц. При работе фильтром передачи RRC на максимальном уровне вводимые символы QPSK сгенерированы в 75M символы/секунда. Получившаяся теоретическая максимальная скорость передачи данных поэтому 150M выборки/секунда, учитывая данные, переданные и по мне и по каналам Q.

Можно использовать команды makehdl и makehdltb, чтобы сгенерировать HDL-код и испытательный стенд для подсистем в HDLTx. Чтобы сгенерировать HDL-код, используйте следующую команду:

   makehdl(subsystemname)

Чтобы сгенерировать испытательный стенд, используйте следующую команду:

   makehdltb(subsystemname)

При генерации испытательного стенда будет создана модель валидации, который включает внутреннюю конвейерную задержку фильтра передачи RRC. Вторая схема совокупности, которая вызывается, иллюстрирует вывод модели валидации.