Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ППЛИС_лаб2.doc
Скачиваний:
77
Добавлен:
05.06.2015
Размер:
1.31 Mб
Скачать

Выражения

В языке 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