- •Панов, В.А.
- •2.1.2. Лексические элементы языка
- •2.1.2.1. Используемые символы
- •2.1.2.2. Идентификаторы
- •2.1.2.З. Комментарий
- •2.1.2.4. Литералы
- •2.1.3. Модели данных
- •2.1.З.1. Скалярные типы
- •2.1.З.2. Целый тип
- •2.1.З.З. Тип с плавающей точкой
- •2.1.З.4. Перечислительные типы
- •2.1.З.5. Физические типы
- •2.1.4. Операции
- •2.1.5. Операторы управления
- •2.1.6. Пакеты
- •3.2.2. Верификация
- •3.3.2. Стратегии проектирования
- •4.2.1.5. Декодер Меггита для укороченного кода
- •4.2.2. Групповые систематические коды (ГСК)
- •4.2.2.1. Построение кодеров ГСК
- •6.2.1. Декодер помехоустойчивого кода (канальный декодер)
- •6.2.2. Оборудование группообразования приемника
- •6.2.3. Тестирование приемника
- •6.3. Модель цифрового канала связи с помехой
- •7.1.7. Тестирование КПД
- •7.2.1. Расчет основных параметров
- •7.2.2. Проектирование передатчика
- •7.2.4. Формирователь КИ
- •7.2.5. Шифратор единичного кода в двоичный
- •7.2.6. Мультиплексор
- •7.2.9. Проектирование приемника
- •7.2.10. Тестирование приемника
- •7.2.12. Тестирование КПД
- •8. ВАРИАНТЫ ЗАДАНИЙ ДЛЯ КУРСОВОГО ПРОЕКТИРОВАНИЯ
- •9. СОДЕРЖАНИЕ ОТЧЕТА
- •СПИСОК ЛИТЕРАТУРЫ
- •2. Проектирование графического проекта на основе созданных на VHDL устройств
- •2. Описание на языке VHDL счетчика импульсов (до 19) передатчика
- •1. Описание на языке VHDL шифратора единичного кода в двоичный (длина единичного кода = 7)
- •2. Описание на языке VHDL шифратора единичного кода в двоичный (длина единичного кода = 10)
- •Описание на языке VHDL дешифратора двоичного кода в единичный
- •2. Описание на языке VHDL мультиплексора 10x1
- •2. Описание на языке VHDL последовательной реализации кодера ГСК (11,7,3)
- •Описание на языке VHDL устройства управления кодером ЦСК по g(x)
- •Описание на языке VHDL кодера ЦСК по h{x)
- •2. Описание на языке VHDL последовательной реализации декодера ГСК (11,7,3)
- •Описание на языке VHDL устройств управления декодером неукороченного кода ЦСК
- •Описание на языке VHDL устройств управления декодером укороченного кода ЦСК
- •2. Описание на языке VHDL демультиплексора 1x10
- •Описание на языке VHDL устройства, моделирующего ЦКС с помехой
- •1. Временная диаграмма моделирования работы КПД (код ЦСК)
- •2. Временная диаграмма моделирования работы КПД (код ГСК)
- •Оглавление
3.3.2. Стратегии проектирования
Пакет MAX+PLUS II позволяет реализовать как стратегию восходя щего проектирования, так и нисходящего. И та и другая стратегии подра зумевают использование поведенческих и структурных описаний модулей. При структурном описании модуль представляется в виде совокупности взаимосвязанных компонентов более низкого уровня в иерархии описаний. При поведенческом же описании задается алгоритм работы модуля.
Восходящее проектирование применимо в том случае, когда для соз даваемого устройства имеется детальное структурное описание (обычно принципиальная схема на микросхемах средней степени интеграции), вы полненное на элементном базисе, отличном от имеющегося в распоряже нии разработчика СБИС.
При этом разработчик решает следующие задачи:
-создание функциональных аналогов элементов, использованных в заданном структурном описании;
-отладка созданных компонентов;
-сборка созданных компонентов в единый модуль;
-моделирование и отладка устройств в целом.
Таким образом, в процессе проектирования разработчик сначала соз дает модули нижнего уровня в иерархии описаний, а затем модуль верхне го уровня. Отсюда и название стратегии проектирования.
Стратегия нисходящего проектирования применяется в том случае, когда задан алгоритм работы (поведенческое описание) создаваемого уст ройства и набор системных требований (максимальная тактовая частота работы, задержка распространения сигналов от входов до выходов, по требление энергии, стоимость и т.д.). При этом поведенческое описание может быть Как формализованным (блок-схема алгоритма, граф, таблица переходов и выходов и т.д.), так и неформализованным (словесное описа ние). Реализация нисходящего проектирования базируется на итерацион ном выполнении структурной декомпозиции.
Упрощенно, ориентируясь на возможности пакета MAX+PLUS II, процедура нисходящего проектирования выглядит следующим образом:
-разрабатывается архитектура СБИС. Исходное поведенческое описа ние преобразуется в структурное, элементами которого являются архитектурные блоки;
-архитектурные блоки либо описываются на поведенческом уровне (например с помощью языка VHDL), либо осуществляется их струк турная декомпозиция и создается структурное описание, элементами которого являются функциональные модули;
-далее Процедура итерационно повторяется до тех пор, пока все функциональные модули не будут описаны на поведенческом уров не;
-после этого осуществляется функциональное моделирование моду лей, имеющих поведенческие описания;
-далее - функциональное моделирование модулей, имеющих струк турное описание (модули, имеющие поведенческое описание, входят в них как компоненты);
-далее - моделирование и отладка устройства в целом.
Таким образом, в процессе проектирования разработчик опускается с верхнего уровня иерархии описаний, уровня СБИС, к нижним уровням. Отсюда и название стратегии проектирования.
Стратегия нисходящего проектирования при прочих равных услови ях (квалификация разработчика, используемые средства проектирования) имеет безусловные преимущества как по временным затратам на разработ ку, так и по качеству проработки проекта. Так, например, ее использование позволяет распараллелить работу на уровне архитектурных и функцио нальных модулей, легко локализовать источник ошибки в работе модуля или устройства в целом, быстро внести изменения в алгоритм работы мо дуля на любой стадии проектирования. Поэтому, если это возможно, пред почтение следует отдавать именно такому подходу к проектированию.
Однако независимо от выбранной стратегии проектирования для за дания структур и алгоритмов работы модулей целесообразно использовать текстовое описание, созданное на языке VHDL.
4. ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Рассмотрим основные понятия, определения и принципы, связанные с объектом проектирования.
4.1. Система передачи данных
Структурно на высшем уровне абстракции любую систему передачи данных (СПД) можно разбить на ряд блоков (рис. 4.1):
-ИИ - источник информации генерирует сообщения;
-Прд - передатчик, который преобразует информационные сообще ния в сигнал, пригодный для передачи на расстояние в конкретной физической среде;
-КС - канал связи, т.е. физическая среда, в которой передается сиг нал. В канале связи присутствуют различные помехи, искажающие передаваемый сигнал;
-Прм - приемник, который принимает сигнал из канала связи и рас познает переданное сообщение;
-ПИ - получатель (потребитель) информации (регистрирующее уст ройство, абонент, и т.д.).
Рис. 4.1. Структурная схема СПД
Блоки, осуществляющие непосредственно передачу сообщений от источника к потребителю (Прд, КС и Прм), принято выделять в отдельную подсистему - канал передачи данных (КПД).
4.1.1. Система телеизмерений (ТИ) и телесигнализации (ТС)
Рассмотрим в общем виде типовую систему телеизмерения и телесигнализации (рис. 4.2). На контролируемом пункте (КП) имеется удален ный объект управления, на котором установлены датчики (Д), измеряющие
ОУ -► д .
| |
КП 0Ш) |
Рис. 4.2. Система ТИ и ТС как СПД
значения ряда физических параметров объекта или сигнализирующие об авариях и других событиях. Измерители выдают цифровой код (отсчеты), а датчики сигнализации - биты информации («авария» = «1», «норма» = = «0»), которые также группируются в сообщения. Датчики опрашиваются с заданной частотой, и отсчеты посредством КПД передаются в пункт управления (ПУ), где распределяются и поступают на соответствующие устройства индикации (И) и регистрации (Р). В данном случае КП можно рассматривать как многоканальный источник информации, а ПУ - как многоканальный потребитель информации.
4.1.2. КПД системы ТИ и ТС
Рис. 4.3. Структура КПД системы ТИ и ТС
Рассмотрим подробнее структуру КПД многоканальной системы ТИ и ТС.
Передатчик содержит:
-подсистему сбора информации (ПССИ) - оборудование группообразования, которое производит опрос датчиков (отдельных источников информации) согласно установленной дисциплине обслуживания и формирует групповой сигнал;
-кодер помехоустойчивого кода (КПК), который добавляет к переда ваемым сообщениям избыточные символы для обеспечения помехо устойчивой передачи;
-канальный кодер (КК), который производит логическое и физиче
ское кодирование, преобразующее цифровой сигнал в сигнал, пере даваемый в канале связи.
Приемник содержит:
-канальный декодер (КДК), преобразующий принятый сигнал из ка нала связи в цифровую последовательность;
-декодер помехоустойчивого кода (КДПК), который обеспечивает обнаружение и (или) исправление ошибок в принятом сообщении, возникших из-за помехи в канале связи;
-подсистему распределения информации (ПСРИ) - оборудование группообразования, которое выделяет из принятого группового циф рового сигнала сообщения отдельных источников и направляет их к соответствующим потребителям информации.
Таким образом, КПД системы ТИ и ТС содержит цифровое оборудо вание, которое не зависит от конкретной среды передачи, и оборудование, согласующее передаваемый сигнал с каналом связи.
В приведенной структуре выделим цифровой передатчик (ЦПрд), цифровой приемник (ЦПрм) и цифровой канал связи (ЦКС), что позволяет в дальнейшем рассматривать приемник и передатчик как объекты проек тирования, не привязываясь к конкретной среде передачи и ограничиться цифровой схемотехникой на базе ПЛИС.
При этом цифровой канал связи представляет собой маску, которая инвертирует передаваемый бит информации с вероятностью, равной веро ятности ошибки на символ. Будем также полагать, что канал симметрич ный и ошибки независимы.
4.1.3. Технические характеристики КПД системы ТИ и ТС
Основными техническими характеристиками КПД системы ТИ и ТС являются:
-скорость передачи информации (бит/с) - количество бит полезной информации, передаваемой в единицу времени. Рассчитывается со гласно теореме Котельникова для восстановления измеренного сиг нала на приемной стороне;
-скорость передачи в канале связи (бит/с) - скорость изменения ма нипулированного параметра сигнала в канале связи. Ограничивается сверху полосой пропускания канала, снизу - минимальной допусти мой частотой опроса источников информации. Скорость передачи информации и скорость в канале связи могут не совпадать из-за до бавления избыточных символов при помехоустойчивом кодирова нии, применения многоуровневых кодов при цифровой передаче, и т.д.;
-надежность - вероятность передачи информации в заданных услови ях с заданной скоростью и точностью в течение заданного периода времени. Одним из методов повышения точности передачи, а следо вательно, и надежности системы в целом, является внесение избы точности в передаваемую информацию.
Величина синтаксической избыточности сообщения определяется как Лабе = Уд - Уол, где Уд - длина передаваемого закодированного сообще ния, Уод - минимально необходимая длина сообщения для передачи задан ного количества информации.
Для системы ТИ и ТС Лабс определяется используемым помехоустой чивым кодом, позволяющим обнаруживать и исправлять битовые ошибки определенной кратности для обеспечения заданной вероятности правиль ной передачи сообщения при данной вероятности ошибки на символ из-за помехи в канале связи.
4.2. Помехоустойчивое кодирование в КПД системы ТИ и ТС
Для помехоустойчивой передачи данных используют групповые ко ды, при этом по исходным информационным символам сообщения вычис ляются избыточные символы, которые при анализе на приемной стороне позволяют обнаружить и (или) исправить битовые ошибки, кратность ко торых определяется мощностью кода.
4.2.1.Циклические систематические коды (ЦСК)
Воснове циклических кодов лежит двоичная алгебра полиномов, для которой определены арифметические операции сложения, вычитания, ум ножения, деления и сравнения по модулю, например:
Сложение (по модулю два):
1 + 1=0; х' + х' =*'(1 + 1) = х1• 0 = 0;
(1 + х + х3) + (1 + х + х1) = 1 + 1 + х + х + х2 + х3= х2+ хг
Вычитание:
х ! - x J = х 1+ х ; (0 -1) = х; + х у(1 + 1-1) = х/ + х у
Умножение:
(1 + х)(1 + х + х2) = 1 + х + х2 + х + х2 + х3 = I + *3
Деление:
X 5 + X 2 + 1 X3 + X 2 + 1
х 5 + х 4 + х 2 х2 + Х + 1
х 4 +1
X4 + X3 + X
X3 + X + 1
Сравнение:
1 + x2 + x 5 sjc + x2(mod(l + x2 + x3)), где (x + x2) - вычет (остаток), (14x2 + x3) - модуль; />(х)(х"-1) = 0(mod(x2 -l));
1 + 1=0.
Пусть Уц - циклическое двоичное векторное пространство, замкну тое относительно операции суммы по модулю два и циклического сдвига
(Т): |
|
V = (а ^а и ...,ап_2,ап_{) е Уц о |
TV = (al9a2,...9an_l9a0)€ Vu, T V E Vu; |
VJ^ G V ^ V ^ V ^ V , . |
|
Эквивалентна запись: |
|
v = (a0,a......a„_,) о |
V(x) = a0+ a,x +...+ an_xx n~x |
Так как xn - 1 s 0(mod(x'1- |
1), то в алгебре полиномов A(mod(xn - |
- 1), 2) операция циклического сдвига имеет вид |
|
TV о K(x)x = a0x + a1x2 + ... + a„_2хл"1+ а„_1(хЛ-1 + 1) = |
|
= а„-\ +а0х + а1х 2 + ... + аЛ_2хп“1, T'V<=>F(x)x' |
|
Рассмотрим сравнение: |
|
Q(x) = P(x)g(x) + r(x) <=> £?(х) = r(x)modg(x), |
|
где g(x) = g0 +... + gkx k, r(x) = r0 +... + ^_,х*-1 |
Пусть полином g(x) таков, что
хи - l = g (x )/i(x )o x " -1 = 0(modg(x)), h(x) = h0 + ... + /7mxm, n = m + к,
тогда вектором циклического кода длины п в алгебре A(mod(xn - 1),2) бу дет являться полином, разложенный в базисе {0,g(x),xg(x),...,xm_1g(x)}, т.е. полином степени меньше п, делящийся без остатка Hag(x):
с/неч = 2s +1 - минимальное кодовое расстояние. Для кодов, исправляю щих и обнаруживающих ошибки: d4tr = s + r + l = 2s*+2.
Первая теорема БЧХ: для любых натуральных чисел А и s существу ет циклический код длины n = 2h -1 , причем на каждый исправляемый символ приходится как минимум Л избыточных символов, т.е. к < sA, где к = п - т - общее число избыточных символов. Таким образом:
п - к ^ ти => 2h - I - sh> ти
или
*min = Л + 1, ^ = 2А- ‘ - 1, 5тах = 2А- 2 - 1,
задачу решают подбором.
Вторая теорема БЧХ: все полиномы циклического кода делятся без остатка на полином g(x) и имеют с ним s общих корней из ряда {ос,а3,...,а25"1}. Каждому корню соответствует минимальный многочлен степени не больше А:
£(*) = П*и2/-1(*)=>* i=i
В случае четного минимального кодового расстояния (режим ис правления и обнаружения ошибок) необходимо перейти от циклического
кода (п = 2Л-1, /я, с/неч = 2s +1) к псевдоциклическому коду (п = 2н - 1,
т - 1, d4CT = 2s + 2), преобразовав порождающий полином: g'(jc) = = g(*)(l + х), к' = к +1.
Если т > mHi то целесообразно перейти к укороченному коду:
(n,m,d)—f~w~wH >(я _ / >ти = m - i, d ) .
В этом случае к = const и порождающий полином остается прежним.
4.2.1.2. Построение кодеров ЦСК по g(x) с предварительным умножением на х к
При кодировании избыточные символы находятся как остаток от де ления, согласно выражению
Гк(*) = U(x)-х" (mod g(x)).
Делитель организуется на основе регистра с линейными логическими обратными связями (РЛЛОС) со встроенными сумматорами.
Рассмотрим пример.
Задание: закодировать сообщение длиной тн = 8. Обеспечить ис правление s —1 и обнаружение г = 2 ошибок.
Решение. В случае исправления и обнаружения ошибок: d4eT = s + r+ \= z \ + 2 + \ = 4 = 2s + 2\
/z = 3 => 23 - 1 - 1 - 3 = 4 < 8 - недостаточно; А = 4 =>24- 1- 1- 4 =11 >8 =>(15, 11,3).
Переходим к четному минимальному кодовому расстоянию: (15,10,4).
Укорачиваем код: (15,10,4)— 1=2 >(13,8,4).
Из таблицы минимальных многочленов (приложение 18) для А= 4 находим:
g(x) = т{ (х) = х 4 + х +1 = (11001),
g ’(x) = (х4 + х + 1)(лг +1) = х 5 + х 4 + х 2 +1 = (101011).
Закодируем вектор U = (0101010101) (неукороченный код):
lOlOlOlOlOOOOOOl П0101
110101 1101101000
1 1 1 1 1 1
110101
101001
110101
111000
110101
110100
110101
01000 = г(х)
V(х) = r(x) + U(х) ■X s = (0001010101010101).
В случае укороченного кода U = (01010101).
1010101000000 |
110101 |
110101 |
п о п о ю |
111111
110101
101000
110101
111010
110101
111100
110101
10010 = r(x)
V(x) = r(x) + U(x) • *5 = (0100110 10 10 101).
Аналогично получаем множество тестовых кодовых векторов (табл. 4.1).
Таблица 4.1 Кодовые векторы (13, 8, 4)
Рис. 4.4. Структурная схема кодера (15, 10,4) по #(*) с предварительным умножением налг
Во время кодирования Y = 1 первые т тактов и У= 0 на (т+1) л-м тактах.
Кодер строится на базе РЛЛОС с вынесенными сумматорами (рис. 4.7).
Рис. 4.7. Структурная схема кодера (15,10,4) по h(x)
Пример. Для кода (15,10,4) проверочный полином:
h(x) = (х15 -1 ) / g '(х) = х 10+ х9 + X s + х 6+ х 5+ х 24-1.
* ,5 - 1 |
x s + x * + x 2 + l |
х , ! + / п ,2 + / |
х 10 + х 9 + дг8 + х 6 + X s + д:2 + 1 |
*,4+ *12+;с10+1
д;13 + дс12 + дсп + *10 +х9+1
Х" + Х” +Х">+Х'
JC11+х9+ДС8 +1
д:10 +дг9 + дгб +1
х ]0 +х9 +х7 +х5
д:7 + дсб + дг5 +1
х1+ дг6 +д:4 +дг2
д:5 Н- л:4 + дг2 +1
0
Во время кодирования Y = 0 первые т тактов (загрузка сдвигового регистра) и Y= 1 последующие п тактов (непосредственно кодирование).
На рис. 4.8 приведена временная диаграмма моделирования работы кодера (15, 10, 4) при U=(1010101010).