Закодируйте сообщение к кодовому слову RS
Беспроводной HDL Toolbox/Обнаружение и коррекция ошибок
Блок RS Encoder кодирует данные сообщения к кодовому слову Рида-Соломона (RS). Блок принимает данные сообщения и samplecontrol
шина и выходы данных кодового слова и samplecontrol
шина.
Поскольку задержка блока изменяется, блок обеспечивает выходу порт nextFrame который указывает, когда блок готов принять новые данные входы сообщения. Блок обеспечивает архитектуру, подходящую для генерации HDL-кода и аппаратного развертывания, и поддерживает укороченные длины сообщений.
Можно использовать этот блок для моделирования многих кодов прямой коррекции ошибок системы связи (FEC). Блок поддерживает цифровую абонентскую линию (DSL), WiMAX (802,16 м и e), портативные терминалы цифрового видеовещания (DVB-H), услуги цифрового видеовещания (DVB-S) и услуги цифрового видеовещания спутниковых служб для портативных устройств (DVB-SH) ниже 3.
data
- Входные данные сообщенияВходные данные сообщения, заданные как скаляр, представляющий один символ.
Вход размера слова должен быть беззнаковым целым числом, равным ceil
(log2 (<reservedrangesplaceholder1>)). Для входных данных размера слова 3
, параметр длины кодового слова, Codeword length (N), должен быть 7
.
double
и single
типы данных разрешены для симуляции, но не для генерации HDL-кода.
Типы данных: double
| single
| uint8
| uint16
| fixed point
ctrl
- Сигналы управления, сопровождающие поток выборокsamplecontrol
автобусСигналы управления, сопровождающие поток дискретизации, заданные как samplecontrol
bus. Шина включает в себя start
, end
, и valid
управляющие сигналы, которые указывают контуры системы координат и валидность выборок.
start
- Указывает начало входного кадра
end
- Указывает конец входного кадра
valid
- Указывает, что данные входного data порта действительны
Для получения дополнительной информации см. Выборку шины управления.
Типы данных: bus
data
- Закодированные данные кодового словаЗакодированные данные кодового слова, возвращенные как скаляр. Эта выходная ширина данных совпадает с шириной входных данных.
Типы данных: double
| single
| uint8
| uint16
| fixed point
ctrl
- Сигналы управления, сопровождающие поток выборокsamplecontrol
автобусУправляющие сигналы, сопровождающие поток дискретизации, возвращаются как samplecontrol
bus. Шина включает в себя start
, end
, и valid
управляющие сигналы, которые указывают контуры системы координат и валидность выборок.
start
- Указывает начало выходной системы координат
end
- Указывает конец выходной системы координат
valid
- Указывает, что данные выходного data порта действительны
Для получения дополнительной информации см. Выборку шины управления.
Типы данных: bus
nextFrame
- Индикатор готовности блокаИндикатор готовности блока, возвращенный в виде скаляра.
Блок устанавливает этот сигнал на 1
(true
), когда блок готов принять начало следующей системы координат. Если блок получает сигнал входа ctrl.start, пока nextFrame 0
(false
), блок отбрасывает систему координат в прогресс и начинает обработку новых данных.
Типы данных: Boolean
Codeword length (N)
- Длина кодового слова7
(по умолчанию) | целое число в области значений от 7 до 65 535Задайте длину кодового слова.
Длина кодового слова должна быть целым числом, равным 2M - 1, где M является целым числом в области значений от 3 до 16. Для получения дополнительной информации о представлении данных для кодов RS, смотрите Целочисленный формат (только для Рида-Соломона).
Message length (K)
- Длина сообщения3
(по умолчанию) | целое число в области значений от 3 до (Codeword length (N) - 2
)Задайте длину сообщения.
Для получения дополнительной информации о представлении данных для кодов RS, смотрите Целочисленный формат (только для Рида-Соломона).
Source of primitive polynomial
- Примитивный полиномиальный источникAuto
(по умолчанию) | Property
Задайте источник примитивного полинома.
Выберите Auto
для задания примитивного полинома на основе Codeword length (N) значения параметров. Степень примитивного полинома вычисляется как M = ceil
(log2 (<reservedrangesplaceholder0>) ).
Выберите Property
задать примитивный полином используя параметр Primitive polynomial.
Primitive polynomial
- Примитивный полином[1 0 1 1]
(по умолчанию) | двоичный вектор-строкаЗадайте двоичный вектор-строку, представляющее примитивный полином в порядке убывания степеней.
Для получения дополнительной информации о том, как задать примитивный полином, см. «Примитивные полиномы и представления элемента».
Чтобы включить этот параметр, установите параметр Source of primitive polynomial равным Property
.
Source of B, the starting power for roots of the primitive polynomial
- Источник стартовой степени для корней примитивного полиномаAuto
(по умолчанию) | Property
Задайте источник стартовой степени для корней примитивного полинома.
Выберите Auto
чтобы использовать значение параметров B value по умолчанию, 1
.
Выберите Property
для включения параметра B value.
B value
- Стартовая степень для корней примитивного полинома1
(по умолчанию) | положительное целое числоЗадайте стартовую степень для корней примитивного полинома.
Чтобы включить этот параметр, установите параметр Source of B, the starting power for roots of the primitive polynomial равным Property
.
Enable puncturing
- Источник пунктирного шаблонаoff
(по умолчанию) | on
Выберите этот параметр, чтобы включить параметр Puncture pattern vector.
Puncture pattern vector
- Вектор прокола[1; 1; 0; 0]
(по умолчанию) | двоичный вектор-столбецЗадайте двоичный вектор-столбец длины Codeword length (N) - Message length (N). Значение 1
указывает, что символ блока данных не проколол и остался неизменным от потока данных. Значение 0
указывает, что символ данных проколол или удален из потока данных.
Чтобы включить этот параметр, выберите параметр Enable puncturing.
Блок RS Encoder кодирует данные сообщения длины K в кодовое слово RS длины N. Блок требует минимальной погрешности N - K тактовых импульсов, чтобы добавить N - K длину четности к данным сообщения длины K. Во время этих N - K тактовых циклов длины четности, блок не принимает новые данные. Итак, минимальная длительность между сообщениями должна быть N - K тактовых импульсов.
Каждый start
сигнал, который является высоким, указывает на начало нового сообщения. Когда несколько start
высокие сигналы существуют, блок принимает только последние start
сигнал.
start
и end
высокие сигналы действительны только тогда, когда valid
сигнал блока высок.
Блок принимает end
сигналы с соответствующим start
сигнал. В случае нескольких end
высокие сигналы, блок принимает только первое end
высокий сигнал и игнорирует оставшиеся end
высокие сигналы.
Этот рисунок показывает пример выхода блока RS Encoder с задержкой в соответствии со стандартным строением DVB-S, Codeword length (N) и Message length (K) значениями параметров, заданными как 255
и 239
, соответственно, и с отключенным прокалыванием. В этом случае задержка блока составляет 1 такт.
Эффективность синтезированного HDL-кода варьируется с вашей целью и опциями синтеза. Тип входных данных, используемых для генерации HDL-кода fixdt(0,8,0)
.
Эта таблица показывает результаты синтеза ресурсов и данных о эффективности при использовании блока с Codeword length (N) и Message length (K) значениями параметров, заданными как 255
и 239
, соответственно. Сгенерированный HDL нацелен на Xilinx® Zynq®- 7000 ZC706 оценочного совета. Проект достигает тактовой частоты 440 МГц.
Ресурс | Используемое число |
---|---|
LUTs | 237 |
Регистры | 154 |
DSPs | 0 |
Блокируйте ОЗУ | 7.5 |
[1] Wicker, Stephen B. Системы управления ошибками для цифровой связи и хранения данных. Englewood Cliffs, Нью-Джерси: Prentice Hall, 1995.
[2] Кларк, Джордж К. и Дж. Либб Каин. Кодирование с исправлением ошибок для цифровых коммуникаций. Приложения теории связи. Нью-Йорк: Пленум Пресс, 1981.
Этот блок поддерживает генерацию кода C/C + + для Simulink® режимы Accelerator и Rapid Accelerator и для генерации компонентов DPI.
HDL Coder™ предоставляет дополнительные опции строения, которые влияют на реализацию HDL и синтезированную логику.
Этот блок имеет одну архитектуру HDL по умолчанию.
ConstrainedOutputPipeline | Количество регистров для размещения на выходах путем перемещения существующих задержек в рамках вашего проекта. Распределённая конвейеризация не перераспределяет эти регистры. Значение по умолчанию является |
InputPipeline | Количество входных этапов конвейера для вставки в сгенерированный код. Распределённая конвейеризация и ограниченная выходная конвейеризация могут перемещать эти регистры. Значение по умолчанию является |
OutputPipeline | Количество выходных этапов конвейера для вставки в сгенерированный код. Распределённая конвейеризация и ограниченная выходная конвейеризация могут перемещать эти регистры. Значение по умолчанию является |
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.