Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Бродин В.Б., Калинин А.Б. Схемы на микроконтроллерах и БИС программируемой логики, 2002

.pdf
Скачиваний:
265
Добавлен:
11.03.2016
Размер:
9.1 Mб
Скачать

ГЛАВА 5. ПРОЕКТИРОВАНИЕ ЦИФРОВЫХ УСТРОЙСТВ НА БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

229

Тип

Корпуса

Входы

I/O

Ячейки

Объем

RAM,

Fmax,

Ориентировоч­

микро­

 

 

 

 

кода,

бит

MHz

ная цена,

схемы

 

 

 

 

Кбайт

 

 

$

ЕР20К30Е

Т144

6

86

1200

42

2457

370

22

 

В 144

 

87

 

 

6

 

 

 

Р208

 

122

 

 

 

 

 

ЕР20К60Е

В324

 

122

2560

 

 

 

 

Т144

6

86

79

3276

370

40

 

В 144

 

87

 

 

8

 

 

 

Р208

 

142

 

 

 

 

 

 

Р240

 

145

 

 

 

 

 

 

В324

 

190

 

 

 

 

 

ЕР20К100Е

Т144

6

86

4160

124

5324

370

54

 

В144

 

87

 

 

8

 

 

 

Р208

 

142

 

 

 

 

 

 

Р240

 

176

 

 

 

 

 

 

В324

 

241

 

 

 

 

 

ЕР20К100

Т144

6

95

4160

121

5324

370

54

 

Р208

 

153

 

 

8

 

 

 

Р240

 

183

 

 

 

 

 

ЕР20К160Е

В324

 

246

6400

 

 

 

 

Т 144

6

82

186

8192

370

91

 

Р208

 

137

 

 

0

 

 

 

Р240

 

169

 

 

 

 

 

 

В356

 

310

 

 

 

 

 

ЕР20К200Е

Р208

6

130

8320

240

1064

370

136

 

Р240

 

162

 

 

96

 

 

 

В356

 

265

 

 

 

 

 

ЕР20К200

Р208

6

138

8320

239

1064

370

170

 

Р240

 

168

 

 

96

 

 

 

В356

 

271

 

 

 

 

 

Двунаправленный ввод/вывод обеспечивается на частотах до 370 МГц. Поддерживаются режимы LVDS, SSTL, GTL+ ввода/вывода. Имеется встроенная ФАПЧ на линиях синхронизации. В целом, это семейство пре­ доставляет проектировщику настолько большие возможности, что одной из важнейших проблем становится маркетинг - что делать и в расчете на ка­ кого потребителя.

Семейство АСЕХ 1К создано фирмой Altera как альтернатива полу-

заказным БИС (ASIC - Application Specific Integrated Circuit), поэтому микросхемы этой серии имеют высокую степень интеграции и низкую при­ веденную стоимость логической ячейки. БИС имеют корпуса с общим ко­ личеством выводов от 100 до 484. Высокая степень интеграции достигнута благодаря использоваю низковольтного напряжения питания 2,5 В, харак­ терной особенностью является интерфейс M ultiVoltl/O . Двунаправлен­ ный ввод/вывод обеспечивается на частотах до 250 МГц.

Семейство включает следующие микросхемы:

230

Тип микро­ схемы

ЕР1К10

ЕР1К30

ЕР1К50

ЕР1К100

СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

Корпуса

Входы

i/o

Ячейки

Объем

RAM,

Fmax,

Ориентировоч­

 

 

 

 

кода,

бит

MHz

ная цена,

тюо

 

60

 

Кбайт

12288

250

$

6

576

22

10

Т144

 

86

 

 

 

 

 

Р208

 

124

 

 

 

 

 

В256

 

124

 

 

 

 

 

Т144

6

96

1728

58

24576

250

16

Р208

 

141

 

 

 

 

 

В256

 

165

 

 

 

 

22

Т144

6

96

2880

76

40960

250

Р208

 

141

 

 

 

 

 

В256

 

180

 

164

 

 

 

Р208

6

141

4992

49152

250

34

В256

 

180

 

 

 

 

 

Организация матриц различных семейств ПЛИС Altera, структура ло­ гических ячеек, динамические параметры и другая техническая информа­ ция приведены в каталогах фирмы Altera, часть информации в переводе можно почерпнуть в [2]. Мы на этом останавливаться не будем, поскольку считаем основной целью этой главы рассмотрение всего цикла реализации на ПЛИС проекта цифрового устройства, особенно с использованием описания на языке AHDL.

5 .2 . Система проектирования MAX+plusII

В качестве средства автоматизации проектирования устройств на осно­ ве собственных микросхем фирма Altera разработала систему MAX+plusII. Эта система состоит из 11 программ-обработчиков проекта (приложений), которые функционируют под управлением программы Manager. Система является полноцикловой, т.е. поддерживает не отдельные этапы проекти­ рования (как системы типа CAD - computer aided design), а сквозной про­ цесс от ввода и контроля описания до программирования микросхемы ПЛИС. Такие системы получили название EDA - electronic design automa­ tion.

Вид окна Manager системы MAX+plusII с открытым списком прило­ жений приведен на рис. 5.1.

Проект в системе MAX+plusII может быть иерархическим и состоять из набора модулей. Каждый модуль содержит описание части проекта, формой описания может быть графическое представление принципиальной схемы, текст на языках AHDL/VHDL/Verilog, логико-временные диа­ граммы функционирования.

Для создания исходных модулей в состав приложений включены ре­ дакторы: графический - Graphic Editor, текстовый - Text Editor, логико­ временных диаграмм Waveform Editor. Любой файл (модуль) может быть

ГЛАВА 5. ПРОЕКТИРОВАНИЕ ЦИФРОВЫХ УСТРОЙСТВ НА БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

231

представлен в графическом виде как символ. Это можно сделать явно с использованием редактора символов - Symbol Editor. Далее эти символы могут быть использованы при создании иерархического проекта.

Рис. 5.1. Вид окна Manager системы Max+plusll с открытым списком приложений

Пользователю доступны обширные библиотеки примитивов, макро­ функций и стандартных компонентов 74 серии. При создании графических модулей возможен импорт файлов из известной системы OrCAD. Система MAX+plusII работает в среде Windows и в полной мере использует пре­ имущества многооконного интерфейса. В частности, различные исходные модули можно одновременно просматривать в окнах с помощью различ­ ных редакторов.

В приложение Compiler входят все средства обработки исходных мо­ дулей, включая трансляцию, размещение и трассировку на ячейках опре­ деленного типа микросхемы ПЛИС, связывание. Перед трансляцией с по­ мощью препроцессоров различные формы описания приводятся к едино­ образному представлению. В процессе трансляции формируются как целе­ вые файлы, так и вспомогательные (служебные). Перечень формируемых файлов определяется опциями (ключами) трансляции.

Анализ иерархического проекта может быть выполнен с помощью приложения Hierarchy Display. Отображаются все модули проекта и их взаимосвязи, а также все типы файлов, сформированные в процессе обра­ ботки проекта.

232

СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

 

Перед программированием ПЛИС целесообразно выполнить проверку

функционирования спроектированного устройства. Такая проверка на уровне моделирования может быть выполнена с помощью приложения Simulator. Входными данными для него являются файл проекта после трансляции и тестовые векторы, а результатом - логико-временные диа­ граммы функций выходов.

Следует отметить, что при функциональном моделировании проверя­ ется первый вариант проекта, который не учитывает особенностей реали­ зации на конкретной микросхеме ПЛИС. После успешного выполнения этого этапа проект привязывается к структуре микросхемы, система вы­ полняет конфигурацию ячеек ПЛИС и трассировку связей между ними. При этом второй вариант приобретает некоторую избыточность, например из-за необходимости увеличить коэффициент разветвления по определен­ ному выходу.

После завершения проверки функционирования возможен анализ вре­ менных параметров, определение критического пути и т.д. с помощью приложения Timing Analyser. И в этом случае результаты получаются с помощью моделирования на инструментальном компьютере.

Увидеть связи логических элементов внутри ПЛИС и назначения вы­ водов микросхемы, изменить конфигурацию вручную можно с помощью редактора FloorPlan Editor.

На завершающем этапе работы осуществляется программирование микросхемы ПЛИС с использованием приложения Programmer.

Приложение Message Processor формирует сообщения об ошибках трансляции проекта и другую служебную информацию.

В целом, проектирование цифровых систем на основе БИС програм­ мируемой логики связано с необходимостью изучения большого объема информации по нескольким направлениям: характеристики и особенности семейств ПЛИС, методы работы с использованием определенной системы проектирования, спецификации языка HDL. Чрезвычайно важен правиль­ ный подход и очередность изучения информации. По нашему мнению, не­ удачи многих попыток связаны с тем, что в начале изучалась внутренняя структура микросхем ПЛИС, в то время как ключом к успеху является освоение языка HDL и системы проектирования.

Систематическое описание системы проектирования MAX+PlusII ос­ ложняется тем, что состав меню команд и опции команд зависят от режима работы и вызванного приложения. Кроме того, система весьма развитая и многие ее возможности на первых этапах работы могут не использоваться. Все это привело нас к мысли создать комплекс учебных средств для изу­ чения проектирования цифровых систем на основе БИС программируемой логики фирмы Altera с применением системы проектирования MAX+PlusII и построить его по принципу «делай как я». Это обеспечивает быстрое практическое освоение методов проектирования и позволяет добиться ре­

ГЛАВА 5 ПРОЕКТИРОВАНИЕ ЦИФРОВЫХ УСТРОЙСТВ НА БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

233

ального результата. Дальнейшее самостоятельное продвижение облегчается наличием развитого режима поддержки Help системы MAX+PlusII.

Материал первых работ учебного практикума излагается в параграфах 5.3-5.5, основные конструкции языка AHDL рассмотрены в параграфе 5.6, а состав и особенности всего комплекса - в параграфе 5.7. Лаборато­ рия «Микропроцессорные системы» МИФИ на базе этого комплекса про­ водит учебные циклы «Проектирование цифровых устройств на ПЛИС Altera с использованием системы Мах+plusII» для специалистов промыш­ ленности.

5 .3 . Графический ввод схемы и симуляция в системе MAX+plusII

Предположим, что проектируемое устройство определено булевым уравнением, а описание проекта в системе MAX+plusII предполагается выполнить в графической форме с использованием библиотеки примити­ вов. Последовательность решения такой задачи следующая:

исходя из уравнения необходимо определить количество переменных и построить таблицу истинности;

используя графический редактор, ввести схему устройства. Начинать рекомендуется с входных портов, количество которых определяется количеством переменных в уравнении. Далее анализируется вид чле­ нов уравнения и вызываются соответствующие примитивы из библио­ теки системы MAX+plusII. В завершение проводятся межсоединения (цепи и шины), вызываются примитивы выходных портов;

используя редактор временных диаграмм, на основе таблицы истин­ ности формируются тестовые векторы для проверки (верификации) соответствия введенной схемы и первоначального уравнения. Для это­ го используется функциональная симуляция;

выполняется трансляция проекта, вызывается симулятор, который на основе тестовых векторов формирует диаграмму выходной функции устройства;

сравнивая диаграмму состояний функции с таблицей истинности дела­ ется заключение о правильности функционирования разработанного

устройства.

В качестве примера в данной работе будем рассматривать цифровое устройство, которое выполняет логическую функцию

f = Х 1 Х 2 + Х 2 "ХЗ

Таблица истинности имеет следующий вид

234

СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

XI

х2

ХЗ

f

0

0

0

0

0

0

1

1

0

1

0

0

0

1

1

0

1

0

0

0

1

0

1

1

1

1

0

1

1

1

1

1

Осуществим ввод принципиальной схемы устройства с использованием графического редактора системы MAX+plusII, выполним трансляцию про­ екта с использованием приложения Compiler и проверим выполнение таб­ лицы истинности, используя приложение Simulator.

Определение имени проекта. Разрабатываемое устройство представ­ ляется в системе MAX+plusII как проект. В начале работы с системой не­ обходимо определить текущий проект, т.е. указать его имя и директорию. Выберем директорию d:\m ax2w ork\tutorial, а в качестве имени проекта укажем graphicl. Из меню Manager выберите File|Project|Name, откроется диалоговое окно, приведенное на рис. 5.2. Имя тома и директория выби­ раются с помощью соответствующих меню, имя файла вводится в строке File Name. Завершается определение вводом ОК. Имя проекта отобразится в титульной строке окна Manager.

Рис. 5.2. Вид диалогового окна определения имени проекта

ГЛАВА 5. ПРОЕКТИРОВАНИЕ ЦИФРОВЫХ УСТРОЙСТВ НА БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

235

Использование графического редактора. Для вызова графического редактора нужно в меню Manager выбрать Max+plusII |Graphic Editor.

Откроется окно графического редактора, в титульной строке окна появит­ ся сообщение (Untitled 1 - Graphic Editor), говорящее о том, что текущим приложением системы MAX+plusII является графический редактор и от­ крыт неименованный файл. Строка меню Manager содержит имена команд и набор инструментальных панелей, которых не было на рис. 5.1, т.е. вид окна Manager зависит от текущего приложения. Чтобы узнать назначение каждой панели, нужно навести на нее указатель мыши, информация вы­ светится под окном в строке состояния.

Графическому файлу со схемой узла необходимо присвоить имя с расширением .gdf (Graphic Design File). Для этого выберите File|Save As и

в строке File Наше появившегося диалогового окна укажите имя graphicl.gdf, введите ОК.

Для ввода графических изображений элементов будем импортировать их из библиотеки, которая в этой системе называется Primitives. Дважды щелкните мышью в центре экрана графического редактора. Откроется диалоговое окно, в котором в меню Symbol Libraries указанная библиотека находится по адресу d:\m axplus2\m ax21ib\prim . Дважды щелкните мышью по этой строке, в меню Symbol Files появится список логических элементов. Двойной щелчок по имени and2 приводит к копированию эле­ мента в окно графического редактора в позицию, определенную ранее кур­ сором. Щелчок мышью по элементу производит его выбор, о чем свиде­ тельствует окрашивание в красный цвет. После этого, передвигая курсор мыши при нажатой кнопке 1, можно двигать элемент по окну редактора. Для определения положения элемента полезна сетка, которая появляется при активизации опции Option|Show guidelines.

Для реализации функции / нужен еще один элемент and2, два элемен­ та ог2 и элемент not. Введите эти элементы (примитивы) указанным выше образом.

После того, как логические элементы введены, нужно ввести символы входных и выходных портов. Их примитивы находятся в той же библио­ теке под именами input и output. Введите три входных порта и один вы­ ходной, чтобы получить вид экрана, приведенный на рис. 5.3.

Далее необходимо присвоить имена всем портам. Для этого дважды щелкните мышью по слову PIN_NAME на символе входного порта, нахо­ дящегося в верхнем левом углу экрана. Слово засветится, позволяя прямо набрать имя порта. Ввод Enter непосредственно после имени переводит курсор на следующий порт и так далее. Присвойте имена х2 и хЗ остав­ шимся двум входным портам и имя / выходному порту.

Следующим шагом является ввод линий, соединяющих логические элементы между собой и с портами.

236

СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

PW_NAME

I— S Hjgjjf-

ш .

Рис. 5.3. Вид окна графического редактора с изображениями примитивов

Нажмите панель «Выбор объекта» - верхнюю в вертикальном меню слева от окна редактора (на ней изображена стрелка). Если после этого подвести курсор к концу линии вывода (pinstub) порта х1, его указатель приобретет вид креста, а после нажатия правой клавиши мыши потянет за собой соединительную линию (node), которая кончается при отпускании клавиши. Соединение выхода и входа двух элементов выполняется в виде горизонтальных и вертикальных отрезков прямых. Любой отрезок можно выделить, щелкнув по нему мышью (он станет красным), и стереть (на­ пример клавишей Delete). Проведите все соединения, чтобы схема приоб­ рела вид соответствующий рис. 5.4.

Работа с компилятором. После ввода схемы система проектирования ана­ лизирует ее и генерирует булевы уравнения для всех логических функций. Этот этап обработки выполняет приложение-компилятор, который вызыва­ ется выбором Max+PlusII|Compiler или щелчком по панели компилятора в меню инструментов. Перед компиляцией нужно выбрать тип микросхемы ПЛИС, на которой будет реализован проект.

Наберите Assign|Device и в открывшемся окне укажите тип микросхе­ мы ПЛИС, установленной на плате - EPF8282ALC84-4. Время переком­ пиляции проекта сокращается, если установлена опция Smart Recompile (Processing|Smart Recompile). Если выбрать Processing!Design Doctor, спе­ циальная утилита проверит все файлы проекта на соответствие правилам реализации на выбранном типе ПЛИС. Для дальнейшей симуляции пона­ добится SNF-файл, для его генерации нужно указать Processing | Functional SNF Extractor. После установки опций щелчок по клавише Start запускает

ГЛАВА 5. ПРОЕКТИРОВАНИЕ ЦИФРОВЫХ УСТРОЙСТВ НА БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

237

процесс компиляции, после окончания которого высвечиваются сообщения об ошибках и предупреждения. После успешной трансляции закройте окно компилятора (панелью X в верхнем правом углу).

Рис. 5.4. Вид окна графического редактора со схемой устройства graphicl

Симуляция. Симуляцией обычно называют процесс функционального моделирования с использованием программно-логической модели. Перед проверкой функционирования схемы необходимо создать тестовые векто­ ры, которые представляют значения входных сигналов. Мы будем исполь­ зовать для их создания редактор диаграмм, который выбирается последо­ вательностью команд Max+PlusII|Waveform Editor. Когда окно редактора откроется, создайте файл graphicl.scf, последовательностью File|Save As и указанием graphicl .scf в строке File Name открывшегося диалогового окна.

Далее определим входные и выходные линии схемы для процесса си­ муляции. Для этого используем линии, занесенные в SNF-файл (Simulator Netlist File), созданный на этапе компиляции схемы. Введите Node|Enter Node from SNF. Откроется экран, в котором имеется два окна: Available Nodes & Groups и Selected Nodes & Groups. После нажатия List в первом окне появится список входных и выходных линий из SNF-файла. Нужно скопировать входные линии xl, х2, хЗ и выходную линию f во второе ок­ но. Для этого нужно отметить линии поодиночке или блоком и нажать па­ нель => между окнами. Чтобы отметить одну линию, нужно щелкнуть по ней мышью. Чтобы отметить блок, нужно протащить указатель по списку при нажатой правой клавише мыши. В завершение введите ОК и верни­ тесь в окно редактора.

238

СИСТЕМЫ НА МИКРОКОНТРОЛЛЕРАХ И БИС ПРОГРАММИРУЕМОЙ ЛОГИКИ

Определим параметры процесса симуляции, значения входных пере­ менных для нашей схемы. Вначале вводом File | End Time откроем окно определения времени симуляции, введем значение 160 ns и ОК. Далее оп­ ределим интервал сетки окна редактора, введя Options | Grid Size и набрав 20 ns. После возврата в окно редактора (вводом ОК) экран системы вы­ глядит так, как приведено на рис. 5.5. На входных линиях значения логи­ ческого «0», а выходная линия заштрихована, что указывает на неопреде­ ленность значения выходной переменной.

i|Mphi«:1 set -

; Ref |0 0ns

j Name-

!■#” хЗ

■ # - x2 x1

j-*»f

W eveloiin

f riitoi

 

 

 

 

BSIsJ E3 |

 

11/f l f l j

Time 130 4ns

|

Interval- |30 4ns

|

Щ

 

a0.0ns

 

 

 

 

 

id

_Value'5

40 0ns

80.0ns

1

120.0ns

160.0ns

2

у

1

1

 

1

 

О

 

 

 

 

 

 

 

О

 

 

 

 

 

 

 

О

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

Рис. 5.5. Вид окна редактора диаграмм (определены входные и выходные линии и сетка)

Для полной симуляции функционирования нашего устройства необхо­ димо подать на входы все комбинации значений переменных. Поскольку переменных три, комбинаций 23 = 8. Длительность каждой комбинации при полном времени симуляции в 160 пс равна 20 пс. Таким образом, пе­ ременная хЗ должна иметь значение логической «1» в интервалы времени 20~40пс, 60~80пс, 100-120пс. Переменная х2 должна иметь значение ло­ гической «1» на интервалах 40~80пс, 120~160пс, а переменная хЗ на ин­ тервале 80-160пс.

Для редактирования временной диаграммы переменной хЗ протащите указатель при нажатой правой кнопке мыши над линией логического «0» во втором интервале сетки. Этот интервал будет «залит» черным цветом, в окнах Ref: и Time: отобразятся значения 20 пс и 40 пс. Переведите указа­ тель на панель установки значения «1» в левом вертикальном меню инст­ рументов и щелкните мышью. Временная диаграмма хЗ в указанном ин­ тервале примет значение «1», заливка исчезнет.

Аналогичными действиями отредактируйте диаграммы переменных хЗ, х2, х1 так, чтобы они приняли значения, указанные в предыдущем абзаце (рис. 5.6). Сохраните созданный файл (комбинация «горячих» клавиш

Ctrl+S).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]