Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 634620)
Контекстум
.

VHDL: Справочное пособие по основам языка (1500,00 руб.)

0   0
Первый авторБабак
АвторыФилоненко С.Ф.
ИздательствоМ.: ДМК Пресс
Страниц218
ID794712
АннотацияПредставляет собой вводный курс в язык VHDL и предназначена для быстрого ознакомления с базовыми концептуальными положениями этого языка. В данной книге приводятся базовые принципы параллельного программирования, положенные в основу языка VHDL, а также принципы организации VHDL-проекта и взаимосвязь компонентов проекта с физическими процессами, протекающими в реальных цифровых устройствах. Содержит многочисленные практические примеры проектирования цифровых устройств, в частности цифровых устройств специального назначения (криптопроцессоров). Рассчитана на студентов, изучающих язык VHDL, в том числе и в рамках учебных курсов, посвященных проектированию устройств защиты информации.
ISBN978-5-97060-826-5
УДК621.369.218
ББК32.884.1
Бабак, В.П. VHDL: Справочное пособие по основам языка / С.Ф. Филоненко; В.П. Бабак .— Москва : ДМК Пресс, 2020 .— 218 с. — ISBN 978-5-97060-826-5 .— URL: https://rucont.ru/efd/794712 (дата обращения: 19.04.2024)

Предпросмотр (выдержки из произведения)

VHDL_Справочное_пособие_по_основам_языка.pdf
Стр.3
Стр.4
Стр.5
Стр.6
Стр.7
Стр.8
VHDL_Справочное_пособие_по_основам_языка.pdf
УДК 621.369.218 ББК 32.884.1 Б12 Бабак В. П., Корченко А. Г., Тимошенко Н. П., Филоненко С. Ф. VHDL: Справочное пособие по основам языка. — М.: ДМК Пресс, 2020. — 216 с.: ил. (Серия Программируемые системы). ISBN 9785970608265 Представляет собой вводный курс в язык VHDL и предназначена для быстрого озна комления с базовыми концептуальными положениями этого языка. В данной книге приводятся базовые принципы параллельного программирования, положенные в основу языка VHDL, а также принципы организации VHDLпроекта и взаимосвязь компонен тов проекта с физическими процессами, протекающими в реальных цифровых устройствах. Содержит многочисленные практические примеры проектирования циф ровых устройств, в частности цифровых устройств специального назначения (крип топроцессоров). Рассчитана на студентов, изучающих язык VHDL, в том числе и в рамках учебных курсов, посвященных проектированию устройств защиты информации. УДК 621.369.218 ББК 32.884.1 Все права защищены. Никакая часть этого издания не может быть воспроизведена в любой форме или любыми средствами, электронными или механическими, включая фотографирование, ксерокопирование или иные средства копирования или сохранения информации, без письменного разрешения издательства. ISBN 9785970608265 ©Макет, «ДодэкаXXI» ® Серия «Программируемые системы» ©Издание, «ДМК Пресс», 2020
Стр.3
Оглавление IJ 3 Оглавление Принятые сокращения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Глава 1. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.1. Современные языки проектирования цифровых устройств . . . . . . . . . . . .9 1.2. Краткая характеристика языка VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10 1.3. Этапы проектирования с использованием VHDL . . . . . . . . . . . . . . . . . . . .13 Глава 2. Уровни представления и формы абстракции цифровых систем 14 Глава 3. Базовая структура VHDLфайла . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.1. Общие сведения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18 3.2. Объявление интерфейса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22 3.3. Архитектура проекта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26 3.3.1. Архитектура проекта в поведенческой форме. . . . . . . . . . . . . . . . . . . . . . . 26 3.3.2. Архитектура проекта в структурной форме . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.4. Библиотеки и пакеты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33 Глава 4. Лексические элементы языка VHDL . . . . . . . . . . . . . . . . . . . . . . 37 4.1. Идентификаторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37 4.2. Ключевые слова . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38 4.3. Зарезервированные слова . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39 4.4. Числа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40 4.5. Символы, cтроки и битовые строки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
Стр.4
4 IJ Оглавление Глава 5. Программные элементы данных: константы, переменные и сигналы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42 5.1. Константы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42 5.2. Переменные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43 5.3. Сигналы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44 Глава 6. Типы данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47 6.1. Встроенные типы данных пакета STANDARD. . . . . . . . . . . . . . . . . . . . . . .47 6.2. Пользовательские типы и подтипы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49 6.2.1.Физические типы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 6.2.2. Перечислимые типы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 6.2.3. Композитные пользовательские типы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 6.3. Преобразование типов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61 6.4. Атрибуты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64 6.4.1.Атрибуты сигналов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 6.4.2.Скалярные атрибуты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 6.4.3. Атрибуты массивов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Глава 7. Операции и символы операций . . . . . . . . . . . . . . . . . . . . . . . . . .69 7.1. Логические операции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70 7.2. Операции отношений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70 7.3. Операции сдвига. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71 7.4. Операции сложения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .72 7.5. Унарные операции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73 7.6. Операции умножения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73 7.7. Вспомогательные операции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74 7.8. Символы комментария . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75 7.9. Математические выражения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77 Глава 8. Поведенческая форма проекта: явно заданный оператор Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79 8.1. Явно заданный оператор PROCESS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79 8.2. Оператор условной передачи управления If . . . . . . . . . . . . . . . . . . . . . . . . .84 8.3. Оператор выбора CASE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86 8.4. Оператор цикла LOOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89 8.4.1. Базовая форма цикла. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 8.4.2. Итерационная форма цикла WHILE … LOOP . . . . . . . . . . . . . . . . . . . . . . 91 8.4.3. Итерационная форма цикла FOR … LOOP . . . . . . . . . . . . . . . . . . . . . . . . 92 8.4.4. Операторы NEXT и EXIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Стр.5
Оглавление IJ 5 8.5. Оператор ожидания WAIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .93 8.6. Оператор NULL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .94 8.7. Пример VHDLпроекта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .95 Глава 9. Поведенческая форма проекта: неявно заданный оператор PROCESS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 9.1. Простая параллельная установка значений сигналов . . . . . . . . . . . . . . . . .98 9.2. Условная установка значения сигнала. . . . . . . . . . . . . . . . . . . . . . . . . . . . .100 9.3. Селективная установка значений сигналов. . . . . . . . . . . . . . . . . . . . . . . . .102 Глава 10. Структурная форма проекта . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 10.1. Оператор COMPONENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106 10.2. Оператор PORT MAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .107 Глава 11. Примеры VHDLпроектов ЦУ различного назначения . . . . . 115 11.1. Проекты ЦУ общего назначения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .115 11.1.1. Логический элемент AND на 4 входа . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 11.1.2. Логический элемент OR на 2 входа. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 11.1.3. Логический элемент OR на 4 инверсных входа . . . . . . . . . . . . . . . . . . . 117 11.1.4. Логический элемент NOR на 3 входа . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 11.1.5. Логический элемент XOR на 2 входа . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 11.1.6. 4битный буфер — логический усилитель . . . . . . . . . . . . . . . . . . . . . . . . 121 11.1.7. 8битный буфер с тремя состояниями без обратной связи. . . . . . . . . . 122 11.1.8. 4канальный мультиплексор 4ė1 с сигналом разрешения выбора номера канала . . . . . . . . . . . . . . . . . . 122 11.1.9. Демультиплексор 1ė4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 11.1.10. 4битный последовательный сумматор с фиксированной точкой . . 124 11.1.11. 8битный сумматор с ускоренным переносом . . . . . . . . . . . . . . . . . . . 125 11.1.12. 4битный каскадный вычитатель с фиксированной точкой . . . . . . . 126 11.1.13. 8битный сумматор со сквозным переносом с учетом знаков битов 127 11.1.14. Универсальный параллельный арифметический процессор . . . . . . . 129 11.1.15.4битный компаратор с анализом знаков сравниваемых чисел и выбором режимов сравнения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 11.1.16. 8битный контроллер четности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 11.1.17. Простой Dтриггер, переключаемый передним фронтом тактового импульса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 11.1.18. Dтриггер с асинхронным сбросом . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 11.1.19. Dтриггер с асинхронной предустановкой . . . . . . . . . . . . . . . . . . . . . . 133 11.1.20. Dтриггер с асинхронным сбросом и асинхронной предустановкой 134 11.1.21. Dтриггер с синхронным сбросом . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 11.1.22. Dтриггер с синхронной предустановкой . . . . . . . . . . . . . . . . . . . . . . . 135
Стр.6
6 IJ Оглавление 11.1.23. Dтриггер с синхронным сбросом и сигналом, разрешающим приход очередного тактового импульса . . . . . . . . . . . . . . . . . . . . . . . . 136 11.1.24. Dтриггерзащелка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 11.1.25. Dтриггерзащелка со стробирующим сигналом . . . . . . . . . . . . . . . . 137 11.1.26. 8битный накапливающий счетчик со счетным входом и асинхронным сбросом . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 11.1.27. 8битный накапливающий счетчик с синхронной загрузкой и асинхронным сбросом. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 11.1.28. 8битный накапливающий/вычитающий счетчик с выбором направления счета . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 11.1.29.Nбитный накапливающий счетчик со счетным входом, синхронной загрузкой и асинхронным сбросом. . . . . . . . . . . . . . . . . 141 11.1.30.Синхронный 4битный циклический сдвиговый регистр вправо с параллельным входом и выходом. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 11.1.31. Универсальный синхронный 4битный сдвиговый регистр вправо с параллельным входом и выходом. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 11.1.32. Расширитель разрядности шины знаковыми разрядами . . . . . . . . . . 145 11.1.33. VHDLпроект расширителя разрядности шины нулями . . . . . . . . . . 147 11.1.34. 8битная двунаправленная шина с тремя состояниями . . . . . . . . . . . 148 11.1.35. Процессор возведения в степень N. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 11.1.36. Процессор нахождения факториала . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 11.1.37. Процессор нахождения натурального логарифма . . . . . . . . . . . . . . . . 150 11.1.38. Процессор нахождения квадратного корня. . . . . . . . . . . . . . . . . . . . . . 152 11.1.39. Процессор, конвертирующий 16ричные значения в данные типа std_logic_vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 11.2. Проекты ЦУ специального назначения . . . . . . . . . . . . . . . . . . . . . . . . . . .154 11.2.1. Генератор тактовых импульсов с периодом следования 100 нс и скважностью 50% . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 11.2.2. Комбинированный генератор псевдослучайных чисел с выходными значениями разных типов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 11.2.3. Многофункциональный конвертер типов данных. . . . . . . . . . . . . . . . . 156 11.2.4.Целочисленный мультипликативный криптопроцессор . . . . . . . . . . . 157 11.2.5. Символьный аддитивный криптопроцессор . . . . . . . . . . . . . . . . . . . . . 158 11.2.6. Подстановочный символьный криптопроцессор . . . . . . . . . . . . . . . . . 161 11.2.7.Перестановочный битовый криптопроцессор. . . . . . . . . . . . . . . . . . . . . 163 11.2.8.Криптопроцессор на базе сдвиговых операций. . . . . . . . . . . . . . . . . . . . 166 11.2.9. Криптопроцессор с многоуровневой системой шифрования, формульный метод . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 11.2.10. Криптопроцессор, реализующий метод эллиптических кривых . . . 170 11.3. Проекты ЦУ специального назначения повышенного уровня сложности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .177 11.3.1.Файловый криптопроцессор циклического сдвига . . . . . . . . . . . . . . . . 177 11.3.2. Файловый RSAкриптопроцессор . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Стр.7
Оглавление IJ 7 11.3.3. Файловый криптопроцессор Вижинера. . . . . . . . . . . . . . . . . . . . . . . . . . 192 Приложение. Основы языка VHDL в реферативном изложении . . . . . 199 П.1. Язык VHDL как универсальный язык проектирования ЦУ . . . . . . . . . .199 П.2. Концептуальные положения языка VHDL. . . . . . . . . . . . . . . . . . . . . . . . .201 П.3. Объявление интерфейса проекта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .204 П.4. Программные элементы данных языка VHDL . . . . . . . . . . . . . . . . . . . . .206 П.5. Поведенческая форма проекта на основе явно заданного оператора PROCESS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .210 П.6. Поведенческая форма проекта на основе неявно заданного оператора PROCESS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .212 П.7. Структурная форма проекта. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .214
Стр.8

Облако ключевых слов *


* - вычисляется автоматически
.
.