литература / kondratenko_yu_p_mokhor_v_v_sidorenko_s_a_verilog_hdl_dlya_m
.pdf
Министерство образования и науки Украины
Николаевский государственный гуманитарный университет им. Петра Могилы
комплекса «Киево-Могилянская академия»
Украинский государственный морской технический университет им. адмирала Макарова
Кондратенко Ю.П. Мохор В.В. Сидоренко С.А.
Verilog-HDL
для моделирования и синтеза цифровых электронных схем
Учебное пособие
Под редакцией д.т.н., профессора Ю.П. Кондратенко
Рекомендовано Министерством образования и науки Украины в качестве учебного пособия
Николаев Издательство НГГУ им. Петра Могилы
2002
Предисловие
Настоящее учебное пособие предназначено, в первую очередь, для студентов высших учебных заведений, занимающихся изучением вопросов проектирования цифровых электронных устройств на основе программируемой логики. Кроме того, книга будет полезной для широкого круга специалистов в области цифровой электроники, начинающих знакомство с языками описания аппаратной части и оборудования
(HDL).
Пособие написано на основе опыта преподавания языков описания оборудования в Николаевском филиале Национального университета «Киево-Могилянская академия» (НФ НаУКМА) – дисциплина «Программные средства интеллектуальных систем» для студентов, обучающихся по направлению «Компьютерные науки», специальность «Интеллектуальные системы принятия решений», а также в Украинском государственном морском техническом университете (УГМТУ) – дисциплина «Автоматизированное проектирование цифровых устройств» для студентов, обучающихся по направлению «Компьютеризированные системы, управление и автоматика», специальность «Системы управления и автоматики» с использованием лицензированных программных продуктов компании Aldec Inc.
Пособие состоит из шести разделов. Первая глава содержит общую информацию об области применения языков описания оборудования и, в частности, языка Verilog. Рассматриваются основные типы программируемых логических интегральных схем (ПЛИС). Значительное внимание уделено методике разработки электронных устройств на базе ПЛИС, основанной на синтезе поведенческих моделей с примене-
4 |
Verilog-HDL для моделирования и синтеза цифровых электронных схем |
нием языков описания оборудования. На примере цифрового устройства умножения/накопления комплексных чисел рассмотрена методика понижения уровня абстракции моделей в процессе проектирования.
Вторая глава посвящена описанию основных элементов VerilogHDL, в частности, алфавита языка, правил формирования идентификаторов и констант, структур данных, системных функций, директив компилятора и др.
Втретьей главе рассматриваются вопросы синтеза структурных и интерфейсных моделей цифровых устройств с использованием языка Verilog. Приводится руководство по использованию редактора блокдиаграмм в среде Active-HDL, освещается методика синтеза испытательных стендов для тестирования разработанных проектов электронных систем. Важной частью главы является систематизированный материал, раскрывающий методы синтеза функциональных Verilogмоделей на уровне логических элементов.
Четвертая глава посвящена методам синтеза Verilog-моделей цифровых устройств на уровне потоков данных и поведенческом (алгоритмическом) уровне. Проанализированы также средства управления временными параметрами и показателями функционирования моделей. Кроме того, в главе большое внимание уделяется структуре языка Verilog, организации параллельных и последовательных вычислительных процессов, контролю событий и т.п.
Пятая глава содержит примеры практического применения языка Verilog для синтеза моделей цифровых устройств – сумматора, умножителя знаковых целых чисел, а также контроллера динамической оперативной памяти DRAM. Все проекты содержат как поведенческие, так и синтезируемые (уровня регистровых передач) модели устройств. Кроме того, каждый проект содержит исходный текст испытательного стенда, позволяющего производить имитационное моделирование устройств и детально анализировать основные режимы их функционирования.
Вприложении приведено руководство по имитационному моделированию описанных языком Verilog электронных устройств в среде Active-HDL, а также по визуализации результатов моделирования при помощи временных диаграмм и таблиц.
Учебное пособие |
5 |
Кроме того, учебное пособие содержит краткий англо-русский словарь специальных терминов, наиболее часто встречающихся в англоязычной научно-технической литературе, посвященной вопросам разработки и проектирования цифровых устройств с применением языков описания оборудования.
Усвоение материала учебного пособия позволит студентам приобрести теоретические и практические знания по синтезу цифровых электронных устройств на основе последних мировых достижений в области интеллектуальных средств автоматизированного проектирования.
Учебное пособие также целесообразно использовать для организации самостоятельной подготовки студентов, поскольку все теоретические сведения широко проиллюстрированы примерами с целью повышения уровня практического усвоения материала, а также сопровождаются упражнениями и контрольными вопросами – для самоконтроля приобретенных знаний.
Авторы выражают искреннюю благодарность руководству корпорации Aldec Inc. (США), лично ее президенту доктору Стенли М. Хайдуку за предоставленную возможность работы с полнофункциональной лицензированной САПР Active-HDL 5.1 в процессе преподавания студентам соответствующих дисциплин в УГМТУ и НФ НаУКМА и подготовки данного учебного пособия.
Авторы также сердечно благодарят доктора технических наук, профессора С.И. Горба (Одесская государственная морская академия), доктора технических наук, профессора В.М. Рябенького (Украинский государственный морской технический университет им. адмирала Макарова) и доктора технических наук, профессора А.И. Стасюка (Киевский университет экономики и технологии транспорта) за внимательное рецензирование рукописи, а также за пожелания и рекомендации относительно улучшения отдельных ее разделов, которые были учтены при окончательной доработке рукописи настоящего учебного пособия.
Рекомендации
читателю
При пользовании учебным пособием необходимо учитывать следующие правила оформления программного кода на языке Verilog:
1.Ключевые слова записываются строчными буквами полужирным шрифтом Courier, например:
module |
if |
repeat |
2.Идентификаторы, введенные пользователем в текущей программе, записываются курсивом при использовании шрифта
Courier:
Data_Flow Setting_Point RDX
3.Числовые, строковые, логические и прочие константы записываются прямым светлым шрифтом Courier:
8'b1011_0101 |
4b'zz114e10 |
«String» |
4.Комментарии записываются наклонным шрифтом Times New Roman:
//Программа, реализующая четырехбитный счетчик
//Asynchronous connection
Введение
Язык Verilog предназначен для описания оборудования, а, следовательно, конкретная программа на языке Verilog представляет собой модель соответствующего электронного цифрового устройства.
Основной принцип поведенческого проектирования электронных схем можно сформулировать следующим образом: если модель полностью определяет функциональность устройства и его реакцию на любые допустимые внешние воздействия, то на основе такой модели можно автоматически синтезировать цифровую логическую схему, реализующую моделируемое устройство. Средства автоматического синтеза цифровых схем требуют использования для описания моделей некоторого формального языка. В настоящее время разработан ряд таких языков, получивших в англоязычной научно-технической лите-
ратуре название HDL (Hardware Description Language – язык описания оборудования), которые, в основном, используются в пределах компа- ний-разработчиков, оставаясь их внутренними интеллектуальнопрограммными инструментами. Кроме того, некоторые компанииизготовители интегральных микросхем программируемой логики (например, компания «Альтера») создают собственные языки HDL и могут включать их в состав только собственных интегрированных сред разработки и синтеза логических цепей. По-настоящему широкое распространение получили VHDL и Verilog – языки межнационального общения в сфере разработки электронных цифровых устройств. Разработчики электронных схем перемещают основное внимание с непосредственного проектирования на верификацию проектов, которая сегодня занимает около 70% проектного времени и существенно влия-
8 |
Verilog-HDL для моделирования и синтеза цифровых электронных схем |
ет на качество проектирования электронных цифровых устройств в целом [26].
Главная проблема при разработке языков описания оборудования состоит в создании механизмов параллельной обработки информации и решении связанных с ней задач разделения вычислительных процессов и данных между процессами. Кроме того, необходимо адекватно моделировать реальную передачу информации в устройствах, которая не происходит в природе мгновенно. На реальные каналы связи существенно влияют внешние и внутренние возмущающие воздействия: возникают шумы и искажения, проявляется взаимовлияние между отдельными каналами передачи информации, сигнал затухает на расстоянии и т.д.
Обычно, в связи с большими трудностями в моделировании указанных процессов, каналы связи рассматриваются как идеальные, но при этом вводится определенная задержка передачи информации. Такое допущение с высокой вероятностью приводит к несоответствию между моделями, т.е. к неадекватности моделей реальным процессам. Поэтому процесс разработки HDL-моделей является многоэтапным, с многократным тестированием фрагментов модели и проекта в целом, в частности, на первом этапе – имитационным тестированием, а затем и экспериментальным, с возможностью возврата к какому-либо из предыдущих этапов.
- 1 -
Применение языка Verilog и методология проектирования цифровых устройств
На современном этапе развития электроники и цифровой техники основной областью применения языков описания оборудования является поведенческое проектирование программируемых логических интегральных схем FPGA- и CPLD-типов.
1.1.Область применения языков описания оборудования
1.1.1.Общая характеристика интегральных схем программируемой логики
Интегральные микросхемы (ИМС) типа FPGA (Field Programmable Gate Array) представляют собой программированные пользователем вентильные матрицы [2; 9; 14; 18]. Современная электронная индустрия предоставляет широкий диапазон ИМС FPGAтехнологии с самыми различными показателями по быстродействию, сложности реализуемых алгоритмов, помехозащищенности и стоимости. Это позволяет осуществлять на их основе проектирование широкого спектра цифровых электронных устройств, среди которых следует назвать: средства объединения различных по питанию интерфейсов, преобразователи кодов, периферийные контроллеры, микропрограммные устройства управления, универсальные и специализированные
10 |
Verilog-HDL для моделирования и синтеза цифровых электронных схем |
процессоры, устройства цифровой обработки сигналов и многие другие. Программируемые интегральные схемы наиболее широко применяются в сфере телекоммуникаций, в компьютерных сетях, в средствах цифровой обработки данных и в промышленном производстве [13]. В настоящее время трудно найти мобильный телефон, пейджер, сетевую карту или концентратор, не содержащий хотя бы одной FPGA микросхемы. Высокая производительность и параллелизация вычислительных алгоритмов ПЛИС FPGA-типа делает возможным их широкое применение в современных информационно-измерительных системах и комплексах [5; 6] и других типах интеллектуальных компьютеризированных систем [2; 10; 11; 21].
1.1.2. Интегральные схемы FPGA-типа
Более детально рассмотрим обобщенную структуру кристалла ПЛИС FPGA-типа [18]. По периферии верхнего слоя кристалла размещаются блоки ввода/вывода (БВВ). Следует отметить, что здесь и ниже, говоря о слоях, авторы имеют в виду условное разделение микросхемы, а не реальную топологию размещения полупроводниковых элементов в кристалле. БВВ могут быть запрограммированы для выполнения функций входного или выходного буфера, а также буфера с запоминанием и др. В некоторых сериях FPGA-ИМС уровень напряжения на отдельных БВВ может быть различным, что позволяет связывать в одной системе устройства с интерфейсами, отличающимися электрическими стандартами питания.
В центре кристалла в виде матрицы размещены конфигурируемые логические блоки (КЛБ). Быстродействие всей микросхемы в значительной степени определяется временной задержкой «вход-выход» одного КЛБ. Структура КЛБ зависит от серии микросхем. Так, например, в ИМС ХС2000 каждый КЛБ имеет 2 выхода, 4 входа общего назначения, специальный вход синхронизации (тактовый вход) и запоминающий элемент. КЛБ интегральных микросхем этой серии может генерировать любую логическую функцию четырех переменных или две логические функции трех переменных. Входные сигналы для вычисления логических функций могут поступать с четырех входов и выхода запоминающего элемента.
Учебное§ 1. Применениепособиеязыка Verilog и методология проектирования цифровых устройств |
11 |
Область между конфигурируемыми логическими блоками называется областью программируемых межсоединений [18] и представляет собой развитую иерархию металлических линий связи, в точках пересечения которых размещены специальные быстродействующие транзисторы. Функция области межсоединений состоит в обеспечении связи между любыми выводами КЛБ и БВВ. Нужный маршрут межблоковых соединений в FPGA-ПЛИС реализуется коммутацией соответствующих линий с помощью транзисторов.
Нижний слой кристалла занимает теневое запоминающее устройство, информация в элементах которого определяет логические функции КЛБ, конфигурацию БВВ и маршруты межсоединений.
Программирование микросхемы FPGA состоит в загрузке теневого запоминающего устройства, каждый бит которого непосредственно связан с одним из настраиваемых элементов верхнего слоя. Последние серии микросхем компании Xilinx Inc. позволяют программировать ИМС FPGA по частям, без прекращения ее работы [32]. Реализация такого подхода открывает широкие возможности по удаленному управлению автономными электронными устройствами, например, при модернизации их программного обеспечения.
Микросхемы FPGA построены по принципу оперативного запоминающего устройства, и, следовательно, после отключения питания информация в теневом запоминающем устройстве стирается. В связи с этим на соответствующих платах дополнительно устанавливают специальные микросхемы ПЗУ, позволяющие при каждом включении перепрограммировать FPGA-микросхему. Такой подход значительно ослабляет уровень защиты от нелегального копирования электронных схем, так как программу для ПЛИС несложно перехватить на пути между ПЗУ и FPGA. Один из способов защиты, используемых компаниями – производителями ПЛИС, состоит в засекречивании структуры битового потока, программирующего ПЛИС. В секрете сохраняется соответствие между битами программирующего потока и формирующейся цепью логических элементов. Таким образом, возможность нелегального копирования сохраняется, однако расшифровка внутренней структуры и деталей реализации алгоритмов ПЛИС представляет собой более сложную, а в некоторых случаях и неразрешимую задачу.
