HDL Interleaver и Deinterleaver

В этом примере показано, как спроектировать блок interleaver и блокировать блоки deinterleaver и перемежение реализации и устранение чередования в системе связи с помощью этих блоков.

Перемежение

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

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

HDL модель Interleaver

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

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

Этот раздел объясняет порты ввода и вывода Блока Interleaver, который находится в подсистеме Interleaver WHDLInterleaverModel.slx модель.

Input port:

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

  • запуск — Запускает сигнал блока входных данных в виде булева скаляра.

  • окончание — сигнал Конца входных данных блокируется в виде булева скаляра.

  • validIn — Допустимый сигнал входных данных блокируется в виде булева скаляра.

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

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

  • startOut — Запустите сигнал блока выходных данных, возвращенного как булев скаляр.

  • endOut — Закончите сигнал блока выходных данных, возвращенного как булев скаляр.

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

  • готовый — Готовый выходной сигнал, используемый для внешнего взаимодействия через интерфейс, возвращенного как булев скаляр. interleaver принимает один новый блок входных данных, все еще обрабатывая более ранний блок данных. Если больше чем один блок данных дан как вход при обработке более раннего блока данных, готовый сигнал deasserts, указании, что interleaver не готов принять новые данные.

Порты ввода и вывода Блока Deinterleaver, который находится в подсистеме Deinterleaver WHDLInterleaverModel.slx модель, совпадают с тем из Блока Interleaver.

Параметры

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

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

  • Interleaver — Ненастраиваемый параметр маски. Выберите параметр Interleaver, чтобы использовать блок в качестве Interleaver. Очистите этот параметр, чтобы использовать блок в качестве Deinterleaver.

  • Максимальный размер блока — Ненастраиваемый параметр маски. Этот параметр задает максимальный поддерживаемый размер блока. Это наборы значений размер RAM, используемого в блоке. Минимальное значение этого параметра равняется 4.

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

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

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

Архитектура

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

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

  • Запишите Логику — Эта подсистема признает, что элемент управления вводом сигнализирует и генерирует соответствующую допустимую запись и сигналы адреса записи для записи данных в RAM.

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

  • Считайте Логику — Эта подсистема выполняет фактическую операцию чередования и генерирует адрес чтения, чтобы считать данные из RAM.

  • Сгенерируйте Готовый — Эта подсистема генерирует готовый выходной сигнал для взаимодействия через интерфейс с другими блоками.

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

Только Сгенерировать подсистема Адреса Чтения в подсистеме Логики Чтения Блока Блока и Deinterleaver Interleaver отличается по своей функциональности, оставаясь, другие подсистемы - то же самое.

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

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

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

errorRateWithoutInterleaving =

    0.1354

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

errorRateWithInterleaving =

    0.0125

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

Генерация 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 МГц. Подобные результаты получены для Блока Interleaver в подсистеме Interleaver.

       Resources       Usage
    _______________    _____

    Slice Registers     293 
    Slice LUT           271 
    RAMB18              1