11. Автоматизация проектирования
Прежде чем говорить об автоматизации проектирования, рассмотрим основные типы ИС.
1. Программируемые логические ИС (ПЛИС, PLD (Programmable Logic Device)). Это ИС с регулярной структурой (повторяющимися одинаковыми блоками), которую можно сконфигурировать (запрограммировать) в заданную структуру. Они могут быть перепрограммированы.
2. Заказные ИС. Это ИС, имеющие жесткую структуру, которую изменить невозможно. ASIC (Application-Specific Integrated Circuit) проблемно-ориентированная (специализированная) интегральная микросхема, заказная ИС. Микросхема для выполнения набора специальных функций (например, для управления устройством), обычно разрабатываемая под конкретного заказчика.
3. Полузаказные ИС. Это разновидность заказных ИС – и программируемые заказные ИС (Programmable ASIC), функциональность которых можно со временем наращивать. Они сочетают в себе и ASIC, и PLD особенности.
На рис. 2.61 представлена классификация ПЛИС по архитектуре
Рисунок 2.61 – Классификация ПЛИС по архитектуре
• PLD (Programmable Logic Device) – программируемое логическое устройство;
• SPLD (Standart PLD или Simple PLD) – стандартное или простое программируемое логическое устройство;
• PROM (Programmable Read Only Memory) – перепрограммируемое постоянное запоминающее устройство;
• PLA (Programmable Logic Array) – программируемая логическая матрица;
• PAL (Programmable Array Logic) – программируемая матричная логика;
• PLS (Programmable Logic Sequencer) – программируемый логический секвенсор;
• GAL (Generic Array Logic) – типовая или обобщенная матричная логика
• CPLD (Complex PLD) – сложное программируемое логическое устройство;
• FPGA (Field Programmable Gate Array) – программируемая пользователем вентильная матрица (классическая FPGA);
• FLEX (Flexible Logic Element Matrix) – матрица элементов гибкой логики (комбинированная FPGA);
Поскольку в Курсе ПТЦА мы работаем с платой Spartan-3E Starter Kit для программирования FPGA XC3S500E-5fg320, рассмотрим основные этапы автоматизированного проектирования устройств на ПЛИС на примере данной FPGA и в системе автоматизированного проектирования (САПР) Xilinx ISE (рис. 2.63).
На вход системы автоматизации проектирования поступает верифицированное описание устройства на поддерживаемом языке описания аппаратуры, например, VHDL-описание (файл с расширением vhd). Верификация – проверка правильности работы модели объекта.
VHDL (Very high speed integrated circuit (VHSIC) Hardware Description Language) язык описания аппаратуры, разработан в 80-е годы по заказу Министерства обороны США (стандарт IEEE 1076) в рамках проекта VHSIC по созданию высокоскоростной элементной базы.
Предназначен в первую очередь для спецификации – точного описания проектируемых схем и их моделирования на алгоритмическом, функционально-блочном и логическом уровнях проектирования. Имеет Ada-подобный синтаксис, позволяет описывать одновременные события, структуру системы, производить декомпозицию системы на подсистемы, моделировать работу системы и многое другое. Имеет ряд расширений для работы с аналоговыми и смешанными сигналами. Это входной язык для многих САПР электронных схем как программируемых, так и заказных.
Рисунок 2.63 – Основные этапы автоматизированного проектирования устройств на ПЛИС.
Синтез проекта – создание схемы, т.е. переход от функционально корректного описания проекта на языке VHDL к списку соединений (netlist), т. е. к машинно-ориентированной схематике.
Имплементация проекта – размещение схемы на целевой микросхеме. Имплементация проекта это последовательность событий, которая переводит netlist в файл программирования для устройства FPGA. Синтезируемый проект имеет ряд портов на верхнем уровне. Средствам имплементации необходимо знать, каким образом отводить порты проекта под физические выводы микросхемы FPGA, которая подсоединяется к различным ресурсам платы Spartan-3E Starter Kit. Если не сделать явных назначений, средства будут подключены к выводам случайным образом. Однако это плохой вариант, поскольку случайное назначение может быть неверным. Необходимо формировать файл пользовательских ограничений – user constraint file (UCF). Этот файл (c расширением usf) вмещает в себя ограничения, которые не были определены в VHDL описании, например, расположение выводов, ограничения на характеристики проекта. Скорее это удобнее делать в UCF, чем в VHDL описании. Например, если вы допускаете ошибку в назначении выводов, не нужно возвращаться и заново синтезировать проект.
В качестве примера UCF приведем листинг 2.2 для двухвходового сумматора по модулю два.
Листинг 2.1 – UCF для двухвходового элемент XOR
NET "a" LOC = "L13";
NET "b" LOC = "L14";
NET "c" LOC = "F12";
Здесь a и b – входные порты (сигналы), c – выходной порт (сигнал). L13 и L14 – выводы микросхемы FPGA XC3S500E-5fg320, подключенные к переключателям, задающим входные воздействия на плате. А F12 – вывод, подключенный к светодиоду на плате, на котором можно наблюдать результат.
В результате выполнения данного этапа формируется файл программирования ПЛИС. Для FPGA это bitstream, файл с расширением bit.
Программирование кристалла – придание его структуре конфигурации, обеспечивающей заданный алгоритм функционирования устройства.
Программирование FPGA напрямую – удобный способ испытать проект. Этот метод полезен для прототипирования, когда проект не является окончательным, чтобы удостовериться в его правильности. Сложные проекты не всегда работают «с первой попытки». Одно из замечательных преимуществ FPGA перед ASIC схемами, состоит в том, что плата за ошибку при первой попытке минимальна. Ведь FPGA можно перепрограммировать, а ASIC придется выбросить.
- 1. Двоичные сигналы в цифровой технике
- 2. Интегральные технологии
- 3. Переключательные схемы. Логические элементы и (and), или (or), не (not)
- 4. Переключательные схемы. Логические элементы и-не (nand) или-не (nor) исключающее или (xor), эквивалентность (xnor), буфер
- 5. Ассоциативность функций и (and), или (or), и-не (nand) или-не (nor), xor, xnor.
- 6. Степени интеграции микросхем. Позитивная и негативная логика
- 7. Операции кубического исчисления конъюнкция (and), дизъюнкция (or), исключающее или (xor)
- 8. Операции кубического исчисления пересечение, объединение и дополнение
- 9. Кубические покрытия элементов и (and), или (or), и-не (nand) или-не (nor), xor, xnor (доделать!!!)
- 10. Два подхода в минимизации систем булевых функций
- 11. Автоматизация проектирования
- 12. Сумматоры
- 13. Мультиплексоры
- 14. Демультиплексоры
- 15. Дешифраторы
- 16. Шифраторы
- 17. Программируемые логические матрицы (плм или pla)
- 18. Программируемая матричная логика (пмл или pal)
- 19. Универсальные логические модули на основе мультиплексоров (lut)
- 20. Асинхронные триггеры: rs-триггер, r*s*-триггер
- 21. Асинхронные триггеры: jk-триггер, j*k*-триггер
- 22. Асинхронные триггеры: d-триггер, vd-триггер, т-триггер
- 23. Синхронные триггеры
- 24. Одноступенчатые и двухступенчатые триггеры
- 25. Параллельные регистры. Последовательные регистры
- 26. Последовательно-параллельные регистры
- 27. Синтез триггеров на базе других триггеров (доделать!!!)
- 28. Определение абстрактного цифрового автомата
- 29. Автомат Мили
- 30. Автомат Мура
- 32. Задание автомата графом переходов
- 33. Табличный способ задания автоматов
- 34. Автоматная лента
- 35. Задание автомата деревом функционирования
- 36. Матричный способ представления автомата
- 37. Алгоритм трансформации автомата Мура в автомат Мили
- 38. Алгоритм перехода от автомата Мили к автомату Мура
- 39. Концепция операционного и управляющего автомата
- 40. Принцип микропрограммного управления
- 41. Содержательные и закодированные гса
- 42. Канонический метод структурного синтеза сложного цифрового автомат
- 43. Канонический метод синтеза микропрограммных автоматов Мили
- 44. Кодирование состояний автоматов с целью минимизации аппаратурных затрат
- 45. Противогоночное кодирование состояний автоматов. Кодирование состояний автоматов, реализуемых на плис
- 46. Канонический метод синтеза микропрограммных автоматов Мура
- 47. Vhdl-модель управляющего автомата Мили
- 48. Vhdl-модель управляющего автомата Мура
- 49. Vhdl-модель операционного автомата
- 50. Синтез канонической структуры операционного автомата
- 51. Характеристики операционного автомата. Явление гонок в операционных автоматах
- 52. Эквивалентные операции и обобщенный оператор
- 53. Операционный автомат типа I
- 54. Операционный автомат типа м
- 55. Оа типа im с параллельной комбинационной частью
- 56. Оа типа im с последовательной комбинационной частью
- 57. Операционный автомат типа s
- 58. Дребезг механических переключателей и метод его устранения
- 59. Делитель частоты