doesnotmatter 0 22 ноября, 2015 Опубликовано 22 ноября, 2015 · Жалоба Привет всем! Я занимаюсь своей дипломной работой - реализацией на FPGA от Xilinx помехоустойчивого кодера на кодах Рида-Маллера. Работаю в Xilinx ISE 14.7, использую Verilog. По сути, вся работа кодера разбивается на несколько пунктов: - принимать поток символов и делить его на блоки; - над этими блоками выполнять арифметические операции; - склеивать блоки обратно в поток битов. Но кодирование является избыточным - и если входящие блоки по условию составляют 7 бит, то на выходе каждый блок расширяется до 64 бит. По моей задумке, деление на блоки и склеивание обратно проводится через регистры - то есть на входе я по тактовому счёту заношу информацию по одному биту в регистр сдвига 1->7 (самописный на Verilog), откуда спустя каждые пришедшие 7 битов вывожу весь блок на обработку по семибитной шине. Допустим, в таком параллельном виде операции я провёл - и на выходе есть регистр 64->1, который по тактовому счёту должен выводить информацию обратно в канал, собирать всё из кучи шин в один поток - и тут назревает вопрос: Если на входе мы накапливаем блоки по 7 бит, а выпускаем уже по 64 бита с той же скоростью - то мы же просто не будем успевать их выпускать? Надо ли делать тактовые импульсы, поступающие на выходной регистр, в 8 раз короче (и соответственно уменьшать длительность передачи каждого одиночного бита)? Или как это реализовать по-другому? То есть в общем виде мой вопрос прозвучит так: как на практике реализуется избыточное кодирование (в плане соотношения скоростей передачи на входе и выходе кодера) - с использованием какого-либо буфера (который, по идее, всё равно переполнится через несколько тактов?), с изменением ли скорости выходного потока, или каким-то другим методом? Не смог сформулировать волнующий меня вопрос кратко и "научно", поэтому поиски в Интернете пока ничего не дали :) Буду премного благодарен толковым разъяснениям от опытных людей! :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
maksimp 0 23 ноября, 2015 Опубликовано 23 ноября, 2015 (изменено) · Жалоба Я занимаюсь своей дипломной работой Спросите у руководителя, для чего будет применяться сделанный вами аппарат. То есть в общем виде мой вопрос прозвучит так: как на практике реализуется избыточное кодирование (в плане соотношения скоростей передачи на входе и выходе кодера) - с использованием какого-либо буфера (который, по идее, всё равно переполнится через несколько тактов?), с изменением ли скорости выходного потока, или каким-то другим методом? Так или иначе, скорость передачи на выходе кодера больше. На практике - посмотрите например как работают с NAND Flash. Но понятно, что скорость записи данных в микросхему памяти больше, чем передачи данных по USB при сохранении файла на флешку. Изменено 23 ноября, 2015 пользователем maksimp Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexashka 0 23 ноября, 2015 Опубликовано 23 ноября, 2015 · Жалоба То есть в общем виде мой вопрос прозвучит так: как на практике реализуется избыточное кодирование (в плане соотношения скоростей передачи на входе и выходе кодера) - с использованием какого-либо буфера (который, по идее, всё равно переполнится через несколько тактов?), с изменением ли скорости выходного потока, или каким-то другим методом? Да Вы уже ответили на свой вопрос (как говорится грамотно-заданный вопрос уже содержить 50% ответа, а может и все 70 :) ). Есть в физике такое уравнение непрерывности, которое можно применить и к теории информации: если есть некий буфер, через который проходят данные, то средняя скорость записи в буфер должна быть р авна средней скорости чтения из него, иначе неминуемо переполнение. Ухищрения типа увеличения частоты тактового сигнала это по факту означает увеличение средней скорости чтения из буфера. Чаще применяется программная обратная связь, в виде флага, который устанавливается при заполнении буфера, ее цель опять же выравнить скорости чтения и записи. А вывод такой: в любом случае, помехоустойчивое кодирование увеличивает символьную скорость в канале передачи или что там у Вас. Исключение составляет пожалуй такая пакетная передача, где символьная скорость на входе и выходе устройства одинаковая, а регулировка средней скорости осуществляется на этапе формирования пакетов (новый пакет не формируется пока не будет отправлен старый). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kovigor 5 23 ноября, 2015 Опубликовано 23 ноября, 2015 · Жалоба Буду премного благодарен толковым разъяснениям от опытных людей! :) Сделать управление потоком, как в COM - портах (протокол RTS/CTS или XON/XOFF). Т.е., сигнализировать тому, кто передает вашему устройству данные о том, что ваше устройство временно не готово их принимать ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться