- •Аннотация
- •1.2. Программные модули
- •2.1. Способы описания проектов бис.
- •Техническое задание
- •2.2. Подготовка описания тестовых воздействий для моделирования работы бис.
- •2.3. Этапы отладки проекта плис
- •3.1. Графический ввод и редактирование схемы
- •3.2 Ввод и редактирование тестов
- •3.3. Программа моделирование
- •3.4 Программатор плис.
- •4. Проектирование плис в базисе примитивов.
- •4.1. Мультиплексор Мультиплексор представляют собой логическую схему,имеющуюnсигнальных входов,mвходов адреса и один выходQ.
- •4.2. Шифратор Шифратор представляют собой логическую схему, имеющую nвходов иmвыходов
- •4.3. Демультиплексор Демультиплексор представляют собой логическую схему, имеющую один информационный вход, mвходов адреса иnвыходов.
- •Обычно выполняется соотношение
- •4.5. Сумматоры
- •Выходами одноразрядного сумматора являются выход суммы текущего разряда (s) и выход переноса в следующий разряд (p).
- •4.6. Вычитатели
- •Выходами одноразрядного вычитателя являются выход разности текущего разряда (r) и выход заёма в старшем разряде (z).
- •4.7. Асинхронные счетчики.
- •4.8. Синхронные счетчики
- •4.9. Последовательные сумматоры и вычитатели.
- •4.10. Дешифратор Дешифратор представляют собой логическую схему, имеющую nвходов иmвыходов
- •5. Проектирование плис с использованием lpm модулей
- •5.1 Lpm модуль счетчика
- •5.2 Lpm модуль сдвигового регистра.
- •5.3 Lpm модуль пзу.
- •6. Описание работы схем на поведенческом языке ahdl.
- •6.1. Введение в язык ahdl
- •В языке ahdl допускается числа следующих типов.
- •Выражения
- •6.2. Структура текстового описания бис на языке ahdl
- •6.3. Основные элементы языка.
- •6.3.1 Булевы уравнения, группы.
- •In0, in21, in3 : input;
- •In_f, in_s, in_t : input;
- •If in_f then
- •In[2..0] : input;
- •6.3.3 Проектирование на языке ahdl с помощью таблиц истинности.
- •In[2..0] : input;
- •6.3.4 Операторы If Generate, For Generate
- •Else generate
- •Variable
- •6.3.5. Проектирование на языке ahdl с использованием примитивов.
- •Оператор непосредственного обращения к примитиву имеет следующий вид:
- •Variable
- •7.5. Сумматоры
- •Subdesign suma
- •Variable
- •7.6. Вычитатели
- •Variable
- •7.7. Шинные формирователи
- •Subdesign shina
- •Variable
- •7.8. Счетчики
- •Variable
- •7.9. Дешифраторы
- •7.10. Компараторы
Выражения
В языке AHDL могут быть арифметические и логические выражения. Арифметические выражения – используются для задания констант, пределов индексных выражений и т.д. Результат вычисления арифметического выражения целое положительное число. Примеры арифметических выражений.
A+B
A[23]+LOG*3
При написании арифметических выражений используются следующие арифметические операции.
+,-,!,^,MOD,DIV,*,LOG2,==,!=,>,>=,<,<=,
Логические выражения – используются для логических уравнений (Boolean Equation), в операторах CASE, IF THEN. При написании логических выражений используются следующие Логические операции
! NOT, & AND, !& NAND, # OR, !# NOR, $ XOR, !$ XNOR
При написании логических выражений допускается векторная запись. Например:
R[4..1]=(A,B,C,D)#OP[3..0]
В случае логических выражений с векторной записью все операции выполняются поразрядно.
Примитивы.
В отличие от других языков поведенческого описания работы БИС, язык позволяет напрямую ссылаться на внутренние объекты ПЛИС (буфера, триггеры, логические элементы). В частности, допускаются ссылки на следующие типы буферов MAX+PLUSII.
CARRY – буфер цепочки переноса
CASCADE – буфер каскадного наращивания логической
функции
EXP – буфер логического расширителя,
GLOBAL – буфер глобального сигнала,
CLOCK, SET, CLR, ENA
LCELL – не удаляемый буфер размещения макроячейки,
OPNDRN – буфер выхода с открытым коллектором,
SOFT – удаляемый буфер размещения макроячейки,
TRI - буфер выхода с Z состоянием.
Кроме примитивов буферов в MAX+PLUSII часто используют следующие примитивы триггеров:
DFF – фронтовой D триггер;
DFFE - фронтовой D триггер с разрешением работы;
JKFF - фронтовой JK триггер;
JKFFE - фронтовой JK триггер с разрешением работы;
LATCH – триггер типа «защелка»;
SRFF - стробируемый RS триггер;
SRFFE - стробируемый RS триггер с разрешением работы;
TFF - счетный триггер;
TFFE - счетный триггер с разрешением работы;
6.2. Структура текстового описания бис на языке ahdl
В общем случае описание проекта на языке AHDL включает в свой состав следующие разделы:
Title Statement (оператор заголовка)
Пример: TITLE ”Binary counter”;
Include Statement (оператор включения файла)
По умолчанию тип файла .inc
Пример: INCLUDE ”constant.tex”
Constant Statement(оператор определения константы)
Пример: CONSTANT NUMBER=5;
CONSTANT NUMBER1=NUMBER+1;
Define Statement(оператор обозначения)
Пример: DEFINE SUM(a,b) = a+2*b+1;
Parameters Statement(оператор объявления параметров)
Пример: PARAMETERS
(WIDTH, SIZE,
FILE=”Myfile.dat”, LONG);
Function Prototype Statement(оператор описания прототипа)
Пример: FUNCTION compare(a[3..0],b[3..0])
RETURN (less, equal, grate);
Option Statement(оператор задания опции)
Определяет в группе элемент с наименьшим индексом.
(LSB,MSB,ANY)
Пример: OPTIONS BITO = MSB;
Assert Statement(оператор контроля)
Позволяет проверить истинность арифметического выражения, указать текст диагностики, определить реакцию компилятора.
Пример:
ASSERT (WIDTH>0)
REPORT ”Width (%) must be a positive integer” WIDTH
SEVERITY ERROR;
Subdesign Section(раздел описания интерфейса модуля)
Определяет имя модуля и его выводы. Имя модуля должно совпадать с именем файла, в котором хранится его описание. Имя модуля верхнего уровня является именем проекта.
Пример: SUBDESIGN F_prog
( A,B[4..0] : INPUT = VCC;
D :INPUT = GND;
C[7..1] :OUTPUT;
E[3..2] :BIDIR;)
Описание модуля хранится в файле «F_prog»
Variable Section (раздел переменных)
Позволяет описывать внутренние переменные модулей.
(линии связи, линии связи с 3 состоянием, модули, используемые в текстовом описании в качестве компонента)
Пример:
INCLUDE “halfadd.inc”
VARIABLE
a, b, c : NODE;
add : halfadd;
tsnode : TRI_STATE_NODE;
fff[3..0] : DFF;
Logic Section (раздел описания логики)
В этом разделе описывается алгоритм работы проектируемого модуля.
Начало -BEGIN, конец - END;
При описания алгоритма могут быть использованы:
Defaults Statement
Assert Statement
Boolean Equations
Boolean Control Equations
Case Statement
For Generate Statement
If Then Statement
If Generate Statement
In Line Logic Function Reference
Truth Table Statement