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

ПЛИС фирмы Altera: элементная база, система проектирования и языки описания аппаратуры (2000,00 руб.)

0   0
Первый авторСтешенко
ИздательствоМ.: ДМК Пресс
Страниц575
ID795172
АннотацияВ книге рассмотрены вопросы практического применения ПЛИС фирмы «Altera» при разработке цифровых устройств. Приведены краткие сведения об особенностях архитектуры и временных параметрах устройств. Рассмотрены САПР MAX+PLUS II и Quartus, языки описания аппаратуры AHDL, VHDL, VERILOG HDL. Приводятся примеры описания цифровых устройств на языках высокого уровня, а также примеры реализации некоторых алгоритмов. Приведены сведения о современных интерфейсах передачи данных, даны рекомендации по разработке печатных плат. Цель книги — помочь начинающему разработчику в выборе элементной базы и дать представление о технологии проектирования устройств на ПЛИС.
ISBN978-5-97060-342-0
УДК621.3.049.77
ББК32.844-02
Стешенко, В.Б. ПЛИС фирмы Altera: элементная база, система проектирования и языки описания аппаратуры / В.Б. Стешенко .— 3-е изд. — Москва : ДМК Пресс, 2015 .— 575 с. — ISBN 978-5-97060-342-0 .— URL: https://rucont.ru/efd/795172 (дата обращения: 25.04.2024)

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

ПЛИС_фирмы_Altera_элементная_база,_система_проектирования_и_языки_описания_аппаратуры.pdf
УДК 621.3.049.77 ББК 32.84402 C79 C79 Стешенко В.Б. ПЛИС фирмы Altera: элементная база, система проектирова ния и языки описания аппаратуры. — М.: ДМК Пресс, — 574 с. ISBN 9785 970603420 В книге рассмотрены вопросы практического применения ПЛИС фирмы «Altera» при разработке цифровых устройств. Приведены крат кие сведения об особенностях архитектуры и временных параметрах устройств. Рассмотрены САПР MAX+PLUS II и Quartus, языки описания аппаратуры AHDL, VHDL, VERILOG HDL. Приводятся примеры описания цифровых устройств на языках высокого уровня, а также примеры реа лизации некоторых алгоритмов. Приведены сведения о современных интерфейсах передачи данных, даны рекомендации по разработке пе чатных плат. Цель книги — помочь начинающему разработчику в выборе эле ментной базы и дать представление о технологии проектирования уст ройств на ПЛИС. УДК 621.3.049.77 ББК 32.84402 © Стешенко В.Б. ISBN 9785 941201129 ISBN 9785 970603420 © Макет, Издательский дом «ДодэкаXXI» © Издание, ДМК Пресс, 2016 Все права защищены. Никакая часть этого издания не может быть воспроизведена в любой форме или любыми средствами, электронными или механическими, включая фотографирова ние, ксерокопирование или иные средства копирования или сохранения информации, без письменного разрешения издательства.
Стр.3
СОДЕРЖАНИЕ ВВЕДЕНИЕ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 ГЛАВА 1. ЭЛЕМЕНТНАЯ БАЗА . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.1. Семейство MAX3000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.2. Семейство FLEX6000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 1.3. Семейство MAX7000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 1.4. Семейство FLEX8000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 1.5. Семейство MAX9000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 1.6. Семейство FLEX10K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 1.7. Семейство APEX20K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 1.8. Семейство Mercury . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 1.9. Семейство ACEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 1.10. Kонфигурационные ПЗУ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 1.11. Программирование и реконфигурирование в системе . . . . . . . . . 110 ГЛАВА 2. СИСТЕМА ПРОЕКТИРОВАНИЯ MAX+PLUS II . . . . . . 115 2.1. Общие сведения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 2.2. Процедура разработки проекта . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 2.3. Редакторы MAX PLUS II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 2.4. Процесс компиляции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 2.5. Верификация проекта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 ГЛАВА 3. ЯЗЫК ОПИСАНИЯ АППАРАТУРЫ AHDL . . . . . . . . . . 167 3.1. Общие сведения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 3.2. Использование чисел и констант в языке AHDL . . . . . . . . . . . . . 171 3.2.1. Использование чисел . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 3.2.2. Использование констант . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 3.3. Kомбинационная логика . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 — 5 —
Стр.6
Содержание 3.3.1. Реализация булевых выражений и уравнений . . . . . . . . . . 172 3.3.2. Объявление NODE (óçåë) . . . . . . . . . . . . . . . . . . . . . . . . . . 173 3.3.3. Определение групп . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 3.3.4. Реализация условной логики . . . . . . . . . . . . . . . . . . . . . . . 174 3.3.5. Описание дешифраторов . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 3.3.6. Использование для переменных значений по умолчанию . . . 180 3.3.7. Реализация логики с активным низким уровнем . . . . . . . . 182 3.3.8. Реализация двунаправленных выводов . . . . . . . . . . . . . . . . 183 3.4. Последовательностная логика . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 3.4.1. Объявление регистров . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 3.4.2. Объявление регистровых выходов . . . . . . . . . . . . . . . . . . . 186 3.4.3. Создание счетчиков . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 3.5. Цифровые автоматы с памятью (state mashine) . . . . . . . . . . . . . . . 187 3.5.1. Реализация цифровых автоматов (state machine) . . . . . . . . 188 3.5.2. Установка сигналов Clock, Reset и Enable . . . . . . . . . . . . . 189 3.5.3. Задание выходных значений для состояний . . . . . . . . . . . . 189 3.5.4. Задание переходов между состояниями . . . . . . . . . . . . . . . 190 3.5.5. Присвоение битов и значений в цифровом автомате . . . . . 190 3.5.6. Цифровые автоматы с синхронными выходами . . . . . . . . . 191 3.5.7. Цифровые автоматы с асинхронными выходами . . . . . . . . 193 3.5.8. Восстановление после неправильных состояний . . . . . . . . 194 3.6. Реализация иерархического проекта . . . . . . . . . . . . . . . . . . . . . . . 196 3.6.1. Использование макрофункций системы MAX+PLUS II фирмы «Altera» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 3.6.2. Создание и применение пользовательских макрофункций . . 199 3.6.3. Определение пользовательской макрофункции . . . . . . . . . 199 3.6.4. Импорт и экспорт цифровых автоматов (state machine) . . . 201 3.7. Управление синтезом . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 3.7.1. Реализация примитивов LCELL и SOFT . . . . . . . . . . . . . . 203 3.7.2. Значения констант по умолчанию . . . . . . . . . . . . . . . . . . . . 205 3.7.3. Присвоение битов и значений в цифровом формате . . . . . 205 3.8. Элементы языка AHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 3.8.1. Зарезервированные ключевые слова . . . . . . . . . . . . . . . . . . 205 3.8.2. Символы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 3.8.3. Имена в кавычках и без кавычек . . . . . . . . . . . . . . . . . . . . 208 3.8.4. Группы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 3.8.5. Числа в языке AHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 3.8.6. Булевы выражения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 3.8.7. Логические операторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 3.8.8. Выражения с оператором NOT . . . . . . . . . . . . . . . . . . . . . . 213 — 6 —
Стр.7
Содержание 3.8.9. Выражения с операторами AND, NAND, OR, XOR, & XNOR . . . . . . . . . . . . . . . . . . . 213 3.8.10.Àðèôìåòè÷åñêèå операторы . . . . . . . . . . . . . . . . . . . . . . . . 214 3.8.11.Kîìïàðàòîðû (операторы сравнения) . . . . . . . . . . . . . . . . . 215 3.8.12.Ïðèîðèòåòû в булевых уравнениях . . . . . . . . . . . . . . . . . . 216 3.8.13.Ïðèìèòèâû . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 3.8.14.Ïîðòû . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 3.9. Синтаксис языка AHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 3.9.1. Лексические элементы . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 3.9.2. Основные конструкции языка AHDL . . . . . . . . . . . . . . . . . 230 3.9.3. Синтаксис объявления названия . . . . . . . . . . . . . . . . . . . . . 233 3.9.4. Синтаксис оператора включения . . . . . . . . . . . . . . . . . . . . 233 3.9.5. Синтаксис задания константы . . . . . . . . . . . . . . . . . . . . . . . 233 3.9.6. Синтаксис прототипа функции . . . . . . . . . . . . . . . . . . . . . . 233 3.9.7. Синтаксис оператора вариантов . . . . . . . . . . . . . . . . . . . . . 234 3.9.8. Синтаксис секции подпроекта Subdesign . . . . . . . . . . . . . . 236 3.9.9. Синтаксис секции переменных . . . . . . . . . . . . . . . . . . . . . . 236 3.9.10.Ñèíòàêñèñ объявления цифрового автомата . . . . . . . . . . . . 237 3.9.11.Ñèíòàêñèñ объявления псевдонима цифрового автомата . . . 237 3.9.12.Ñèíòàêñèñ логической секции . . . . . . . . . . . . . . . . . . . . . . 238 3.9.13.Ñèíòàêñèñ булевых уравнений . . . . . . . . . . . . . . . . . . . . . . 238 3.9.14.Ñèíòàêñèñ булевых уравнений управления . . . . . . . . . . . . 238 3.9.15.Ñèíòàêñèñ оператора CASE . . . . . . . . . . . . . . . . . . . . . . . . 238 3.9.16.Îáúÿâëåíèå по умолчанию . . . . . . . . . . . . . . . . . . . . . . . . . .238 3.9.17.Ñèíòàêñèñ условного оператора IF . . . . . . . . . . . . . . . . . . . 239 3.9.18.Ñèíòàêñèñ встроенных (in-line) ссылок на макрофункцию или примитив . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 3.9.19.Ñèíòàêñèñ объявления таблицы истинности . . . . . . . . . . . 239 3.9.20.Ñèíòàêñèñ порта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 3.9.21.Ñèíòàêñèñ группы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 3.9.22.Ñèíòàêñè÷åñêèå группы и списки . . . . . . . . . . . . . . . . . . . . 241 ГЛАВА 4. ЯЗЫК ОПИСАНИЯ АППАРАТУРЫ VHDL . . . . . . . . . . 243 4.1. Общие сведения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 4.2. Алфавит языка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 4.2.1. Kомментарии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 4.2.2. Числа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 4.2.3. Символы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 4.2.4. Строки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 4.3. Типы данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 — 7 —
Стр.8
Содержание 4.3.1. Простые типы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 4.3.2. Сложные типы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 4.3.3. Описание простых типов . . . . . . . . . . . . . . . . . . . . . . . . . . 250 4.4. Операторы VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 4.4.1. Основы синтаксиса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 4.4.2. Объекты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 4.4.3. Атрибуты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 4.4.4. Kомпоненты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 4.4.5. Выражения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 4.4.6. Операторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 4.5. Интерфейс и тело объекта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 4.5.1. Описание простого объекта . . . . . . . . . . . . . . . . . . . . . . . . 270 4.5.2. Объявление объекта проекта F . . . . . . . . . . . . . . . . . . . . . . 270 4.5.3. Поведенческое описание архитектуры . . . . . . . . . . . . . . . . 270 4.5.4. Потоковая форма . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 4.5.5. Структурное описание архитектуры . . . . . . . . . . . . . . . . . . 273 4.6. Описание конфигурации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 4.7. Векторные сигналы и регулярные структуры . . . . . . . . . . . . . . . . 275 4.8. Задержки сигналов и параметры настройки . . . . . . . . . . . . . . . . . 277 4.9. Атрибуты сигналов и контроль запрещенных ситуаций . . . . . . . . 279 4.10. Алфавит моделирования и пакеты . . . . . . . . . . . . . . . . . . . . . . . . . 280 4.11. Описание монтажного «ÈËÈ» и общей шины . . . . . . . . . . . . . . . 283 4.12. Синтезируемое подмножество VHDL . . . . . . . . . . . . . . . . . . . . . . 285 4.12.1.Îáùèå сведения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 4.12.2.Ïåðåîïðåäåëåííûå типы (Redefined types) . . . . . . . . . . . . 286 4.12.3.Методика верификации синтезируемого описания (Verification methodology) . . . . . . . . . . . . . . . . . . . . . . . . . . 286 4.12.4.Моделирование элементов аппаратуры (Modeling hardware elements) . . . . . . . . . . . . . . . . . . . . . . . 288 4.12.5.Äèðåêòèâû компилятора (ïñåâäîêîììåíòàðèè, Pragmas) . . . 295 4.12.6.Ñèíòàêñèñ синтезируемого подмножества VHDL . . . . . . . 297 4.13. Kраткое описание синтакиса синтезируемого подмножества VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 ГЛАВА 5. ЯЗЫК ОПИСАНИЯ АППАРАТУРЫ VERILOG HDL . . . 363 5.1. Общие сведения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363 5.2. Операторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 5.3. Числа в Verilog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 5.3.1. Целые числа (Integers) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 5.3.2. Неопределенное и высокоимпедансное состояния (x and z values) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 — 8 —
Стр.9
Содержание 5.3.3. Отрицательные числа (Negative numbers) . . . . . . . . . . . . . 366 5.3.4. Подчеркивание (Underscore) . . . . . . . . . . . . . . . . . . . . . . . . 366 5.3.5. Действительные числа (Real) . . . . . . . . . . . . . . . . . . . . . . . 366 5.3.6. Строки (Strings) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 5.4. Цепи в Verilog (Nets) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 5.5. Регистры (Registers) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 5.6. Векторы (Vectors) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 5.7. Массивы (Arrays) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 5.8. Регистровые файлы (Memories) . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 5.9. Элементы с третьим состоянием (Tri-state) . . . . . . . . . . . . . . . . . . 370 5.10. Арифметические операторы (Arithmetic operators) . . . . . . . . . . . . 372 5.11. Логические операторы (Logical operators) . . . . . . . . . . . . . . . . . . . 373 5.12. Операторы отношения (Relational operators) . . . . . . . . . . . . . . . . . 374 5.13. Операторы эквивалентности (Equality) . . . . . . . . . . . . . . . . . . . . . 374 5.14. Поразрядные операторы (Bitwise operators) . . . . . . . . . . . . . . . . . 375 5.15. Операторы приведения (Reduction operator) . . . . . . . . . . . . . . . . . 376 5.16. Операторы сдвига (Shift operator) . . . . . . . . . . . . . . . . . . . . . . . . . 377 5.17. Kонкатенация (îáúåäèíåíèå, Concatenation) . . . . . . . . . . . . . . . . . 377 5.18. Повторение (Replication) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378 5.19. Системные директивы (System tasks) . . . . . . . . . . . . . . . . . . . . . . 378 5.19.1.Директивы вывода результатов моделирования (Writing to standard output) . . . . . . . . . . . . . . . . . . . . . . . . . . 379 5.19.2. Kонтроль процесса моделирования (Monitoring a simulation) . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 5.19.3. Окончание моделирования (Ending a simulation) . . . . . . . 382 5.20. Проектирование комбинационных схем, пример проектирования мультиплексора 4 в 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382 5.20.1.Реализация на уровне логических вентилей (Gate level implementation) . . . . . . . . . . . . . . . . . . . . . . . . . 382 5.20.2.Реализация мультиплексора с помощью логических операторов (Logic statement Implementation) . . . . . . . . . . . 384 5.20.3.Реализация с помощью оператора выбора (CASE statement implementation ) . . . . . . . . . . . . . . . . . . . . 385 5.20.4.Реализация с использованием условного оператора (Conditional operator Implementation) . . . . . . . . . . . . . . . . . 387 5.20.5.Òåñòîâûé модуль (The stimulus module) . . . . . . . . . . . . . . . 387 5.21. Модули проекта (Design blocks modules) . . . . . . . . . . . . . . . . . . . 390 5.21.1.Òåñòèðîâàíèå . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392 5.22. Порты (Ports) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393 5.23. Правила соединения (Connection rules) . . . . . . . . . . . . . . . . . . . . . 394 — 9 —
Стр.10
Содержание 5.23.1.Âõîäû (inputs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 5.23.2.Âûõîäû (outputs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 5.23.3.Äâóíàïðàâëåííûå выводы (inouts) . . . . . . . . . . . . . . . . . . . 394 5.23.4.Ñîîòâåòñòâèå портов (Port matching) . . . . . . . . . . . . . . . . . 394 5.23.5.Ïðèñîåäèíåíèå портов (Connecting ports) . . . . . . . . . . . . . 394 5.24. Базовые блоки (Basic blocks) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395 5.24.1.Èíèöèàëèçàöèÿ (Initial block) . . . . . . . . . . . . . . . . . . . . . . . 395 5.24.2.Kîíñòðóêöèÿ Always (Always block) . . . . . . . . . . . . . . . . . . 395 5.25. Пример проектирования последовательностного устройства: двоичный счетчик . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396 5.25.1.Ïîâåäåí÷åñêàÿ модель счетчика (Behavioural model) . . . . . 400 5.26. Временной контроль (Timing Control) . . . . . . . . . . . . . . . . . . . . . . 402 5.26.1.Çàäåðæêè (delay) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402 5.26.2.Ñîáûòèéíûé контроль (event-based control) . . . . . . . . . . . . 403 5.27. Защелкивание (triggers) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 5.28. Список сигналов возбуждения (sensitivity list) . . . . . . . . . . . . . . . 404 5.29. Задержка распространения в вентиле (Gate delays) . . . . . . . . . . . 404 5.30. Операторы ветвления (Branch statements) . . . . . . . . . . . . . . . . . . . 404 5.30.1.Îïåðàòîð IF ( IF statement) . . . . . . . . . . . . . . . . . . . . . . . . . 404 5.30.2.Îïåðàòîð выбора (CASE statement) . . . . . . . . . . . . . . . . . . 406 5.30.3.Îïåðàòîð ветвления (Conditional operator) . . . . . . . . . . . . . 406 5.31. Циклы (Looping constructs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407 5.31.1.Öèêë WHILE (WHILE LOOP) . . . . . . . . . . . . . . . . . . . . . . . 407 5.31.2.Öèêë FOR (FOR LOOP) . . . . . . . . . . . . . . . . . . . . . . . . . . . 408 5.31.3.Öèêë REPEAT (REPEAT LOOP) . . . . . . . . . . . . . . . . . . . . . .408 5.31.4.Âå÷íûé цикл (FOREVER LOOP) . . . . . . . . . . . . . . . . . . . . 409 5.32. Файлы в Verilog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409 5.32.1.Îòêðûòèå файла (Opening a file) . . . . . . . . . . . . . . . . . . . . . 409 5.32.2.Çàïèñü в файл (Writing to a file) . . . . . . . . . . . . . . . . . . . . . 410 5.32.3.Çàêðûòèå файла (Closing a file) . . . . . . . . . . . . . . . . . . . . . . 410 5.32.4.Инициализация регистровых файлов (памяти) (Initialising memories) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410 5.33. Задание векторов входных сигналов для моделирования (Verilog input vectors) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412 5.34. Список операторов Verilog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414 5.35. Приоритет операторов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415 5.36. Këþ÷åâûå слова (keywords) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415 5.37. Директивы компилятора . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416 5.38. Типы цепей (Net types) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416 — 10 —
Стр.11
Содержание ГЛАВА 6. ПРИМЕРЫ ПРОЕКТИРОВАНИЯ ЦИФРОВЫХ УСТРОЙСТВ С ИСПОЛЬЗОВАНИЕМ ЯЗЫКОВ ОПИСАНИЯ АППАРАТУРЫ VHDL И VERILOG . . . . 4 1 7 6.1. Общие сведения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417 6.2. Триггеры и регистры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418 6.2.1. Триггеры, тактируемые передним фронтом (Rising Edge Flipflop) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419 6.2.2. Триггеры, тактируемые передним фронтом, с асинхронным сбросом (Rising Edge Flipflop with Asynchronous Reset) . . . 420 6.2.3. Триггеры, тактируемые передним фронтом, с асинхронной предустановкой (Rising Edge Flipflop with Asynchronous Preset) . . . . . . . . . . . . . . . . . . . . . . . . . . . 421 6.2.4. Триггеры, тактируемые передним фронтом, с асинхронным сбросом и предустановкой (Rising Edge Flepflop with Asynchronous Reset and Preset) . . . . . . . . . . . . . . . . . . . 422 6.2.5. Триггеры, тактируемые передним фронтом, с синхронным сбросом (Rising Edge Flipflop with Synchronous Reset) . . . . 424 6.2.6. Триггеры, тактируемые передним фронтом, с синхронной предустановкой (Rising Edge Flipflop with Synchronous Preset) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425 6.2.7. Триггеры, тактируемые передним фронтом, с асинхронным сбросом и разрешением тактового сигнала (Rising Edge Flipflop with Asynchronous Reset and Clock Enable) . . . . . . . 426 6.2.8. Защелка с разрешением выхода (D-Latch with Data and Enable) . . . . . . . . . . . . . . . . . . . . . . 427 6.2.9. Защелка с входом данных с разрешением (D-Latch with Gated Asynchronous Data) . . . . . . . . . . . . . . . 428 6.2.10. Защелка с входом разрешения (D-Latch with Gated enable) . . 429 6.2.11.Защелка с асинхронным сбросом (D-Latch with Asynchronous Reset) . . . . . . . . . . . . . . . . . . . 430 6.3. Построение устройств потоковой обработки данных (Datapath logic) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431 6.4. Счетчики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 6.5. Арифметические устройства . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 6.6. Kîíå÷íûå автоматы (Finite state machine) . . . . . . . . . . . . . . . . . . . 449 6.7. Элементы ввода-вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459 6.8. Параметризация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464 6.9. Специфика проектирования устройств с учетом архитектурных особенностей ПЛИС . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466 6.10. Совместное использование ресурсов . . . . . . . . . . . . . . . . . . . . . . 468 — 11 —
Стр.12
Содержание 6.11. Дублирование регистра . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473 6.12. Создание описаний с учетом особенностей архитектуры ПЛИС (Technology Specific Coding Techniques) . . . . . . . . . . . . . . . . . . . . 476 ГЛАВА 7. ПРИМЕРЫ РЕАЛИЗАЦИИ АЛГОРИТМОВ ЦОС НА ПЛИС . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485 7.1. Реализация цифровых фильтров на ПЛИС семейства FLEX фирмы «Altera» . . . . . . . . . . . . . . . . . . . . . . . . . . 485 7.2. Реализация цифровых полиномиальных фильтров . . . . . . . . . . . . 491 7.3. Алгоритмы функционирования и структурные схемы демодуляторов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495 7.4. Реализация генератора ПСП на ПЛИС . . . . . . . . . . . . . . . . . . . . . 500 7.5. Примеры описания цифровых схем на VHDL . . . . . . . . . . . . . . . 506 7.6. Реализация нейрона на AHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516 7.7. Построение быстродействующих перемножителей . . . . . . . . . . . 529 Приложение 1.Ñèñòåìà проектирования Quartus . . . . . . . . . . . . . . . . . 535 Приложение 2.Интерфейсы передачи данных и сопряжение устройств . . . . . . . . . . . . . . . . . . . . . . . . 537 Приложение 3.Практические рекомендации по разработке печатных плат . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568 Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572 — 12 —
Стр.13

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


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