Владимир Борисович Стешенко. :79 EDA. Практика автоматизированного проектирования радиоэлектронных устройств. — М.: Издатель Молгачева С.В., Издательство «Нолидж», 2002. — 768 с„ ил.
Содержание
Предисловие автора.........................................................................................................15
Введение: EDA - что, где и почему................................................................................19
Глава 1. Средства и приемы функционального моделирования
радиоэлектронных систем...............................................................................23
1.1. Общие сведения.........,..................................................................................23
1.2. Пример обоснования структуры и параметров цифровых фильтров.....26
1.3. Построение и моделирование демодуляторов ЧМн-сигнала в пакете
Simulink программы Matlab........................................................................41
1.4. Программа анализа динамических свойств систем System View компании Elanix...........................................................................................48
1.5. Программа моделирования систем и анализа данных Lab View
фирмы National Instruments.........................................................................64
Глава 2. Программируемые логические интегральные схемы:
элементная база и системы проектирования.............................................104
2.1. Обзор архитектур программируемых логических интегральных схем.....104
2.2. Выбор ПЛИС для реализации проекта....................................................127
2.3. Программирование и реконфигурирование в системе...........................132
2.4. Конфигурационные ПЗУ и режимы загрузки..........................................136
2.5. Система проектирования MAX PLUS II..................................................137
2.5.1 Процедура разработки проекта.......................................................143
2.5.2. Редакторы MAX PLUS II.................................................................159
2.5.3 Процесс компиляции........................................................................171
2.5.4. Верификация проекта......................................................................178
2.6. Программное обеспечение проектирования на ПЛИС фирмы Xilinx .182
2.7. Средства визуальной разработки цифровых автоматов.........................189
Ч а
• Языки описания аппаратуры: синтаксис и особенности применения.... 199
3.1. Общие сведения..........................................................................................199
3.2. Язык описания аппаратуры AHDL...........................................................200
3.2.1. Общие сведения........................................... ч«п
3.2.2.1. Использование чисел................;.........................................20]
3.2.2.2. Использование констант....................................................203
3.2.3. Комбинационная логика..................................................................204
3.2.3.1. Реализация булевых выражений и уравнений.................204
3.2.3.2. Объявление NODE (узел)...................................................205
3.2.3.3. Определение групп.............................................................205
3.2.3.4. Реализация условной логики.............................................206
, 3.2.3.4.1. Логика оператора IF......................................206
3.2.3.4.2. Логика оператора CASE................................207
3.2.3.4.3. Сравнение операторов IF и CASE................207
3.2.3.5. Описание дешифраторов..................................,..,.............208
3.2.3.6. Использование для переменных значений
по умолчанию....................................................................210
3.2.3.7. Реализация логики с активным низким уровнем............212
3.2.3.8. Реализация двунаправленных выводов............................213
3.2.4. Последовательностная логика в AHDL.........................................214
3.2.4.1. Объявление регистров........................................................214
3.2.4.2. Объявление регистровых выходов....................................215
3.2.4.3. Создание описаний счетчиков...........................................216
3.2.5. Цифровые автоматы с памятью (state mashine) в AHDL..............217
3.2.5.1. Примеры реализация цифровых автоматов
(state machine) в AHDL.....................................................217
3.2.5.2. Установка сигналов Clock, Reset и Enable........................218
3.2.5.3. Задание выходных значений для состояний....................21"
1 о 1Q
3.2.5.4. Задание переходов между состояниями...........................Z1
f\ i о
' 3.2.5.5. Присвоение битов и значений в цифровом автомате......^
920
3.2.5.6. Цифровые автоматы с синхронными выходами..............^
^
3.2.5.7. Цифровые автоматы с асинхронными выходами
~
3.2.5.8. Восстановление после неправильных состояний..:
3.2.6. Реализация иерархического проекта..............................................
3.2.6.1. Использование макрофункций системы ,
Altera MAX+PLUS II.........................................................2"
3.2.6.2. Создание и применение пользовательских ,
макрофункций ...................................................................22
3.2.6.3. Определение пользовательской макрофункции...............^
3.2.7. Управление синтезом........................................................................230
3.2.7.1. Реализация примитивов LCELL и SOFT..........................230
3.2.7.2. Значения констант по умолчанию.....................................231
3.2.8. Элементы языка AHDL...................................................................232
3.2.8.1. Зарезервированные ключевые слова.................................232
3.2.8.2. Символы.........................!........................................232
3.2.8.3. Имена в кавычках и без кавычек.......................................234
3.2.8.4. Группы.................................................................................235
3.2.8.4.1. Формат записи групп.....................................235
3.2.8.4.2. Диапазон и поддиапазон групп....................235
3.2.8.5. Числа в языке AHDL..........................................................236
3.2.8.6. Булевы выражения..............................................................236
3.2.8.7. Логические операторы.......................................................237
3.2.8.8. Выражения с оператором NOT..........................................237
/
3.2.8.9. Выражения с операторами
AND, NAND, OR, NOR, XOR и XNOR...........................238
3.2.8.10. Арифметические операторы............................................238
3.2.8.11. Компараторы (Операторы сравнения)............................239
3.2.8.12. Приоритеты в булевых уравнениях................................240
3.2.8.13. Примитивы........................................................................240
3.2.8.14. Порты.................................................................................249
3.2.8.14.1. Порты текущего файла................................249
3.2.8.14.2. Порты экземпляров компонента.................250
3.3. Язык описания аппаратуры VHDL...........................................................252
3.3.1.Общие сведения................................................................................252
3.3.2. Средства объявления объектов entity и их архитектур architecture........................................................................................253
3.3.3. Алфавит языка..................................................................................254
3.3.3.1.Комментарии...........................'.............................................255
3.3.3.2.Числа.....................................................................................255
3.3.3.3. Символы..............................................................................255
3.3.3.4. Строки..................................................................................255
3.3.4. Типы данных....................................................................................256
3.3.4.1. Простые типы .....................................................................256
3.3.4.2. Сложные типы...................................
3.3.4.4. Строки, битовые строки и агрегаты ............................ . ..... 2б4
3.3.4.5. Подтипы ................................................................................ 265
3.3.5. Операторы VHDL ....................................................... .....Г. .............. 267
3.3.5.1. Основы синтаксиса ............................................................. 26]
3.3.5.2. Объекты ............................................................................... 267
3.3.5.3. Атрибуты ............................................................................. 268
3.3.5.4. Компоненты ......................................................................... 268
3.3.5.5. Выражения ................................................................ .-. ........ 269
3.3.6. Интерфейс и тело объекта ............... ." ............................................... 270
3.3.7. Описание простого объекта ............................................................ 273
3.3.7.1. Поведенческое описание архитектуры ................... . ......... 274
3.3.7.2. Потоковое описание ........................................................... 274
3.3.7.3.. Структурное описание архитектуры ................. ............... 275
3.3.8. Описание конфигурации ................................................................. 277
3.3.9. Векторные сигналы и регулярные структуры ............................... 278
3.3.10. Задержки сигналов и параметры настройки ............................... 279
3.3.1 1. Атрибуты сигналов и контроль запрещенных ситуаций ............ 280
3.3.12. Алфавит моделирования и пакеты .......................... . .................... 282
3.3.13. Задание монтажного "или" и общей шины ................................. 284
3.4. Язык описания аппартуры Verilog ............................................................ 28з
3.4.1. Общие сведения ............................................................................... 23э
3.4.2. Операторы ......................................................................................... 28
3.4.3. Числа в Verilog ............. .... ................................ .... ............................ 28?
3.4.3.1. Целые числа (Integers) ................................................. %- ...... ^
3.4.3.2. Неопределенное и высокоимпедансное
состояния (X and Z values) ................................................
3.4.3.4. Отрицательные числа (Negative numbers) ........................ 2
28$
3.4.3.5. Символ подчеркивания (Underscore) ................................
3.4.3.6. Действительные числа (Real) ................... • ........................
3.4.3.7. Строки (Strings) ........................... . ....................... . ............... 2 '
3.4.4.Цепи в Verilog (Nets)
3.4.5. Регистры (Registers)
3.4.6. Векторы (Vectors)
3.4.7. Массивы (Arrays) .....................
3.4.8. Регистровые файлы (Memories
3.4.10. Арифметические операторы (Arithmetic operators)....................292
3.4.11. Логические операторы (Logical Operators)..............'....................293
3.4.12. Операторы отношения (Relational Operators)..............................293
3.4.13. Операторы эквивалентности (Equality).......................................294
3.4.14. Поразрядные операторы (Bitwise Operators)...............................295
3.4.15.Операторы приведения (Reduction Operator)...............................295
3.4.16.0ператоры сдвига (Shift Operator)................................................296
3.4.17. Конкатенация (объединение,Сопса1епа!юп)...............................296
3.4.18. Повторение (Replication)...............................................................297
3.4.19. Системные директивы (System Tasks).........................................297
3.4.20. Контроль процесса моделирования (Monitoring a Simulation).....299
3.4.21. Окончание моделирования (Ending a simulation)........................299
3.4.22. Проектирование комбинационных схем: пример проектирования мультиплексора 4 в 1........................................300
3.4.22.1. Реализация на уровне логических вентилей
(Gate Level Implementation).............................................300
3.4.22.2. Реализация мультиплексора с помощью логических операторов (Logic Statement Implementation)................301
3.4.22.3. Реализация с помощью оператора выбора
(Case Statement Implementation)......................................302
3.4.22.4. Реализация с использованием
_____.„ч„„ ^ использованием условного оператора
(Conditional Operator Implementation)............................303
3.4.22.5. Тестовый модуль (The Stimulus Module)........................304
3.4.24. Модули проекта (Design Blocks Modules)
3 л 1< гт------ '-
__._,., „lv,vi»j IVIUUUICS^ ...................................306
3.4.25. Порты (Ports)..................................................................................308
3.4.26. Правила соединения (Connection Rules)......................................308
3.4.27. Базовые блоки (Basic Blocks)........................................................309
3.4.28. Инициализация (Initial Block).......................................................309
3.4.29. Конструкция always (Always Block).............................................310
3.4.30. Пример проектирования последовательностного
устройства: двоичный счетчик....................................................310
3.4.30.1. Поведенческая модель (Behavioural Model)...................313
3.4.31. Временной контроль (Timing Control).........................................314
3.4.31.1. Задержки (Delay)...............................................................314
3.4.31.2. Событийный контроль (Event-Based control).................315
3.4.31.3. Защелкивание (Triggers)...................... ""'
П1.16. Объявление по умолчанию...................................................................670
П1.17. Синтаксис условного оператора IF......................................................670
П1.18. Синтаксис встроенных (in-line) ссылок на макрофункцию
или примитив........................................................................................670
П1.19. Синтаксис объявления таблицы истинности......................................670
П1.20. Синтаксис порта....................................................................................671
П1.21. Синтаксис группы..................................................................................671
П1.22. Синтаксические группы и списки.....................,................................672
риложение 2, Синтаксис языка Verilog..................................................................675
П2.1. Список операторов Verilog.....................................................................675
П2.2. Приоритет операторов......................................................................'......676
П2.3. Ключевые слова (Keywords)...................................................................676
П2.4.Директивы компилятора..........................................................................677
П2.5. Типы цепей (Net Types)...........................................................................677
Гриложение 3. Синтезируемое подмножество VHDL..............................................678
П3.1. Общие сведения.......................................................................................678
П3.2. Переопределенные типы (redefined types)............................................678
ПЗ.З. Методика верификации синтезируемого описания
(Verification methodology).......................................................................678
ПЗ .3.1. Верификация комбинационных устройств
(Combinational verification)...........................................................679
ПЗ.3.2. Верификация последовательностных устройств
(Sequential verification).................................................................680
ГО.4. Моделирование элементов аппаратуры
(Modeling hardware elements)...............................................................680
ПЗ .4.1. Синхронные последовательностные схемы
(Edge-sensitive sequential logic).................:................................680
ПЗ.4.1.1. Типы тактового сигнала (Clock signal type)..................68
ля! ПЗ.4.1.2. Определение фронта тактового сигнала........................°°
^о|
ПЗ.4.1.3. Передний фронт............,..................................................°
ГО.4.1.4. Задний фронт....................................................................б8'
/я" ПЗ.4.2. Описание синхронных последовательностных устройств.......
/•о
ПЗ.4.2.1. Использование оператора IF....................................•...... ,
Т~П /1 О Л ТТ 'j_ О У'
IT Могтлттж.-хлийинр b-nHm-ivKTTHH wait...................................
ПЗ.4.5. Логика с третьим состоянием и моделирование шин (Three-state
and bus modeling).................................................................................686
ПЗ.4.6. Описание комбинационных логических схем (Modeling
combinational logic).............................................................................686
П3.5. Диррективы компилятора (псевдокомментарии,
ПЗ.5.1. Атрибуты компилятора (Attributes).............................................686
686
ПЗ.5.1.1. Атрибут компилятора ENUM_ENCODING...................687
ПЗ.5.2. Метакомментарии (Metacomments).............................................687
П3.6. Синтаксис синтезируемого подмножества VHDL.............:..
.._____...............................687
ПЗ.6.1. Описание интерфейса (Entity declarations).................................687
ПЗ.6.2. Заголовок интерфейса (Entity header).........................................688
ПЗ.6.3. Настраиваемые типы (Generics)..................................................688
ПЗ.6.4. Порты (Ports).................................................................................688
ПЗ.6.5. Описание .интерфейсной части (Entity declarative part).............689
ПЗ.6.6.Описание операторов интерфейса (Entity statement part)..........689
ПЗ.6.7. Архитектурные тела (Architecture bodies)..................................690
ПЗ.6.8. Объявление архитектуры (Architecture declarative part)............690
Т-г^» f ™ г-
_____„^^,ч*(лч w ра
ПЗ.6.9. Операторы архитектуры (Architecture statement part)................691
ПЗ.6.10. Объявление конфигурации (Configuration declaration)...........
ПЗ.6.11. Конфигурация.блока (Block configuration)...............................692
691
._____... ...............................W2
- - — ф -" " " j
ПЗ.6.12. Конфигурация компонента (Component configuration).............692
ПЗ.6.13. Объявление подпрограмм (Subprogram declarations)...............693
Формальные параметры (Formal parameters)...........................693
ПЗ.6.14. Тело подпрограммы (Subprogram bodies).................................693
, . .«,-......™,.................................6УЗ
ПЗ.6.15. Перегрузка подпрограмм (Subprogram overloading)................694
ПЗ.6.16. Разрешающие функции (Resolution functk
ПЗ.6.17. Объявление пакета (Package declarations), m A i о т—
ч----г-.-ь'»"" «vwiuai
ПЗ.6.16. Разрешающие функции (Resolution functions).........................694
ПЗ.6.17. Объявление пакета (Package declarations).................................695
ГО.6.18. Тело пакета (Package bodies).
тт^ s- -• л —
____„,......................................................696
П3.6.19. Скалярные типы (Scalar types)...................................................696
ПЗ.6.20. Перечислимые типы (Enumeration types)..................................697
ПЗ.6.21. Предопределенные перечислимые типы
(Predefined enumeration types)....................................................697
ПЗ.6.22. Целочисленные типы (Integer types).........................................697
ПЗ.6.23. Физические типы (Physical types)..............................................698
ПЗ.6.24. Типы с плавающей точкой (Floating ooint tvr>«»cA
Предисловие автора
Всякий образованный человек, умеющий читать и писать, в конце концов должен решить для себя: так что же все-таки делать — читать или писать?
Постулат Кнышева
Хороший учитель может научить других даже тому, чего сам не умеет.
Тадеуш Котарбиньский
Идея написания этой книги появилась после выхода в прошлом году двух моих книг [1,2] и циклов статей в журналах [27,28]. Получив довольно большое число откликов читателей (СПАСИБО ВСЕМ!!!), я пришел к выводу о необходимости написания книги, посвященной практическим методам и приемам применения САПР в процессе проектирования радиоэлектронной аппаратуры. К этому моменту у меня сложились определенные взгляды на существующее положение вещей в электронном САПР, которыми и хотелось бы поделиться с читателями.
Как и в прошлой книге [1], изложение ведется от процесса проектирования. Я уверен, что такой подход является правильным как с методической, так и с производственной точки зрения.
В книге затронут достаточно широкий круг вопросов и рассмотрено значительное число средств САПР для решения тех или иных задач. Тем не менее, автор понимает, что учесть все невозможно, и заранее приносит извинения за возможные ошибки. В этой связи, следует вспомнить старую форму, характерную для американской научно-технической литературы:
«В этой книге предпринята попытка научить читателя приемам конструирования электронных устройств на основе примеров и данных, которые, на наш взгляд, являются точными. Однако примеры, данные и прочую информацию, предназначенную для обучения, не следует использовать в практических приложениях без самостоятельного тестирования и проверки. Тестирование и проверка особенно важны в тех случаях, когда неправильное функционирование может привести к несчастному случаю или повреждению имущества.
В связи с этим мы не даем никаких гарантий, прямых или косвенных, на предмет того, что примеры, данные и прочая информация в этой книге, не содержат ошибок, отвечают требованиям промышленных стандартов и требованиям конкретных практических приложений. Автор и издатель не несут ответственности за коммерческий исход и непригодность для какой - либо практической цели, даже в том случае, если автор дал совет по практическому использованию и описал пример практического использования в
Hosted by uCoz