Изучаем ActiveHDL 7.1 - Урок 1. Знакомство с пакетом
←
→
Транскрипция содержимого страницы
Если ваш браузер не отображает страницу правильно, пожалуйста, читайте содержимое страницы ниже
134 проектирование Изучаем Active(HDL 7.1. Урок 1. Знакомство с пакетом Не правда ли, до боли знакомая «картинка»: истерзанная бокорезами, скальпелем и паяльником печатная плата, хранящая тайны ненайденных ошибок. Вокруг нагромождение перепутанных проводами железных ящи( ков — блоков питания, генераторов и осциллографов. А рядом ваш вер( ный друг — дымящийся паяльник. Что это? Ностальгия разработчика аппаратуры старой закалки по «давно минувшим дням»? Ныне другие времена. Теперь предмет своего творчества вы можете по( лучить, в буквальном смысле «не отходя от компьютера». Да и техноло( Александр ШАЛАГИНОВ гия создания аппаратуры выглядит совсем по(другому, напоминая боль( shalag@vt.cs.nstu.ru ше стиль работы программиста, чем схемотехника. ем же должен владеть современный нологий создания электронной аппаратуры. Чтобы запустить управляющую оболочку Ч разработчик? По крайней мере, двумя инструментами — языком описания аппаратуры (типа Verilog или VHDL) и сре- До недавнего времени образцом решения та- ких задач считались разработки на базе се- рийно выпускаемых стандартных интеграль- пакета, достаточно щелкнуть на пик- тограмме. При установке данного про- граммного продукта эта иконка автоматиче- дой компьютерного проектирования (типа ных микросхем, и большинство САПР ори- ски помещается на рабочем столе вашего Active-HDL, Xilinx ISE или Quartus II). ентировались на реализацию именно этой компьютера. Что же касается типового маршрута про- технологии проектирования. На стартовой панели Getting Started (рис. 1) ектирования, то он примерно такой. На язы- Идеальным вариантом казались «сквозные» вы можете выбрать из предложенного спис- ке описания аппаратуры (HDL), похожем на САПР, которые позволяли выполнить всю ка и открыть существующее рабочее прост- язык программирования, вы описываете по- цепочку проектирования: от входного опи- ранство (Open existing workspace) или со- ведение или структуру разрабатываемого уст- сания до создания эскиза печатной платы. здать новое (Create new workspace). Мы нач- ройства, моделированием избавляетесь от Примерами сквозных САПР являются PCAD, нем знакомство с создания нового рабочего ошибок в нем, после чего синтезируете и ре- DesignLab и OrCAD. пространства, а потому установим переклю- ализуете свой проект. Но не на печатной пла- В последние годы набирают силу новые чатель в положение Create new workspace. те, а на кристалле микросхемы программи- технологии проектирования электронной ап- Понятие «рабочее пространство» является руемой логики (ПЛИС). паратуры, основанные на современных пер- относительно новым, к нему мы еще вернем- Остается только запрограммировать ее, по- сональных компьютерах, интегрированных ся, а пока удовлетворимся простым поясне- лучив физическую реализацию своего про- САПР и программируемых микросхемах нием. Это еще одна надстройка над совокуп- екта. Заметьте, у вас в руках не виртуальное, (ПЛИС). ностью обычных проектов, своего рода су- а осязаемое, существующее «в железе» уст- Яркий представитель таких САПР нового перпроект или мультипроектная рабочая ройство. И, что немаловажно, результат по- поколения — это интегрированная среда про- среда. Вы можете «держать под рукой» сразу рой достигается без всякого паяльника, нуж- ектирования Active-HDL 7.1. Ее отличает осо- несколько проектов и иметь быстрый доступ на лишь подходящая отладочная плата. бая легкость и, если можно так выразиться, к их совокупному ресурсу. Предлагаемые «Уроки», по мнению автора, элегантность в работе. Фирма ALDEC, созда- На второй панели New Workspace (рис. 2) должны помочь освоить, пожалуй, самый попу- тель этого программного продукта, год от го- необходимо напечатать имя рабочего прост- лярный среди разработчиков цифровой аппара- да совершенствует свое детище и наделяет его туры продукт — интегрированную среду про- новыми возможностями. Предлагаемая вер- ектирования Active-HDL 7.1. Работать в ней — сия данного пакета по многочисленным оп- одно удовольствие, в чем, как мы надеемся, вы росам пользователей и специалистов зани- убедитесь уже после первого ознакомительного мает лидирующие позиции в мире. урока. Вам будет предложено, по меньшей мере, К сожалению, серьезным препятствием на 15 уроков, причем каждый из них заканчивает- пути использования названной системы в об- ся практическим результатом. Согласитесь, про- разовательных, проектных и коммерческих межуточный успех, пусть и самый маленький, организациях России является дефицит ли- служит хорошим стимулом к тому, чтобы сде- тературы по этому пакету на русском языке. лать следующий шаг. Ну что, начнем? Цель предлагаемых «Уроков» — хотя бы не- много улучшить сложившуюся ситуацию, по- Введение быстрее и без моральных потрясений начать Рис. 1. На стартовой панели устанавливаем изучение новой и перспективной САПР — ин- переключатель в положение Create new workspace Автоматизированное проектирование — тегрированной среды проектирования циф- («Создать новое рабочее пространство») это магистральное направление развития тех- ровой аппаратуры Active-HDL 7.1. КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 3 '2009
проектирование 135 Рис. 2. Задаем имя рабочего пространства и его месторасположение на диске ранства и указать место, где оно будет распо- ложено. По умолчанию вам будет предложе- на папка my_designs, находящаяся в корне того логического диска, на котором установ- Рис. 4. Управляющая оболочка (Framework) системы проектирования Active2HDL 7.1 лена система. Чтобы не делать потом лишнюю работу, убедитесь, что установлен флажок Add New щаться к уже пройденным панелям, нажать шрут проектирования. Он ограничивает на- Design to Workspace. на кнопку «Готово». ши действия тремя способами описания про- На третьей панели New Design Wizard С этого момента собственно и начинается екта (HDE, FSM, BDE) и последующим (рис. 3) по умолчанию предлагается режим активная работа по созданию проекта. Она функциональным моделированием (functional Create an Empty Design with Design Flow выполняется в интегрированной среде про- simulation). Правда, перед моделированием («Создать пустой проект с использованием ектирования Active-HDL 7.1 (рис. 4). В стро- потребуется еще установка некоторых опций менеджера маршрута проектирования»). Это ке заголовка видно это название, а правее (options). наиболее разумный вариант, в чем мы позд- в круглых скобках высвечивается имя загру- Если мы собираемся создавать проект в тек- нее убедимся. женного рабочего пространства и проекта: стовом формате на языке VHDL, Verilog или Lessons, Lesson_1. Далее следует название ак- SystemC, то следует нажать кнопку HDE. В ка- тивной закладки — Design Flow Manager. честве рабочего инструмента будет вызван текстовый редактор HDE (от слов Hardware Ввод проекта Description language Editor). Если мы хотим представить описание про- В начале проектирования на экране мони- екта в виде диаграммы состояний конечного тора открыты всего три окна интегрирован- автомата (Finite State Machine), то следует ной среды Active-HDL 7.1: щелкнуть на кнопке FSM. Однако мы соби- • Design Browser — окно просмотра проек- раемся рисовать схему, а потому нажмем на та, в котором отображается все содержи- кнопку BDE и вызовем схемный редактор — мое рабочего пространства Lessons. Пока Block Diagram Editor. Заметим, что это дале- в рабочем пространстве только один про- ко не единственный способ начать работу. ект Lesson_1 с пустой рабочей библиоте- Итак, щелкнув на кнопке BDE, мы вызовем кой Lesson_1 library. Горячая клавиша «мастер» создания нового исходного файла Alt+1 включает и выключает это окно. New Source File Wizard. Рис. 3. Выбираем вариант создания проекта • Console — окно для интерактивного вво- На первой диалоговой панели «мастера» с помощью менеджера маршрута проектирования да и/или вывода текстовой информации. нам делать нечего. Надо просто убедиться, Design Flow Manager Все инструментальные средства пакета вы- что включен флажок Add the generated file to дают в это окно сообщения о своей рабо- the design — «Добавить генерируемый файл те, в том числе предупреждения и ошибки. к проекту» (а по умолчанию он установлен), На четвертой панели сохраняем все, как есть Поэтому надо взять себе за правило регу- и перейти на следующую панель. (установки по умолчанию), потому что син- лярно сюда заглядывать (горячая клавиша На второй панели предлагается выбрать тез и реализация проекта не поддерживаются Alt+0 открывает или закрывает это окно). язык описания аппаратуры, на который по- данным пакетом, если на вашем компьютере Более того, вы можете сами вводить в ок- зднее будет конвертирована наша схема. не установлены дополнительные программ- но Console различные команды, подобно По умолчанию — это язык VHDL. Нас он ные средства. Во всяком случае, обсуждение тому, как это делается с помощью команд- вполне устраивает, поэтому оставляем все, этих вопросов не входит в планы первоначаль- ной строки MS-DOS. как есть, и продвигаемся на третью панель. ного знакомства с системой Active-HDL 7.1. • В третьем окне активна закладка Design Flow Здесь необходимо ввести имя исходного фай- На пятой панели введем имя проекта, на- Manager («Менеджер маршрута проектиро- ла, например, mux2_schema (двухканальный пример Lesson_1 (урок_1). Обратите внима- вания»). Обычно данное окно занимает мультиплексор), где система будет хранить ние, синхронно с вводом имени проекта запол- бóльшую часть экрана потому, что именно схемное описание проекта. По умолчанию няется и нижнее поле, где необходимо задать здесь пользователь создает основные доку- файл получит расширение *.bde. имя рабочей библиотеки. По умолчанию пред- менты проекта. Вы можете развернуть ок- Имена объекта проекта (entity) и его архи- полагается, что они будут иметь одинаковые но на весь экран, нажав горячую клавишу тектурного тела (architecture body) могут сов- имена, что представляется весьма разумным. Alt+F9 или щелкнув на значке , располо- падать с названием файла, поэтому второе На последней панели мастера New Design женном в правом верхнем углу экрана. и третье поля заполнять не обязательно. Wizard вы должны проверить правильность На закладке Design Flow Manager изобра- На четвертой панели «мастер» предлагает введенных данных и, если нет нужды возвра- жен доступный для заданных установок мар- ввести интерфейсные порты, соответствую- КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 3 '2009 www.kit(e.ru
136 проектирование Второй шаг На втором шаге элементы схемы необхо- димо соединить проводниками в соответст- вии со структурой мультиплексора. Нажмем на панели инструментов Diagram Items кнопку Wire или на клавиатуре кла- Рис. 7. Инструментальная панель вишу W. По изменившейся форме курсо- Diagram Items – VHDL ра станет ясно, что активизировался ре- жим рисования проводников схемы. Поместите курсор в точку, из которой вы потребуются всего три пиктограммы, отме- собираетесь начать проводник, и щелкните ченные комментарием на рис. 7. левой кнопкой мыши (ЛКМ). Переместите Рис. 5. Вводим данные курсор в точку назначения и опять щелкни- об интерфейсных портах проекта Первый шаг те ЛКМ. Если проводник имеет сложную фор- На первом шаге необходимо найти и раз- му, придется фиксировать каждый его сег- местить на чертеже схемы графические изо- мент (излом, угол) щелчком мыши (о других щие входам и выходам проектируемого уст- бражения нужных нам элементов. способах создания соединений мы поговорим ройства. Мультиплексор на два входа, кото- Чтобы увидеть «инструментальный ящик на следующих уроках). Законченная схема рый мы собираемся проектировать, имеет два с символами», щелкнем по иконке Show должна выглядеть так, как показано на рис. 10. информационных входа D0 и D1, селектор- Symbols Toolbox или нажмем на горячую ный вход A и выход Y. Нажимая на кнопку клавишу S (рис. 7). New или клавишу Enter, введем описания Появится диалоговая панель с одноимен- портов, как показано на рис. 5. ным названием (рис. 8). В режиме, заданном Кроме имени порта необходимо указать по умолчанию, для рисования схемы доступ- его направление (in — входной, out — вы- на только одна библиотека со встроенными ходной, inout — двунаправленный) и тип (bit, символами Built-in symbols. boolean, integer, std_logic и т. д.). По умолча- Раскрыв ее содержимое, вы увидите весь- Рис. 10. Выполняем электрические соединения нию тип порта установлен как std_logic, что ма скудный набор простейших логических в схеме мультиплексора соответствует нашим желаниям. Щелкните элементов, там нет даже триггеров. Однако по кнопке Type, и вы убедитесь в сказанном. для рисования схемы мультиплексора их Нажатие на кнопку «Готово» заканчивает вполне достаточно. Третий шаг ввод портов, и управление передается схем- На третьем шаге проводникам схемы надо ному редактору Block Diagram Editor. назначить имена (рис. 11). Следует, правда, В главном окне среды Active-HDL 7.1 по- заметить, что в простых схемах, как наша, является новая закладка с именем открыто- этот шаг можно вообще пропустить. го в этом редакторе файла mux2_schema.bde. Действительно, цепи, подключенные к тер- Мы уже знаем, что это схемный файл. Обра- миналам (входным и выходным портам), ав- тите внимание, он добавлен и в окно просмо- томатически получают те же самые названия, тра проекта Design Browser (рис. 6). Такие что и соответствующий порт. А внутренние файлы помечаются специальным значком проводники система именует по шаблону, на- с изображением символа . пример, NET9, NET13, NET17 и др., так что Рис. 8. Инструментальный ящик у них тоже есть системные имена. символов (Symbols Toolbox) Найдем подходящие для построения муль- типлексора элементы (and2, inv, or2) и от- буксируем их один за другим на чертеж схе- мы (методом буксировки Drag & Drop). Чтобы сделать видимыми позиционные Рис. 11. Проводникам схемы назначаем имена обозначения символов, исполним команду View Texts из меню Diagram. На открывшей- Рис. 6. В проект добавлен схемный файл ся панели View Texts установим флажок Однако если пользователь собирается кон- mux2_schema.bde NAME. Позиционные обозначения всех сим- тролировать сигналы на внутренних цепях, волов на схеме станут видимыми (рис. 9). желательно присвоить им какие-то осмыс- ленные названия, хотя бы такие: F1, F2 и F3 В рабочей области схемного редактора вид- (рис. 11). Тогда их станет легче находить. ны только графические изображения пор- Чтобы сделать имя видимым на экране мо- тов. Схему мультиплексора еще предстоит нитора, достаточно дважды щелкнуть на про- нарисовать. Этим мы сейчас и займемся. воднике мышью, затем на открывшейся диа- Для удобства рисования схемы развернем ок- логовой панели Wire Properties выбрать заклад- но редактора Block Diagram Editor на пол- ку View Text и установить флажок NAME. ный экран (горячая клавиша Alt+F9) и оты- Рис. 9. Размещаем на чертеже Так же просто заменить системное имя поль- щем инструментальную панель Diagram схемы логические элементы мультиплексора зовательским. Откройте диалоговую панель Items – VHDL — «Элементы схемы VHDL» и визуализируем их позиционные обозначения Wire Properties и введите в поле Segment же- (рис. 7). При создании простой схемы нам лаемое имя. КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 3 '2009
проектирование 137 Четвертый шаг случае в потоковой форме (это особенность Для входных сигналов D0, D1 и A зададим На четвертом шаге полезно (хотя и не обя- элементов встроенной библиотеки). временные диаграммы. В пакете есть много зательно) выполнить электрический кон- Закончив создание схемы, обратим свой различных способов выполнить такую рабо- троль схемы (команда Check Diagram в вы- взор на окно просмотра проекта Design ту. Подробно мы познакомимся с ними на падающем меню Diagram). Эта процедура Browser (рис. 12). Там слева от имени схем- втором уроке. А сейчас воспользуемся одним весьма полезна, если у вас остаются сомне- ного файла по-прежнему красуется подозри- из самых простых стимуляторов типа Clock. ния относительно правильности нарисован- тельный знак вопроса . Значит, Откроется диалоговая панель Stimulators ной схемы. Система не только проинформи- что-то не так. (рис. 14). В окне Signals выделим первый сиг- рует вас о числе ошибок и предупреждений, Вероятно, вы уже догадываетесь, в чем при- нал D0, в окне Type определим для него тип но и покажет те места на схеме, где они обна- чина: система подсказывает, что созданный стимулятора Clock и в правом окне зададим ружены. проект необходимо откомпилировать. Щелк- частоту (Frequency) 10 МГц. Нажмем кноп- нем на этой строке ПКМ и исполним коман- ку Apply и, не закрывая панель, перейдем Пятый шаг ду Compile (она дублируется горячей клави- к программированию второго сигнала D1. На пятом шаге, который тоже можно про- шей F11 и иконкой на инструментальной пустить, графическое описание проекта (в на- панели). Если компиляция пройдет успеш- шем примере — схема) должно быть конвер- но, то вместо знака «вопрос» появится зеле- тировано в текстовое описание (в нашем при- ная «галочка»: . мере — в формат языка VHDL). Выполняется такая работа командой Задание диаграмм Generate HDL Code, которую можно активи- входных сигналов зировать щелчком по иконке или из вы- падающего меню Diagram. Кроме того, эта Мысленно поздравив себя с первым успе- команда «висит» и на ПКМ всплывающего хом, двинемся дальше. Предстоит еще задать меню. Выполнив ее, вы обнаружите в окне временные диаграммы на входах мульти- Рис. 14. Программируем внешние воздействия просмотра проекта Design Browser новый плексора, без них симулятор отказывается D0, D1 и A файл mux2_schema.vhd (рис. 12). работать. Временные диаграммы внешних воздейст- вий задаются в специальном окне редактора Для него зададим частоту вдвое меньше — сигналов Waveform Editor, который вызывает- 5 МГц. Наконец, для третьего входа A назна- ся щелчком по пиктограмме New Waveform чим частоту 1 МГц. Покончив с описанием на инструментальной панели Standard. входных сигналов, закроем панель Stimulators Дословно Waveform переводится как «форма (кнопка Close). волны», «сигнал». Отсюда и название — ре- дактор сигналов, или сигнальный редактор. Моделирование проекта При запуске редактор Waveform Editor от- крывает новую закладку поверх ранее нари- Теперь все готово для моделирования. Рис. 12. В проекте появился новый текстовый файл сованной схемы, которая состоит из двух ча- Выполним необязательную инициализацию mux2_schema.vhd стей. Левая часть предназначена для ввода схемы (команда Initialize Simulation из ме- сигналов, правая — для показа временных ню Simulation). Рядом с именами сигналов диаграмм. в столбце Value появятся начальные значе- Познакомиться с его содержимым можно, Щелкнем ПКМ в левой части окна и выбе- ния всех сигналов (рис. 15). Выходной сиг- если щелкнуть по иконке . Рассмотрим ав- рем в контекстном меню команду Add Signals. нал Y получит значение U (Uninitialized — томатически сгенерированное VHDL-описа- Она дублируется также на инструментальной не инициализировано). Если сейчас вы пере- ние мультиплексора mux2_schema: панели иконкой . Откроется одноименная ключитесь на закладку mux2_schema.bde, панель со списком всех доступных сигналов: то увидите, что и на схеме появились те же library IEEE; D0, D1, A, Y, F1, F2, F3. С помощью клавиш самые значения сигналов. use IEEE.std_logic_1164.all; Shift или Ctrl сформируем список сигналов, Есть несколько способов запустить схему entity mux2_schema is которые мы хотим наблюдать на экране мо- на моделирование (рис. 16). Проще всего вы- port(A, D0, D1 : in STD_LOGIC; нитора, например D0, D1, A и Y. Нажатием полнить команду Run For из меню Simulation. Y : out STD_LOGIC); end mux2_schema; кнопки Add перенесем выбранные сигналы Она дублируется кнопкой и горячей кла- architecture mux2_schema of mux2_schema is в окно редактора Waveform Editor (рис. 13) вишей F5. Имитатор, получив такую коман- signal F1, F2, F3 : STD_LOGIC; и закроем панель Add Signals (кнопка Close). ду, продвинет моделирование на один шаг, begin Выделим один или несколько программи- величина которого задается в соседнем окне F2
138 проектирование Рис. 17. Задаем финальное время моделирования Рис. 16. Кнопки управления процессом моделирования Именно так и должен работать мультиплек- сор (коммутатор) на два входа. Сохраним результаты моделирования. С этой целью щелкнем ПКМ на названии за- кладки с временными диаграммами и испол- ним команду Save. Редактор предложит со- хранить результаты в файле Waveform Editor 1.awf. Лучше отказаться от такого предложе- ния и ввести более информативное имя сиг- нального файла, например mux2_schema.awf. В среде Active-HDL 7.1 результаты модели- Рис. 18. Результаты моделирования мультиплексора mux2_schema рования можно представить не только в гра- фической, но и в табличной форме. Вернитесь к началу моделирования (команда Restart) этой команды продвинет время моделирова- Если вы предпочитаете выполнить непре- и выполните команду New List (иконка ). ния еще на один шаг и т. д. В паузе перед оче- рывное моделирование на всем интересую- Откроется новая закладка list1, на которую редным шагом вы можете изменить не толь- щем вас интервале модельного времени, надо поместить интересующие нас сигналы ко его длительность, но и перепрограммиро- то можно воспользоваться командой Run D0, D1, A и Y (команда Add Signals или кноп- вать параметры входных сигналов. Такое Until… из меню Simulation. Она дублиру- ка ). Выполнив несколько шагов модели- пошаговое моделирование весьма полезно ется кнопкой на инструментальной па- рования, вы увидите результаты в табличной при отладке схемы. нели (рис. 16). При этом откроется окно форме (рис. 19). с одноименным названием (рис. 17), где и следует задать желаемое время, например 1.2us (1,2 мкс). На инструментальной панели есть еще од- на «весьма опасная» команда Run (Alt+F5). Она запускает моделирование на неопреде- ленное время, пока не будут обработаны все планируемые события (transactions) в схеме. Если хотя бы один входной сигнал описан как периодический (Clock), события на вхо- Рис. 19. Табличная форма представления дах будут генерироваться бесконечно, и ими- результатов моделирования (фрагмент) татор не остановится до тех пор, пока время моделирования не достигнет максимального значения TIME'HIGH. Просматривая различные закладки (схему, Лучший выход из создавшейся ситуации — временные диаграммы, таблицу), вы обна- воспользоваться командой принудительно- ружите, что они синхронно заполняются дан- го останова, щелкнув на иконке Break , ными по мере того, как продвигается моде- или выполнить команду Restart . Возмож- лирование в пошаговом режиме. но, по этой причине команда Run отсутство- вала на инструментальной панели более ран- Выводы них версий пакета. Заметим, что управлять моделированием Краткое знакомство с типовым маршрутом можно не только из графического интерфейса проектирования в среде Active-HDL состоя- пользователя, но и из окна консоли (Console). лось. Как говорится, лиха беда начало. Кажет- Наберите в командной строке следующий ся, оно у нас получилось вполне успешным. текст: run 1200ns и нажмите Enter. Модели- Теперь, следуя пословице «Повторенье — рование сразу продвинется на заданное вре- мать ученья», попробуйте самостоятельно мя (рис. 18). проделать ту же самую работу еще раз, вы- На временных диаграммах видно, что пока брав в качестве объекта проектирования лю- на селекторном входе A низкий уровень, бую схему, которая вам понравится. на выход передается входной сигнал D0. Если На следующем уроке мы познакомимся A принимает значение '1' (момент времени с различными способами описания внешних 500 ns), на выходе появляется сигнал D1. воздействий. ■ КОМПОНЕНТЫ И ТЕХНОЛОГИИ • № 3 '2009
Вы также можете почитать