HDL-перемежитель и Deinterleaver

Этот пример показывает, как проектировать межвыпускника блока и заблокировать блоки deinterleaver и перемежение орудия и deinterleaving в системе связи, используя эти блоки.

Перемежение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Параметры

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

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

  • Перемежитель - параметр маски Nontunable. Выберите параметр «Перемежитель», чтобы использовать блок в качестве Перемежителя. Очистите этот параметр, чтобы использовать блок в качестве Deinterleaver.

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

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

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

Для примера, если вы задаете параметр Maximum block size как 30, а параметр Number of столбцов как 5, возможные значения настраиваемого размера блока во время симуляции равны 10, 15, 20, 25 и 30. Блок автоматически вычисляет количество строк, которое изменяется с размером блока.

Архитектура

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

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

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

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

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

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

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

Только Подсистема Generate Read Address в Подсистеме Read Logic Блока Interleaver и Блока Deinterleaver отличается своей функциональностью, оставшиеся другие подсистемы одинаковы.

Симуляция модели

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

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

errorRateWithoutInterleaving =

    0.1354

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

errorRateWithInterleaving =

    0.0125

Когда вы активируете чередование, вероятность ошибок меньше, чем вероятность ошибки, когда вы отключаете перемежение. Этот результат возникает из-за того, что перемежение улучшает эффективность блока Viterbi Decoder путем распространения ошибок пакета.

Результаты генерации и реализации HDL-кода

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

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

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

       Resources       Usage
    _______________    _____

    Slice Registers     293 
    Slice LUT           271 
    RAMB18              1   

Для просмотра документации необходимо авторизоваться на сайте