exponenta event banner

Перемежитель HDL и обращенный перемежитель

В этом примере показано, как разработать блок-перемежитель и блок-обращенный перемежитель и реализовать перемежение и обращенное перемежение в системе связи, использующей эти блоки.

Чередование

Приложения обработки звука и радиопередачи часто подвержены воздействию пакетного шума. Пакетный шум ухудшает работу кодов прямого исправления ошибок (FEC). Это ухудшение рабочих характеристик приводит к возникновению ошибок в декодированных данных. Перемежение - это метод, который расширяет непрерывный пакет ошибок и улучшает декодирование данных с использованием кодов FEC. Перемежение является частью беспроводных стандартов, таких как цифровое видеовещание - спутниковое второе поколение (DVB-S2), беспроводная локальная сеть (WLAN 802.11) и долгосрочная эволюция (LTE). Эта блок-схема показывает обзор системы связи с перемежителем и обращенным перемежителем.

Перемежитель записывает входные данные в строковом формате в память и считывает выходные данные в столбцевом формате из памяти. Обращенный перемежитель работает обратным образом, записывая входные данные в формате столбцов в память и считывая выходные данные в формате строк из памяти. Количество строк и столбцов определяет степень перемежения. На этом рисунке показана работа блочного перемежителя и блочного обращенного перемежителя, каждый из которых имеет четыре строки и четыре столбца.

Модель перемежителя HDL

В этом разделе представлен обзор системы связи, реализованной с помощью WHDLInterleaverModel.slx модель, которая содержит блоки перемежителя и обращенного перемежителя. Входные данные модели dataIn сверточно кодируются с использованием блока сверточного кодера. Затем кодированные данные перемежаются блоком перемежителя, который находится в подсистеме перемежителя. Пакетный шум добавляется к перемеженным данным посредством выполнения операции исключающее ИЛИ данных с пакетным шумом. Поврежденные данные подаются в качестве входных данных в подсистему обращенного перемежителя, где блок обращенного перемежителя распространяет ошибки пакета в данных. Блок декодера Витерби декодирует обращенно перемеженные данные и выводит окончательные декодированные данные. Модель содержит дополнительные подсистемы, которые используются для синхронизации блоков в модели. Постоянный блок с interleave переменная предоставляется в подсистемах перемежителя и обращенного перемежителя модели. Можно установить или сбросить interleave для включения или отключения перемежения.

Описание порта

В этом разделе поясняются входные и выходные порты блока перемежителя, который находится в подсистеме перемежителя WHDLInterleaverModel.slx модель.

Входные порты:

  • dataIn - входные данные, подлежащие перемежению. Когда блок выполняет последовательную обработку, dataIn указывается как скаляр. Блок поддерживает double, single, Boolean, integer, и fixed point типы данных.

  • startIn - начальный сигнал блока входных данных, заданный как логический скаляр.

  • endIn - конечный сигнал блока входных данных, заданный как логический скаляр.

  • validIn - действительный сигнал блока входных данных, заданный как логический скаляр.

Выходные порты:

  • dataOut - перемеженные выходные данные, возвращенные в виде скаляра. Тип выходных данных совпадает с типом выходного данных порта dataIn.

  • startOut - начальный сигнал блока выходных данных, возвращаемый в виде логического скаляра.

  • Endout - конечный сигнал блока выходных данных, возвращаемый как логический скаляр.

  • Validout - действительный сигнал блока выходных данных, возвращаемый как логический скаляр.

  • ready - готовый выходной сигнал, используемый для внешнего сопряжения, возвращаемый как логический скаляр. Перемежитель принимает один новый блок входных данных при обработке более раннего блока данных. Если во время обработки более раннего блока данных в качестве входных данных дается более одного блока данных, сигнал готовности отклоняется, указывая, что перемежитель не готов принять новые данные.

Входные и выходные порты блока обращенного перемежителя, который находится в подсистеме обращенного перемежителя WHDLInterleaverModel.slx , те же, что и в блоке перемежителя.

Параметры

На этом рисунке показана блочная маска блока перемежителя. Этот блок можно использовать в качестве перемежителя или обращенного перемежителя путем изменения выбора параметров в маске блока.

Блок перемежителя поддерживает следующие параметры:

  • Перемежитель - неперестраиваемый параметр маски. Выберите параметр «Перемежитель», чтобы использовать блок в качестве перемежителя. Снимите этот параметр, чтобы использовать блок в качестве обращенного перемежителя.

  • Максимальный размер блока - параметр неперестраиваемой маски. Этот параметр задает максимальный поддерживаемый размер блока. Это значение задает размер ОЗУ, используемого внутри блока. Минимальное значение этого параметра равно 4.

  • Число столбцов - неперестраиваемый параметр маски. Этот параметр определяет количество столбцов. Минимальное число столбцов равно 2 и должно быть коэффициентом максимального размера блока.

Размер блока перемежителя настраивается, что означает, что он может регулироваться во время моделирования с использованием входных сигналов начала, конца и действительного управления. Размер блока - это количество входных действительных выборок от начала до конца блока данных. Размер блока должен быть целым числом, кратным числу столбцов. Минимальным значением размера блока является Число столбцов x 2, а максимальным - Максимальный размер блока.

Например, если задать для параметра Максимальный размер блока значение 30, а для параметра Количество столбцов значение 5, то возможные значения настраиваемого размера блока во время моделирования будут составлять 10, 15, 20, 25 и 30. Блок автоматически вычисляет количество строк, которое зависит от размера блока.

Архитектура

В этом разделе описывается архитектура блока перемежителя. Блок перемежителя принимает входные данные в виде блоков данных вместе с управляющими сигналами. Блок перемежителя перемежает каждый блок данных независимо. На этом рисунке показана архитектура блока перемежителя.

Блок перемежителя содержит три подсистемы и два блока:

  • Логика записи - эта подсистема принимает входные управляющие сигналы и генерирует соответствующие действительные сигналы записи и адресные сигналы записи для записи данных в ОЗУ.

  • Длина блока хранения - это блок FIFO, который сохраняет длины блоков входных данных во время моделирования.

  • Логика считывания - эта подсистема выполняет фактическую операцию перемежения и генерирует адрес считывания для считывания данных из ОЗУ.

  • Generate Ready - эта подсистема генерирует готовый выходной сигнал для сопряжения с другими блоками.

  • RAM - этот блок сохраняет входные данные и выводит перемеженные данные на основе входного адреса считывания.

Только подсистема Generate Read Address в подсистеме Read Logic блока перемежителя и блока обращенного перемежителя отличается по своей функциональности, остальные подсистемы одинаковы.

Моделирование модели

Запустить runWHDLInterleaverModel.m сценарий для моделирования WHDLInterleaverModel.slx модель. Сценарий инициализирует, моделирует и проверяет выходные данные модели. Для получения оптимальных результатов настройте параметры перемежения в сценарии на основе параметров пакетного шума.

Отключите перемежение, а затем запустите сценарий для моделирования модели, проверки выходных данных и отображения ошибок.

errorRateWithoutInterleaving =

    0.1354

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

errorRateWithInterleaving =

    0.0125

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

Результаты создания и внедрения кода HDL

Для проверки и генерации кода HDL, на который ссылается этот пример, необходимо иметь продукт HDL Coder™. Для создания кода HDL введите эту команду в командной строке MATLAB.

>> makehdl('WHDLInterleaverModel/Deinterleaver/Deinterleaver Block')

Использование ресурсов и частота значений операций зависят от типа входных данных, максимального размера блока и количества столбцов. Код HDL синтезируется для платы оценки Xilinx ® Zynq ® -7000 ZC706 блока Deinterleaver в подсистеме Deinterleaver с помощьюfixdt(1,16,14) входной, максимальный размер блока 360 и 30 столбцов. В этой таблице приведены данные об использовании ресурсов для размещения и маршрутизации. Максимальная частота работы - 292 МГц. Аналогичные результаты получены для блока перемежителя в подсистеме перемежителя.

       Resources       Usage
    _______________    _____

    Slice Registers     293 
    Slice LUT           271 
    RAMB18              1