- •Панов, В.А.
- •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. Временная диаграмма моделирования работы КПД (код ГСК)
- •Оглавление
Временная диаграмма работы устройства представлена на рис. П1.17.
Рис. П1.17. Временная диаграмма функционирования счетчика
Как видно, спроектированное устройство работает правильно: счет чик считает от 0 до 18(19 тактов), затем сбрасывается в ноль.
1.16. Спроектировать и протестировать (временная симуляция) ана логичным образом формирователь временных интервалов TS_FORMER, формирующий необходимое число интервалов, шифратор единичного кода
в двоичный SFIFR, мультиплексор MX, кодер CODER_l 1__7_3 (исходные тексты на VHDL всех устройств приведены в приложениях). Назначение этих устройств и принцип работы передатчика рассмотрен в гл. 6.
2. Проектирование графического проекта на основе созданных на VHDL устройств
2.1. На данном этапе у нас спроектированы и откомпилированы уст ройства: счетчик импульсов, формирователь временных интервалов, шиф ратор, мультиплексор, кодер. Совместим их для примера в одном устрой стве - передатчик системы (в данном примере рассмотрен КПД с кодом ГСК).
Создать новый графический проект MAX+PLUS II\Graphic Editor, сохранить проект как c:\_lab\elements\tx\tx.gdf.
2.2.FileVProject\Set Project to Current File (см. рис. П1.4).
2.3.Теперь необходимо добавить пользовательскую библиотеку:
2.3.1.Создать каталог c:\_lab\lib.
2.3.2.Скопировать туда файлы, получившиеся при компиляции от дельных устройств с расширением *.vhd и *.sym (например, файлы *.vhd и *.sym из c:\_lab\elements\counter в c:\_lab\lib, аналогично - остальные эле менты).
2.3.3.Добавить пользовательскую библиотеку: Options\User Librar-
ies\Add.
В библиотеке примитивов (стандартная библиотека, рис. П1.19) можно выбрать вход (input) и выход (output). В библиотеке (рис. П1.20) те перь лежат все необходимые элементы для создания передатчика.
2.4. Поставить элементы и установить связи между ними, собирать передатчик.
fj
I
Рис. П1.21. Передатчик КПД
При работе в редакторе необходимо учитывать, что шины (обозначе ны жирной линией) обозначаются так, out_cnt[4..0] - обозначает шину раз рядностью 5 с выхода счетчика. Чтобы использовать один разряд с шины на вход CLK у TS_FORMER, просто пишем над этим входом out_cnt4 - для подключения четвертой линии шины. Также можно не устанавливать графически все связи, достаточно написать над входом устройства имя существующего пина, так например, сделаны входы у кодера: RESET и CLK - те же самые входы, что и у счетчика COUNTER. У TSJFORMER вход RESET сделан аналогично. А на управляющий вход мультиплексора также подаем выход с шифратора, написав на входе out_shifr[3..0]. Подпи сать вход можно установив курсор над ним (кликнуть один раз в нужное место) и введя текст с клавиатуры. Двойной щелчок по элементу откроет нам исходный код элемента на VHDL.
2.5.Указать серию FLEX 8000 и тип ПЛИС EPF8282ALC84-4 (Assign\Device), сняв предварительно галочку Show Only Fastest Speed Grades (см. рис. П1.5). Если не будет компилироваться, тогда указать устройство AUTO.
2.6.Сохранить и откомпилировать проект: File\Project\Save & com pile (ctrl+L) (см. рис. П1.6).
2.7.Указать Functional SNF Extractor вменю Processing и нажать старт (рис. П1.7). После перекомпиляции нужно снять галочку и закрыть компилятор.
2.8.Создать графический символ передатчика: File\Create Default.
Symbol. Это необходимо делать каждый раз, если были убраны или добавле ны какие-либо входы или выходы и перекомпилирован проект. При повтор ном создании символа появится предупреждение о перезаписи, нажать ОК.
2.9. Временное моделирование выполняется аналогично пп. 1.10-1.15. После компиляции проводится симуляция. Временная диаграмма
функ-ционирования передатчика КПД представлена на рис. П1.22.
Name:_______ Viluai_______6.5Bu« |
13.16и» |
19.74т |
2Б.32и» |
3 2 9 т |
39 48ui |
46 Оби» S2 64ui |
S9 22m |
BS8u« |
|||||
reset |
о |
---------------------------------------------------- ---------------------------------------------------------------------------- |
|
|
|
||||||||
аь*- сМс |
иЯЛЛЛЛЛЛЛЛ1ШЛЛПЛЛЛЛШЛЛЛШШШШШ1ШШ1Л[ШШЛШ1ШииШ |
||||||||||||
|
0 |
•' |
|
|
|
|
П |
—1 |
1 |
П 1 |
1 |
|
|
J* -T X 1 |
0 |
1 |
|
1 |
1 |
|
|
|
|
|
|||
D C |
о |
Ln |
_ |
|
|
|
|
|
|
|
|
||
о |
|
|
|
|
|
Г1. |
—1 |
1 |
|
r |
i n |
|
|
-и*. out_mi |
i _ n |
_ |
1 |
1 |
L |
i |
|
||||||
-£5> OUt_V |
0 |
u n |
J |
U |
П |
—1 |
II— |
n |
jпn_ л _ |
||||
S jir ouljs[9..0| |
|
Й _____ |
|
|
0000000001 |
|
i |
|
0000000010 |
X |
0000000100 |
J |
Рис. ГТ1.22. Временная диаграмма функционирования передатчика
После тестирования передатчика можно убрать «лишние» выходы, out_shifr, out_ts, out_mx, необходимые только для тестирования передатчи ка, перекомпилировать проект и пересоздать символ.
2.10.Скопировать файлы tx.gdf и tx.sym из каталога c:\_lab\elements\tx\ в каталог c:\_lab\lib, таким образом, добавить в пользо вательскую библиотеку передатчик.
2.11.Аналогичным образом собирается и проверяется приемник, также добавляется в библиотеку.
il
(см. рис. П1.5). Если не будет компилироваться, тогда указать устройство AUTO.
3.5.Сохранить и откомпилировать проект: File\Project\Save & com pile (ctrl+L) (см. рис. П1.6).
3.6.Указать Functional SNF Extractor вменю Processing и нажать старт (см. рис. П1.7). После перекомпиляции нужно снять галочку и за крыть компилятор.
3.7.Построить временные диаграммы, все делается аналогично
пп.1.10-1.15.
library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_arith.all;
entity counter is |
|
|
|
||
port ( |
|
in |
std__logic; |
||
|
elk, reset: |
||||
|
— число |
тактов 2*n=26: |
range 0 to 2*13-1 |
||
|
q: |
|
out |
integer |
|
end |
) ; |
|
|
|
|
counter; |
|
|
|
|
|
architecture behaviour of counter is |
|||||
begin |
(elk,reset) |
|
|||
|
process |
|
|||
|
variable |
i: |
integer; |
||
|
begin |
|
|
|
|
|
--сброс счетчика в начальное положение |
||||
|
if |
reset='0' |
then |
|
|
|
|
q <= 2*13-1; |
|
||
|
|
i := 2*13-1; |
then |
||
|
elsif rising_edge(elk) |
||||
|
|
— переполнение: |
|
||
|
|
if i=2*13-l then |
|
||
|
|
else |
:=0; |
|
|
|
|
i := i +l ; |
|
||
|
|
end |
|
||
|
|
if; |
|
|
|
|
end |
q <= |
i; |
|
|
|
if; |
|
|
|
|
end |
end process; |
|
|
|
|
behaviour; |
|
|
|