Мегаобучалка Главная | О нас | Обратная связь


Тема: Проектирование устройств с Z-состоянием выхода



2016-09-16 662 Обсуждений (0)
Тема: Проектирование устройств с Z-состоянием выхода 0.00 из 5.00 0 оценок




В связи с большим объемом заданий на занятие отводится 2 часа

Цель работы:

Получение навыков синтеза различных комбинационных устройств с помощью языка описания аппаратуры AHDL в САПР Altera MAX+PLUS II.

Задачи:

С помощью текстового редактора (Text Editor) синтезировать комбинационные схемы преобразователя кода, сдвигающего регистра с параллельной загрузкой и дешифратора адреса с заданными параметрами. Подключить их к двунаправленной шине данных в режиме графического редактора (Graphic Editor) и произвести исследование особенностей работы элементов с выходами, имеющими Z-состояние. Произвести измерение временных параметров полученной схемы (Simulator).

Выполнение работы:

Выполнение практической работы можно разделить на следующие этапы:

1. Расшифровав вариант (Приложение 3, свой вариант), получаем типы комбинационных устройств, входящих в состав схемы, и условия, которые необходимо учитывать при их синтезе.

2. С помощью текстового редактора (Text Editor) синтезируется заданный тип преобразователя кода с раздельными входами и выходами. Далее:

· полученный файл компилируется (Compiler) и его работа проверяется в Simulator;

· Используя буфер выхода с Z-состоянием TRI устройство преобразуется для работы с двунаправленной шиной BIDIR;

· полученный файл компилируется (Compiler) и его работа проверяется в Simulator;

· создается символ преобразователя кода через подменю «Project», в котором следует выбрать пункт «Create Default Symbol».

3. С помощью текстового редактора (Text Editor) синтезируется заданный тип регистра с раздельными входами и выходами. Далее:

· полученный файл компилируется (Compiler) и его работа проверяется в Simulator;

· Используя буфер выхода с Z-состоянием TRI устройство преобразуется для работы с двунаправленной шиной BIDIR;

· полученный файл компилируется (Compiler) и его работа проверяется в Simulator;

· создается символ регистра через подменю «Project», в котором следует выбрать пункт «Create Default Symbol».

4. С помощью текстового редактора (Text Editor) синтезируется дешифратор адреса с заданными параметрами. Полученный файл компилируется (Compiler) и его работа проверяется в Simulator.

5. С использованием графического редактора пакета MAX+PLUS (Graphic Editor) строится схема, состоящая из символов синтезированных устройств, с присоединенными к ним элементами входов и выходов. ВНИМАНИЕ: Имя проекта ни в коем случае не должно совпадать с именами символов синтезированных устройств!

6. Выполняется компилирование схемы (Compiler).

7. С помощью редактора WaveForm Editor задаются внешние воздействия, необходимые для проверки работоспособности схемы. В данном случае могут использоваться заготовки, полученные при проверке устройств, входящих в состав схемы.

8. Запускается симулятор работы схемы (Simulator).

9. Измеряются временные задержки, возникающие при работе схемы. Измерение задержек можно проводить как вручную в WaveForm Editor, так и с помощью Timing Analyzer.

Требования к защите работы:

1. Демонстрация схемы и результатов моделирования как каждого комбинационного устройства, так и всей схемы целиком на компьютере.

2. Отчет по практической работе (оформленный в соответствии с Приложением 4).

3. Правильные ответы на вопросы преподавателя по теме работы.

Пример выполнения практической работы:

Задание:

Вариант №0 - 0хD02C84. Необходимо синтезировать схему, состоящую из 2-х устройств, подсоединенных к двунаправленной шине. Выбор какое из устройств в данный момент подключено к шине осуществляется с помощью дешифратора адреса. Управление устройствами осуществляется с помощью внешних сигналов.

Выполнение работы:

Получаем данные, необходимые для синтеза комбинационных устройств. Вариант расшифровывается следующим образом:

0хD02C84 = 11010000’00101100’10000100

Первые 2 байта задают адреса, на которые реагирует дешифратор адреса:

· 11010000 – адресами устройства Регистр являются 4, 6, 7 (при этом дешифратор выдает 1 на линию CS). Т.е. номер бита в байте и является тем адресом, в котором дешифратор должен выдавать 1.

· 00101100– адресами устройства Преобразователь Кода являются 2, 3, 5 (при этом дешифратор выдает 1 на линию CS1)

Третий байт отвечает за виды устройств в схеме и способы их синтеза:

10000100 = 1,0,0,0,010,0

6-5 3-1
TRI_Р Регистр TRI_ПК Преобр.Кода ДшА

ДшА (1 бит) – Задает вид синтеза дешифратора адреса:

· 0 – булево выражение (в примере ниже будет использоваться для синтеза CS, CS1);

· 1 – конструкция IF THEN.

Преобр.Кода (3 бита) – Задает тип преобразователя кода:

· 000– BIN => BCD;

· 001 –BIN => код Грея;

· 010 – BIN => код для 7-ми сегментного индикатора;

· 011 –BIN => код для 7-ми сегментного индикатора + точка;

· 100 –BIN =>Дополнительный код;

· 101 -BCD => BIN;

· 110 -код Грея =>BIN;

· 111 - Дополнительный код => BIN.

ВНИМАНИЕ: Преобразователь Кода должен работать с 8-ми разрядными данными. Исключение составляют лишь Преобр.Кода для работы с 7-ми сегментным индикатором, в котором из двунаправленной 8-ми разрядной шины данных используется только 4 (для индикатора без точки) или 5 (для индикатора с точкой) линий.

TRI_ПК(1 бит) – Задает вид синтеза буферов выхода с Z-состоянием, которые будут использоваться в преобразователе кода.

· 0 – так как указано в Altera MAX+PLUS Help в разделе Implementing Bidirectional Pins, см. SUBDESIGN bus_reg2 (в примере ниже будет использоваться при синтезе устройства преобразователе кода 7segm);

· 1 -так как указано в Altera MAX+PLUS Help в разделе Implementing Bidirectional Pins, см. SUBDESIGN bus_reg3 (в примере ниже будет использоваться при синтезе устройства Registr).

Регистр(2 бита) – Задает тип синтезируемого регистра:

· 00– 8-ми разрядный циклический сдвигающий регистр с параллельной загрузкой (сдвиг осуществляется влево);

· 01– 8-ми разрядный циклический сдвигающий регистр с параллельной загрузкой (сдвиг осуществляется вправо);

· 10- 8-ми разрядный сдвигающий регистр с параллельным выходом (сдвиг осуществляется влево);

· 11- 8-ми разрядный сдвигающий регистр с параллельным выходом (сдвиг осуществляется вправо).

TRI_P(1 бит) – Задает вид синтеза буферов выхода с Z-состоянием, которые будут использоваться в устройстве Регистр.

· 0 – так как указано в Altera MAX+PLUS Help в разделе Implementing Bidirectional Pins, см. SUBDESIGN bus_reg2 (в примере ниже будет использоваться при синтезе устройства преобразователе кода 7segm);

· 1 -так как указано в Altera MAX+PLUS Help в разделе Implementing Bidirectional Pins, см. SUBDESIGN bus_reg3.

Следовательно, нам необходимо синтезировать схему с 8-ми разрядным преобразователем кода из двоичных чисел в коды 7-ми сегментного индикатора и буферами выхода по методу bus_reg2, с 8-ми разрядным циклическим сдвигающим влево регистром с параллельной загрузкой и буферами выхода по методу bus_reg3и с дешифратором адреса на основе булева выражения.

С помощью текстового редактора (Text Editor) синтезируем заданный тип преобразователя кода. Код необходимый для синтеза преобразователем кода из двоичных чисел в коды семисегментного индикатора и буферами выхода по методу bus_reg2и получившийся символ устройства приведены на рис.3-1:

SUBDESIGN 7segm ( i[8..1]: bidir; en_din, clk, cs: input;) VARIABLE tt[4..1]: dffe; t[8..1]: node; BEGIN tt[].d = i[4..1]; tt[].clk = clk; tt[].ena = cs AND !en_din; TABLE tt[] => t7, t6, t5, t4, t3, t2, t1; H"0" => 1, 1, 1, 1, 1, 1, 0; H"1" => 0, 1, 1, 0, 0, 0, 0; H"2" => 1, 1, 0, 1, 1, 0, 1; H"3" => 1, 1, 1, 1, 0, 0, 1; H"4" => 0, 1, 1, 0, 0, 1, 1; H"5" => 1, 0, 1, 1, 0, 1, 1; H"6" => 1, 0, 1, 1, 1, 1, 1; H"7" => 1, 1, 1, 0, 0, 0, 0; H"8" => 1, 1, 1, 1, 1, 1, 1; H"9" => 1, 1, 1, 1, 0, 1, 1; H"A" => 1, 1, 1, 0, 1, 1, 1; H"B" => 0, 0, 1, 1, 1, 1, 1; H"C" => 1, 0, 0, 1, 1, 1, 0; H"D" => 0, 1, 1, 1, 1, 0, 1; H"E" => 1, 0, 0, 1, 1, 1, 1; H"F" => 1, 0, 0, 0, 1, 1, 1; END TABLE; t8 = gnd; FOR j IN 1 TO 8 GENERATE i[j] = TRI(.in=t[j], .oe=cs & en_din); END GENERATE; END;   Рис.3-1. Преобразователь кода

 

В редакторе Waveform Editor строим диаграмму входных воздействий:

Рис.3-2. Входные сигналы и отклик преобразователя кода

 

Из диаграммы на рис.3-2 видно, что пока устройство не выбрано (CS=0) никакие сигналы на выходы двунаправленной шины I[8..1] с него не поступают. Таким образом, выходы двунаправленной шины I[8..1] повторяют значения входов шины I[8..1]. При CS=1 устройство начинает работать (происходит защелкивание данных с входов I[8..1] и преобразование кода), но данные на выход двунаправленной шины I[8..1] поступают только в моменты, когда она переключается на вывод с помощью сигнала en_din=1. При этом входы двунаправленной шины I[8..1] переходят в Z-состояние, а на выходах появляются результаты работы устройства.

Далее, с помощью текстового редактора (Text Editor) синтезируем заданный тип регистра. Код необходимый для синтеза циклического сдвигающего влево регистра с параллельной загрузкой и буферами выхода по методу bus_reg3и получившийся символ устройства приведены на рис.3-3:

 

SUBDESIGN registr ( Data[8..1]: bidir; clk, load, en_din, cs: input;) VARIABLE FF[8..1]: DFFE; Tri_[8..1]: TRI; BEGIN FF[].clk = clk; FF[].ena = cs; if Load==1 then FF[].D = Data[]; else FF[].D = (FF[7..1].Q, FF[8].q); end if; Tri_[].in = FF[].Q; Tri_[].oe = cs & en_din; Data[] = Tri_[].out; END;   Рис.3-3. 8-ми разрядный циклический сдвигающий регистр

 

В редакторе Waveform Editor строим диаграмму входных воздействий:

 

Рис.3-4. Входные сигналы и отклик циклического сдвигающего регистра

 

Из диаграммы на рис.3-4видно, что пока устройство не выбрано (CS=0), никакие сигналы на выходы двунаправленной шины Data[8..1] с него не поступают. Таким образом, выходы двунаправленной шины Data[8..1] повторяют значения входов шины Data[8..1]. При CS=1 устройство начинает работать (по сигналу load=1 происходит защелкивание данных с входов Data[8..1] и при load=0, осуществляется циклический сдвиг влево), но данные на выход двунаправленной шины Data[8..1] поступают только в моменты, когда она переключается на вывод с помощью сигнала en_din=1. При этом входы двунаправленной шины Data[8..1] переходят в Z-состояние, а на выходах появляются результаты работы устройства.

Теперь, с помощью текстового редактора (Text Editor), используя булевы выражения, синтезируем дешифратор адреса:

SUBDESIGN addr ( Addr[3..1] : INPUT; CS : OUTPUT; -- 4, 6, 7 CS1 : OUTPUT; -- 2, 3, 5 ) BEGIN CS = (Addr[] == b"1XX") & (Addr[] != b"101"); CS1 = (Addr[] == b"01X") # (Addr[] == b"101"); END;     Рис.3-5. Дешифратор адреса

В редакторе Waveform Editor строим диаграмму входных воздействий и проверяем правильность выработки сигналов, которые будут отвечать за выбор того или иного устройства нашей схемы:

Рис.3-6. Входные сигналы и отклик дешифратора адреса

Используя графический редактор (Graphic Editor) строим итоговую схему, состоящую из символов синтезированных устройств, с присоединенными к ним элементами входов и выходов (рис.3-7).

 

Рис.3-7 Итоговая схема устройства в редакторе Graphic Editor

В редакторе Waveform Editor строим диаграмму входных воздействий и проверяем правильность работы схемы в целом. При этом можно использовать заготовки, полученные при проверке устройств, входящих в состав схемы. Результаты симуляции приведены на рис.3-8 и рис.3-9.

 

Рис.3-8. Входные сигналы и отклик итоговой схемы устройства

Рис.3-9. Входные сигналы и отклик итоговой схемы устройства

Из диаграммы на рис.3-8 видно, что пока ни одно из устройств, входящих в состав схемы, не выбрано (Addr[3..1] не равен ни одному из адресов этих устройств – в данном случае это при Addr[3..1]=0), они никак не вмешиваются в сигналы на выходах двунаправленной шины IO[8..1] с него не поступают. Таким образом выходы двунаправленной шины IO[8..1] повторяют значения входов шины IO[8..1]. При Addr[3..1]=5 начинает работать преобразователь кода (происходит защелкивание данных с входов IO[8..1] и преобразование кода), но данные на выход двунаправленной шины IO[8..1] поступают только в моменты, когда она переключается на вывод с помощью сигнала оe1=1. При этом входы двунаправленной шины IO[8..1] переходят в Z-состояние, а на выходах появляются результаты работы преобразователя кода. При Addr[3..1]=6 начинает работать циклический сдвигающий регистр (по сигналу load=1 происходит защелкивание данных с входов IO[8..1] и, при load=0, осуществляется циклический сдвиг влево), но данные на выход двунаправленной шины IO[8..1] поступают только в моменты, когда она переключается на вывод с помощью сигнала оe=1. При этом входы двунаправленной шины IO[8..1] переходят в Z-состояние, а на выходах появляются результаты работы устройства.

Диаграмма на рис.3-9, доказывает, что работа устройств, входящих в состав схемы, с двунаправленной шиной IO[8..1] и их реакция на селектирующий сигнал Addr[3..1] реализованы правильно и полноценно, т.к. видно, что никакие сигналы не только на шине IO[8..1], но и на управляющих линиях не влияют на устройства до тех пор, пока одно из них не будет выбрано.

Вопросы к работе:

1) Что такое Z-состояние?

2) Как работает буфер с Z-состоянием TRI?

Приложение 1.

Варианты для практического занятия № 1

Вариант № Начало диапазона Конец диапазона Исключение Вариант № Начало диапазона Конец диапазона Исключение
0xF00 0xF0F 0xF06, 0xF0A 0x502 0x50A 0x505, 0x504
0xF10 0xF1E 0xF1A, 0xF1B 0x41C 0x41F 0x41D, 0x41E
0xD23 0xD2F 0xD28, 0xD29 0x328 0x32C 0x329, 0x32A
0xC30 0xC34 0xC30, 0xC33 0x230 0x23E 0x23A, 0x23C
0xB41 0xB4E 0xB44, 0xB4D 0x143 0x14B 0x145, 0x149
0xA55 0xA59 0xA57, 0xA58 0x051 0x05A 0x053, 0x054
0x961 0x96F 0x964, 0x96B 0xF69 0xF6F 0xF6A, 0xF6E
0x873 0x87D 0x876, 0x87A 0xE73 0xE7E 0xE75, 0xE7A
0x78A 0x78F 0x78B, 0x78C 0xD81 0xD8D 0xD82, 0xD84
0x692 0x699 0x696, 0x697 0xC90 0xC9C 0xC93, 0xC98
0x5A7 0x5AF 0x5A9, 0x5AC 0xBA5 0xBAB 0xBA8, 0xBAA
0x4B4 0x4B8 0x4B5, 0x4B6 0xAB4 0xABA 0xAB8, 0xAB9
0x3C8 0x3CE 0x3CA, 0x3CB 0x9C2 0x9C9 0x9C7, 0x9C8
0x2D3 0x2DC 0x2D6, 0x2DA 0x8DA 0x8DE 0x8DB, 0x8DC
0x1E4 0x1EB 0x1E6, 0x1E9 0x7E4 0x7E8 0x7E6, 0x7E7
0x0FB 0x0FF 0x0FE, 0x0FD 0x6F1 0x6F7 0x6F4, 0x6F5
0xFE1 0xFE9 0xFE2, 0xFE6 0xF45 0xF4F 0xF45, 0xF49
0xED0 0xEDA 0xED4, 0xED8 0xE54 0xE57 0xE55, 0xE56
0xDC2 0xDCB 0xDC5, 0xDC9 0xD38 0xD3D 0xD39, 0xD3A
0xCB4 0xCBF 0xCB8, 0xCBB 0xC60 0xC66 0xC63, 0xC65
0xB00 0xB05 0xB02, 0xB03 0xB19 0xB1E 0xB1A, 0xB1C
0xA95 0xA9D 0xA97, 0xA9A 0xA21 0xA29 0xA25, 0xA28
0x988 0x98F 0x989, 0x98B 0x953 0x958 0x955, 0x957
0x861 0x86E 0x868, 0x86A 0x864 0x867 0x865, 0x866
0x753 0x759 0x755, 0x757 0x775 0x77C 0x777, 0x779
0x64A 0x64F 0x64B, 0x64C 0x641 0x64E 0x645, 0x64B
0x531 0x535 0x532, 0x534 0x51B 0x51F 0x51C, 0x51E
0x424 0x42B 0x427, 0x428 0x42C 0x42F 0x42D, 0x42E
0x315 0x31A 0x318, 0x319 0x34A 0x34F 0x34B, 0x34D
0x201 0x207 0x203, 0x206 0x280 0x285 0x283, 0x284
0x1F2 0x1FA 0x1F6, 0x1F9 0x102 0x109 0x107, 0x108
0x0E9 0x0EF 0x0EA, 0x0EC 0x045 0x04A 0x046, 0x048

Приложение 2.

Варианты для практического занятия № 2

Вариант № Код переходов Вариант № Код переходов Вариант № Код переходов
7D44 2ED4 D1A2
63A5 7FB6 2F3E
F13A 55A4 -> 57A4
E37C E767
591A 2F72 E93E
135B E137
4AE2 F785 A378
E2B6 A37E CBE2
A7F2 9EF2 1FF4
BC34 38DA 3A69
25E3 C2A5 -> C3A5 3B55
4AF4 593A
A9B2 -> E1B2 DEBE
F3A2 B7AD D516
C54F A169 E132
456E 9FB8 -> D7B8 A65E
2D2A ->2D6A 3BB2 F8D8
F78B 187A A7E9
531F 633A 79A3
7E85 989B 2E35
ADFF 7A3E BB36
EA96 3E9F
39AD A3E3 437A
69A2 B969 3AEB
D398 694E
3F48 F1E7 AE8F
18F4 ->18F2 19D6 CDE4
B869 2FBA 45F8
5FAE
F839 9B4F 3E24
D694 A782 D25F
E7F2 32E5 E4A5

Приложение 3.

Варианты для практических занятий №№ 3, 4

Вариант № Код задания Вариант № Код задания Вариант № Код задания
718C3E D1248D 07380A
708BC0 F904F0 B9021F
19604F 9D021A 6D120E
C51222 BB44CF 78022B
F9066B 8E617E 0E30A9
2001BD A51A05 150AFD
6C016F B50294 EC01CC
CD20AC 8A2007 9E4077
25C00B DF2017 7481CC
8D2068 A80283 F80374
9E2165 F0026B D0290A
C7103B E51875 FC0119
6F10E8 AC517E 62915B
BC43EE 2091EE B708EA
45BA21 8F50F2
F5023A 16A82B AC13B8
FD0237 3A459E A95457
8815BB D205F7 2ED153
9220EB 6E915A E71071
B84464 C6291C
CD2234 9A201A B94010
002C40 1042CE AE4057
D92653 F10C2C
7580C2 D5221D 55085A
952A96 E00B20 8D224F
40AD72 F5083E
BE0193 A21C00 47800A
7580B8 1B40C1 9D6288
EE104D 01B8B6
AE50B0
61966A 47986D
811E7D EF1042 CC030C

Приложение 4.



2016-09-16 662 Обсуждений (0)
Тема: Проектирование устройств с Z-состоянием выхода 0.00 из 5.00 0 оценок









Обсуждение в статье: Тема: Проектирование устройств с Z-состоянием выхода

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...
Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе...
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (662)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.008 сек.)