Оглавление
2. Алгоритмы предполагают обзор теоретических знаний
1. Эффект имитации алгоритма
Результаты моделирования Vivado2019.2 следующие:
2. Алгоритмы предполагают обзор теоретических знаний
Система чередования и обратного перемежения представляет собой технологию передачи данных, широко используемую в системах связи для повышения надежности и защиты от помех при передаче данных. Система чередует данные на передающей стороне, а затем выполняет обратное чередование на принимающей стороне, так что каждый бит данных распределяется по разным позициям, тем самым уменьшая влияние шума и помех в канале и повышая надежность передачи данных.
В частности, рабочий процесс системы перемежения и обратного перемежения выглядит следующим образом:
Перемежение: Чередование данных на передающей стороне в соответствии с определенными правилами и распределение каждого бита данных по разным позициям.
Кодирование: кодирование чередующихся данных для повышения надежности передачи данных. Общие методы кодирования включают сверточные коды, корректирующие коды и т. д.
Модуляция: Модулируйте закодированные данные, чтобы адаптировать их к характеристикам передачи канала. Общие методы модуляции включают ASK, FSK, PSK и т. д.
Передача: Модулированные данные передаются к принимающей стороне через канал.
Демодуляция: демодулируйте передаваемый сигнал на приемном конце, чтобы получить цифровой сигнал на приемном конце.
Декодирование: декодируйте цифровой сигнал на принимающей стороне, чтобы восстановить исходные данные. В процессе декодирования необходимо учитывать влияние шума и помех в канале.
Обратное перемежение: декодированные данные перемежаются в соответствии с правилом, противоположным правилу перемежения, и восстанавливается порядок исходных данных.
Вышеизложенное является основным принципом системы перемежения и обратного перемежения. Ниже мы расскажем, как реализовать систему перемежения и обратного перемежения в FPGA.
Общие шаги для FPGA для реализации системы перемежения и обратного перемежения следующие:
Разработайте правила перемежения: Правила перемежения являются ядром обработки перемежения, которые определяют последовательность перемежения и режим данных. В практических приложениях соответствующие правила перемежения должны быть разработаны в соответствии с конкретными ситуациями.
Разработайте модуль перемежения: модуль перемежения является ядром всей системы перемежения и обратного перемежения, которая реализует правила перемежения. Модуль перемежения обычно включает в себя буфер и перемежитель. Область буфера используется для хранения входных данных, а перемежитель используется для реализации правил перемежения.
Разработайте модуль обратного перемежения: модуль обратного перемежения подобен модулю чередования, но он должен реализовать правило, противоположное правилу чередования, чтобы восстановить порядок исходных данных.
Разработайте модуль кодирования: модуль кодирования используется для кодирования чередующихся данных для повышения надежности передачи данных. Общие методы кодирования включают сверточные коды, корректирующие коды и т. д.
Разработайте модуль модуляции: модуль модуляции используется для модуляции закодированных данных для адаптации к характеристикам передачи канала. Общие методы модуляции включают ASK, FSK, PSK и т. д.
Разработайте модуль демодуляции: модуль демодуляции используется для демодуляции передаваемого сигнала на приемном конце для получения цифрового сигнала на приемном конце.
Разработайте модуль декодирования: модуль декодирования используется для декодирования цифрового сигнала на принимающей стороне для восстановления исходных данных. В процессе декодирования необходимо учитывать влияние шума и помех в канале.
Разработайте модуль обратного перемежения: модуль обратного перемежения используется для обратного чередования декодированных данных в соответствии с правилом, противоположным правилу чередования, и восстановления порядка исходных данных.
Модуль управления дизайном: модуль управления используется для управления рабочим процессом всей системы перемежения и обратного перемежения, включая ввод и вывод данных, запуск и останов модулей и т. д.
Выше приведены общие шаги для реализации системы перемежения и обратного перемежения в FPGA. В практических приложениях его необходимо корректировать и оптимизировать в соответствии с конкретной ситуацией.
Система перемежения и обратного перемежения представляет собой технологию передачи данных, которая может повысить надежность и помехозащищенность передачи данных. Для реализации системы перемежения и обратного перемежения в FPGA необходимо разработать правила перемежения, модуль перемежения, модуль обратного перемежения, модуль кодирования, модуль модуляции, модуль демодуляции, модуль декодирования, модуль обратного перемежения, модуль управления и другие модули. FPGA обладает преимуществами программируемости и высокой степени параллелизма, а также имеет определенные преимущества в реализации систем перемежения и обратного перемежения. В практических приложениях его необходимо корректировать и оптимизировать в соответствии с конкретной ситуацией.
В этом проекте мы в основном разрабатываем отдельные модули чередования и обратного чередования.
3. Основная программа Verilog
`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2023/05/12 19:58:30
// Design Name:
// Module Name: tops
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//
module tops(
input i_clk,
input i_rst,
input [2:0]i_sel,//配置2*2交织和4*4交织
input i_flager,
input i_enable,
input i_x,
output o_y_jz,
output o_enable_jz,
output o_start_jz,
output o_y_djz,
output o_enable_djz,
output o_start_djz
);
//交织
jiaozhi jiaozhi_u(
.i_clk (i_clk),
.i_rst (i_rst),
.i_sel (i_sel),//配置2*2交织和4*4交织
.i_flager (i_flager),
.i_enable (i_enable),
.i_x (i_x),
.o_y (o_y_jz),
.o_enable_jz (o_enable_jz),
.o_start_jz (o_start_jz)
);
//解交织
dejiaozhi dejiaozhi_u(
.i_clk (i_clk),
.i_rst (i_rst),
.i_sel (i_sel),//配置2*2交织和4*4交织
.i_flager (o_start_jz),
.i_enable (o_enable_jz),
.i_x (o_y_jz),
.o_y (o_y_djz),
.o_enable_jz (o_enable_djz),
.o_start_jz (o_start_djz)
);
endmodule
00_014m
4. Полный файл кода алгоритма
В