Глава 1. |
Введение | 16 |
|
Глава 2. |
Кодирование и системы счисления | 19 |
2.1. Коды | 19 |
2.2. Двоичный код | 20 |
2.3. Арифметические операции с фиксированной запятой в двоичной системе | 22 |
2.3.1. Целочисленное сложение в двоичной системе | 22 |
2.3.2. Сложение чисел с фиксированной запятой | 23 |
2.3.3. Представление с помощью обратного кода | 23 |
2.3.4. Представление с помощью двойного дополнения (точное дополнение, two's complement) | 24 |
2.3.5. Вычитание при представлении с помощью точного дополнения | 25 |
2.3.6. Переполнение числового диапазона | 26 |
2.3.7. Умножение | 27 |
2.3.8. Деление | 28 |
2.4. Шестнадцатеричный код | 29 |
2.5. Восьмеричный код | 30 |
2.6. Код Грея | 30 |
2.7. Двоично-десятичный код | 31 |
2.8. Алфавитно-цифровые коды | 32 |
2.9. Упражнения | 32 |
|
Глава 3. |
Переключательная алгебра | 34 |
3.1. Переключательная переменная и переключательная функция | 34 |
3.2. Двухразрядные переключательные функции | 36 |
3.3. Вычислительные правила | 38 |
3.4. Каноническая дизъюнктивная нормальная форма (KDNF) | 40 |
3.5. Каноническая конъюнктивная нормальная форма (KKNF) | 41 |
3.6. Представление функций с помощью KKNF и KDNF | 42 |
3.7. Минимизация с помощью переключательной алгебры | 44 |
3.8. Способ упрощённой записи | 45 |
3.9. Символическое обозначение логических элементов | 46 |
3.9.1. Основы структуры символов | 46 |
3.9.2. Индексация зависимости | 47 |
3.9.3. Зависимость вида И (G) | 47 |
3.9.4. Зависимость по типу ИЛИ (V) | 48 |
3.9.5. Зависимость по типу EXOR (N) | 49 |
3.9.6. Образующая соединение зависимость (Z) | 49 |
3.9.7. Зависимость с передачей (X) | 49 |
3.10. Упражнения | 50 |
|
Глава 4. |
Поведение логических вентилей | 52 |
4.1. Положительная и отрицательная логика | 53 |
4.2. Определение времени переключения | 54 |
4.3. Передаточная характеристика, запас по помехоустойчивости | 56 |
4.4. Вентили | 58 |
4.4.1. Вентили с открытым коллектором (open collector) | 60 |
4.4.2. Вентиль с тремя состояниями | 61 |
4.5. Упражнения | 62 |
|
Глава 5. |
Схемотехника | 64 |
5.1. КМОП | 64 |
5.1.1. Нагрузочная способность | 66 |
5.1.2. Основные схемы NAND и NOR | 67 |
5.1.3. Передаточный вентиль | 68 |
5.1.4. Элемент с тремя состояниями | 69 |
5.1.5. Специфические свойства КМОП | 69 |
5.2. ТТЛ | 71 |
5.2.1. Нагрузка выходов | 72 |
5.3. Эмиттерно-связанная логика | 73 |
5.4. Интегральная инжекционная логика (I2L) | 74 |
5.5. Рассеиваемая мощность и характеристики переключения транзисторных переключателей | 76 |
5.6. Упражнения | 78 |
|
Дополнение. |
Элементная база цифровых устройств. Энергетика обработки цифровой информации | 79 |
Д.1. Введение | 79 |
Д.2. Энергетика и скорость производства цифровой информации | 79 |
Д.2.1. Классификация вентилей как энергопотребителей | 81 |
Д.2.2. Общие вопросы энергетики цифровых вентилей | 84 |
Д.2.3. Скорость производства информации | 93 |
Д.З. Организация и энергетика цифровых схем без отношения | 105 |
Д.3.1. Общий принцип организации схем и схемотехнические разновидности | 106 |
Д.3.2. Энергетика производства информации | 114 |
Д.3.3. Мощностные характеристики | 116 |
Д.4. Схемотехнические и энергетические характеристики логических схем с отношением | 118 |
Д.4.1. Классификация базовых вентилей с отношением | 119 |
Д.4.2. Основные схемотехнические и структурно-топологические типы | 121 |
Д.4.3. Особенности обработки информации и энергопотребления | 128 |
Д.4.4. Особенности энергопотребления | 130 |
Д.5. Схемотехника логических вентилей на токовых ключах | 132 |
Д.5.1. Общий принцип схемотехнической организации и классификация | 133 |
Д.5.2. Интегральная инжекционная логика | 136 |
Д.5.3. Быстродействие и энергетика токовых ключей | 145 |
Д.6. Принципы организации частично диссипативных схем | 149 |
Д.6.1. Принцип адиабатического переключения | 150 |
Д.6.2. Статические CMOS вентили с коллапсирующим импульсным питанием | 153 |
Д.6.3. Вентили со ступенчатой перезарядкой выходной ёмкости | 157 |
Д.7. Вентили с нетрадиционной организацией энергопитания 161 |
Д.7.1. Питание ионизирующим излучением | 161 |
Д.7.2. Схемотехнические и структурно-топологические решения базовых логических вентилей, питающихся излучением | 165 |
Д.8. Заключение | 172 |
|
Глава 6. |
Логические схемы | 173 |
6.1. Минимизация с помощью диаграмм Карно-Вейча | 173 |
6.1.1. Минимизация KDNF | 173 |
6.1.2. Минимизация нормальной KKNF | 177 |
6.1.3. Диаграммы Карно-Вейча для 2, 3, 4, 5, 6 входных переменных | 178 |
6.1.4. Неполностью заданные функции | 178 |
6.2. Способ Квина-Мак-Класки | 180 |
6.3. Другие направления оптимизации | 184 |
6.3.1. Преобразование логической схемы И/ИЛИ в схему НЕ-И | 185 |
6.3.2. Преобразование логической схемы ИЛИ/И в логическую схему НЕ-ИЛИ | 186 |
6.4. Воздействие времени задержки на логические схемы | 187 |
6.4.1. Отрицательное воздействие на структуру | 187 |
6.4.2. Отрицательное воздействие на функционирование | 189 |
6.4.3. Классификация отрицательных воздействий | 190 |
6.5. Упражнения | 190 |
|
Глава 7. |
Асинхронные триггеры | 193 |
7.1. Принципиальные особенности структуры триггеров | 194 |
7.2. Анализ асинхронных триггеров | 194 |
7.3. Систематический анализ | 196 |
7.4. Анализ с учётом задержки вентилей | 198 |
7.5. Элементы ЗУ | 201 |
7.5.1. RS-триггер | 201 |
7.5.2. RS-триггер с тактовым входом | 201 |
7.5.3. D-триггер | 204 |
7.5.4. D-триггер с управлением по переднему фронту импульса | 205 |
7.5.5. Управление передним и задним фронтом | 210 |
7.5.6. J-K-триггер | 211 |
7.5.7. Т-триггер | 212 |
7.5.8. Пример | 213 |
7.5.9. Общее о триггерах | 213 |
7.6. Упражнения | 216 |
|
Глава 8. |
Синхронные драйверы | 219 |
8.1. Синтез драйверов (пример 1) | 219 |
8.1.1. Постановка задачи | 219 |
8.1.2. Формирование диаграммы состояний | 220 |
8.1.3. Структура схемы управления электромеханическими устройствами | 221 |
8.1.4. Формирование таблицы последовательности состояний | 222 |
8.1.5. Формирование таблицы запуска и таблицы выходных сигналов | 222 |
8.2. Синтез драйверов (пример 2) | 225 |
8.2.1. Постановка задачи | 225 |
8.2.2. Составление диаграммы состояний | 225 |
8.2.3. Составление таблицы последовательности состояний | 226 |
8.2.4. Разработка логической схемы для запускающих сигналов | 226 |
8.2.5. Полная таблица состояний | 227 |
8.2.6. Полная диаграмма состояний | 228 |
8.2.7. Временные характеристики драйверов | 229 |
8.3. Упражнения | 231 |
|
Глава 9. |
Мультиплексоры и преобразователи кода | 234 |
9.1. Мультиплексор | 234 |
9.1.1. Реализация функций мультиплексора | 235 |
9.2. Преобразователь кода | 238 |
9.2.1. Преобразователь двоично-десятичного кода в десятичный код 7442 | 239 |
9.2.2. Демультиплексор | 240 |
9.2.3. Генерирование наборов функций | 241 |
9.3. Аналоговые мультиплексоры и демультиплексоры | 243 |
9.4. Упражнения | 244 |
|
Глава 10. |
Цифровые счётчики | 247 |
10.1. Асинхронный счётчик | 247 |
10.1.1. Двоичный счётчик по модулю 8 | 247 |
10.1.2. Счётчик по модулю 6 | 248 |
10.1.3. Асинхронный обратный счётчик | 249 |
10.1.4. Временные характеристики асинхронных счётчиков | 250 |
10.2. Синхронные счётчики | 251 |
10.2.1. 4-битовый двоичный счётчик | 252 |
10.2.2. Счётчик по модулю 6 с использованием кода Грея | 254 |
10.2.3. Синхронный 4-битовый реверсивный двоичный счётчик 74191 | 256 |
10.3. Упражнения | 257 |
|
Глава 11. |
Сдвиговые регистры | 258 |
11.1. Временные характеристики сдвиговых регистров | 259 |
11.1.1. Сдвиговый регистр 74194 | 261 |
11.2. Сдвиговый регистр с обратной связью | 262 |
11.2.1. Счётчик Мёбиуса, счётчик Джонсона | 264 |
11.2.2. Псевдослучайные последовательности | 266 |
11.3. Упражнения | 268 |
|
Глава 12. |
Арифметические устройства | 269 |
12.1. Полный сумматор | 269 |
12.2. Последовательный сумматор | 269 |
12.3. Сумматор с последовательным переносом (ripple-cany-adder) | 270 |
12.4. Сумматор с параллельным переносом | 271 |
12.4.1. Каскадирование сумматоров с параллельным переносом | 274 |
12.4.2. Сравнение сумматоров | 275 |
12.5. Арифметико-логические вычислительные устройства (ALU, АЛУ) | 276 |
12.5.1. Примеры операции | 280 |
12.6. Компараторы | 283 |
12.6.1. 2-битовый компаратор | 284 |
12.6.2. Каскадируемые компараторы | 286 |
12.7. Упражнения | 286 |
|
Глава 13. |
Цифровые ЗУ | 288 |
13.1. Принципиальная структурная схема ЗУ | 289 |
13.2. ROM | 289 |
13.3. PROM | 291 |
13.4. EPROM | 292 |
13.5. EEPROM | 294 |
13.6. EAROM | 295 |
13.7. NOVRAM | 295 |
13.8. RAM | 296 |
13.8.1. Статическое RAM | 296 |
13.8.2. Пример работы RAM | 297 |
13.9. Динамическое RAM | 301 |
13.10. Квазистатическое DRAM | 306 |
13.11. ЗУ «пожарная цепочка» | 307 |
13.11.1. Примеры FIFO | 307 |
13.12. Каскадирование ЗУ | 308 |
13.13. Увеличение длины слов | 309 |
13.14. Увеличение ёмкости ЗУ | 309 |
13.14.1. Полное декодирование | 311 |
13.14.2. Частичное декодирование | 312 |
13.14.3. Линейное декодирование | 314 |
13.15. Упражнения | 315 |
|
Глава 14. |
Программируемые логические блоки | 318 |
14.1. Семейства ASIC | 319 |
14.2. Программируемые логические ИС (PLD) | 322 |
14.2.1. Типы PLD | 323 |
14.3. ROM, EPROM, EEPROM | 324 |
14.4. PLA | 326 |
14.5. PAL | 332 |
14.6. GAL | 334 |
14.7. Программирование логических блоков PLD | 337 |
14.7.1. Тестирование | 339 |
14.8. Программируемые полем вентильные матрицы (FPGA) | 339 |
14.8.1. Структура FPGA | 340 |
14.8.2. Конфигурируемые логические блоки (CLB) | 342 |
14.8.3. IO-блоки | 342 |
14.8.4. Соединительные линии | 343 |
14.8.5. Программирование FPGA | 344 |
14.9. EPLD | 345 |
14.9.1. Пример EPLD:CY7C343 | 345 |
14.10. Gate-Arrays | 345 |
14.10.1. Структура канализированных вентильных матриц | 346 |
14.11. ASIC со стандартными ячейками | 350 |
14.12. ASIC на основе полностью заказного проектирования | 351 |
14.13. Упражнения | 351 |
|
Глава 15. |
Принципы построения микропроцессоров | 353 |
15.1. Кооперирующиеся управляющие схемы | 353 |
15.2. Компьютер фон-Неймана | 354 |
15.3. Операционные блоки | 355 |
15.3.1. Архитектура операционных блоков | 355 |
15.3.2. Система шин | 357 |
15.4. Управляющие блоки | 358 |
15.5. Микропрограммирование | 360 |
15.6. Упражнения | 362 |
|
Глава 16. |
Структура, система команд и работа микропроцессора | 363 |
16.1. Структура микропроцессора | 363 |
16.2. Выводы 8085А | 366 |
16.3. Блоки ЗУ и периферийные блоки | 369 |
16.4. Периферийные блоки | 370 |
16.5. Параллельный интерфейс микропроцессора 8255 | 371 |
16.6. Процесс выполнения команд | 372 |
16.6.1. Цикл выборки операционного кода (OF) | 374 |
16.6.2. Цикл считывания памяти (MR, memory read) | 375 |
16.6.3. Цикл записи в ЗУ (MW, memory write) | 376 |
16.6.4. Пример выполнения команды | 377 |
16.7. Управление с помощью прерывания (interrupt) | 378 |
16.8. Ассемблерное программирование | 380 |
16.9. Набор команд | 380 |
16.10. Команда перехода | 381 |
16.10.1. Адресация типа «Register» | 381 |
16.10.2. Адресация типа «Register Indirect» | 382 |
16.10.3. Адресация типа «Immediate» | 383 |
16.10.4. Адресация типа «Direct» | 383 |
16.11. Арифметические команды | 384 |
16.12. Логические операции | 386 |
16.13. Установка и стирание флагов переноса (carry flag) | 387 |
16.14. Команды сдвига | 387 |
16.15. Разветвление программ | 387 |
16.15.1. Пример перехода | 388 |
16.16. Команды для подпрограммы | 389 |
16.17. Команды для управления процессором | 392 |
16.18. Ассемблерные команды | 394 |
16.19. Примеры программ | 397 |
16.19.1. Программирование параллельного интерфейса 8255 | 397 |
16.19.2. Передача данных в подпрограмму | 398 |
16.20. Упражнения | 400 |
|
А. Приложение | 401 |
А.1. Индикация функций | 401 |
|
Решения задач | 405 |
Литература | 427 |
Список технических терминов | 428 |