Главная страница  Автономные управляющие системы 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 [ 26 ] 27 28 29 30 31 32 33 34 35 36 37 38 39 40

Примитив JKFFE

Прототип функции: FUNCTION JKFFE (J, К, CLK, CLRN, PRN, ENA) RETURNS (Q);

Входы

Выход

CLRN

Illegal

Toggle

* Qo = уровень Q перед тактовым импульсом

Примитив SRFF (Триггер SR-типа Flipflop) Прототип функции. FUNCTION SRFF (S, R, CLK, CLRN, PRN) RETURNS (Q);

Входы

Выход

CLRN

Illegal

Toggle

* Qo = уровень Q перед тактовым импульсом

Примитив SRFFE

Прототип функции- FUNCTION SRFFE (S, R, CLK, CLRN, PRN, ENA)

RETURNS (Q):

Входы

Выход

CLRN

Illegal

Toggle

3.8.14. Порты

Порт представляет собой вход или выход примитива, макрофункции или цифрового автомата. Порт может появляться в трех местах файла.

♦ порт, являющийся входом или выходом текущего файла, объявляется в секции подпроекта Subdesign,

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

* порт, являющийся входом или выходом примера (instance) примитива или файл проекта более низкого уровня, используется в логической секции Logic.

за 14 1. ПОРТЫ ТЕКУ1Щ0 ФАЙЛА

Порт, являющийся входом или выходом текущего файла, объявляется в секции подпроекта Subdesign следующим образом; <имя порта> : <тип порта> [ = оначение порта по умолчанию> ] Есть следующие типы портов:

INPDT

MACHINE INPUT OUTPUT

MACHINE OUTPUT BIDIR

Если TDF-файл является файлом верхнего уровня иерархии, имя порта является синонимом имени вывода. Дпя портов типа INPUT и BIDIR может быть определено по умолчанию значение VCC или GND Это значение используется, только если порт остается неподключенным в случае использования примера данного TDFa в файле более высокого уровня.

Входные и выходные порты, объявленные в секции подпроекта Subdesign, могут быть назначены выводам, логическим элементам, кристаллам, кликам и логическим опциям при назначении ресурсов Resource Assignment в секции проекта Design. Назначения выводов могут быть сделаны только на верхнем уровне иерархии. Любые назначения выводов на более низких иерархических уровнях игнорируются.

В приводимом ниже примере в секции подпроекта Subdesign объявлены входные, выходные и двунаправленные порты, а в секции проекта Design два входных порта назначаются (присваиваются) выводам

DESIGN IS top BEGIN

DEVICE IS AUTO BEGIN

foo e 1, bar e 2 : INPUT;

END;

END,

SUBDESIGN top (

foo, bar, clkl, clk2 : INPUT - VCC; % VCC - это аначавив порта no умолчанию % aO, al, a2, аЗ, a4 : OUTPUT; b[7..0] : BIDIR;

Между файлами TDF, (GDF-файл) или .WDF можно осуществлять импортирование и экспортирование цифровых автоматов (state machine), если разработчик определит входной или выходной порт как MACHINE INPUT или MACHINE OUTPUT в секции подпроекта Subdesign В прототипе функции (Function Prototype), описывающем этот файл, должно быть указано, какие порты являются цифровыми автоматами с памятью (state machine). Порты MACHINE INPUT и MACHINE OUTPUT можно использовать только в файлвх более низких уровней в иерархии проекта.



3 8 (42 ПОРТЫПРШЕР0В(тТЖЕ1

Соединение порта, являющегося входом или выходом функции в файл проекта более низкого уровня или примитивы, осуществляется в логической секции Logic Для соединения примитива, макрофункции или цифрового автомата с другими частями TDF файла нужно вставить примитив или макрофункцию как ссылку с ключевым словом in-line или дать в конструкции объявления примера Instance или объявить цифровой автомат в конструкции State Machine, а затем использовать порты функции в логической секции

Если разработчик для вставки примера примитива или макрофункции использует ссылку с ключевым словом in-line, важен порядок перечисления портов, но не их имена Этот порядок определяется в прототипе функции для примитива или макрофункции

Если для вставки примера разработчик использует конструкцию объявления примера Instance, важны имена портов, а не порядок их перечисления Имена портов даются в следующем формате

<имя примера> <имя порта>

Здесь <имя примера> представляет собой определенное пользователем имя функции, а <имн порта> совпадает с именем порта, объявленного в логической секции файла TDF более низкого уровня или совпадает с именем вывода в файле проекта другого типа Это <имя порта> является синонимом имени штыревого вывода для символа, который представляет пример данного файла проекта в файле (GDF-файл)

В приводимом ниже примере триггер (flipflop) типа D объявлен как переменная reg в секции объявления переменных VARIABLE и затем используется в логической секции

VARIABLE

reg : DFF;

BEGIN

reg.dk = oik

reg.d = d out reg.q

END;

Bee поставляемые фирмой Altera примитивы и макрофункции имеют предопределенные имена портов (штыревые выводы), которые описываются в прототипе функции Наиболее широко используемые имена портов приведены в таблице

порта

Описание

Выходдвухстабильного мультивибратора (flipflop) или тригера-защелки (latch)

Информационный вход в триггер D-типа (flipflop) или триггер-защелку (latch)

Вход переключения (Toggle) триггера Т-тила (flipflop)

Вход J триггера J-К-типа (flipflop)

Вход К триггера J-К-типа (flipflop)

Вход S трип-ера S-R-типа (flipflop)

Вход R трип-ера S-R-типа (flipflop)

Вход тактового ситала (Clock) триггера (flipflop)

Вход отпирания тактового ситала (Clock Enable) для трип-ера, отпирания защелки (Latcti Enable) и отпирания цифрового автомата (Enable)

.ргп

Вход установки триггера (flipflop) Preset с низким активным уровнем

Вход сброса трипера (flipflop) Clear с низким активным уровнем

reset

Вход цифрового автомата Reset с высоким активным уровнем

Вход Output ЕпаЫе (отпирание выхсда) примитива TR1

Основной вход примитивов TRI, SOFT, GLOBAL и LCELL

Выход примитивов TRI, SOFT, GLOBALh LCELL

3.9. СИНТАКСИС ЯЗЫКА AHOL

3.9.1. Лексические элементы

Синтаксис лексических элементов языка AHDL описан ниже с использованием формул Бэкуса-Наура

<основание системы счисления> =BQH0Xbqhox

<число с основанием> ::= < основание системы счисления > <цифра> {<цифра>)

<цифра> ::= <буква> <десятичная цифра>

<столбец> ..= <десятичная цифра >:1:2

<символ комментария> = <любой символ, кроме %> %%

<комментарий> = % {< символ комментария >} % I - {< символ комментария >} <конецстроки>

<десятичное число = <десятичная цифра>: 1 10

<имя проекта> = <имя файла>

<вывод устройства> ::= <символ имени>-1-3

<десятичная цифра> = О 1 1 9

<имя файла> = (<символ имени>) 1 8 (<символ имени в ка-вычках>) 1 8

<лабиринт> ::= <строка матрицы> <столбец> <буква> = А I I Z I а I z

<логический элемент> ::= LC <десятичная цифра>:1:3 I LC <десятичная цифра>. 1.2 <лабиринт> I МС <десятичная цифра>:1.3 I МС <десятичная цифра> 1 2 <лабиринт> <символ имени> -= <буква> <десятичная цифра> \ <число>:.-=<десятичное число 1 <число с основанием> <имя порта> = (<символ имени> /)-1 32 (<символ имени в кавычках> I /) 1 32

< символ имени в кавычках > = <символ имени> -<строка матрицы> ::= <буква>

<символ строки> = <любой символ, кроме и символа перехода на новую строку>

<строка> :;= (<символ строки>)

<символическое имя> = (<имя символа> /) 1.32 (<символ имени в кавычках>

I/) 1-32

Символическое имя без кавычек не может состоять из одних цифр

3.9.2. Основные конструкции языка AHDL

С помощью формул Бэкуса-Наура синтаксис файла TDF можно описать следующим образом <фaйлAHDL> = <оператор AHDL > {< оператор AHDL>}

< оператор AHDL >. = <название>

I <задание константы>

I <прототип>

I <опвратор включения >

1 < варианты>

I < секция проекта >

I <секция подпроекга>



<опвраторы> = <опвратор> {<опвратор>}

<опвратор> =

<булвво уравнвнив>

I <опвратор выбора>

I <условный опвратор>

I <оператортаблицы>

I <приововнивпоумолчанию>

<названив> = TITLE <строка>;

оадание константы> =

CONSTANT <оимволичвоков имя> = <чиоло>,

<прототип> ::=

FUNCTION <макрофункция> ( <спиоок входов> ) RETURNS ( <список выходов> ); I FUNCTION <примитив> ( <список входов> ) RETURNS ( <список выходов> ),

I NOT GATE PUSH-BACK = (ON OFF DEFAULT)

I OPTIMIZE = (AREA DELAY ROUTING DEFAULT)

j PARALLEL EXPANDERS = (ON OFF DEFAULT)

I PERIPHERAL REGISTER = (ON OFF DEFAULT)

I REDUCE LOGIC = (ON OFF DEFAULT)

I REFACTORIZATION = (ON OFF DEFAULT)

I REGISTER OPTIMIZATION = (ON OFF DEFAULT)

I RESYNTHESIZE NETWORK = (ON OFF DEFAULT)

I SLOW SLEW RATE = (ON OFF DEFAULT)

I SOFT BUFFERJNSERTION = (ON OFF DEFAULT)

I STYLE = <имя отиля>

I SUBFACTOR EXTRACTION = (ON OFF 1 DEFAULT)

I TURBO = (ON I OFF DEFAULT)

I XOR SYNTHESIS = (ON OFF DEFAULT)

<имя стиля> = FAST

I WYSIWYG I NORMAL

I <стиль пользоватвля>

<стиль пользователя> = <символичвсков имя>

<макрофункция> := <имя провкта>

<примитив> :.= <оимволичвсков имя>

<список входов> ::=

<группа прототипа> {, <группа прототипа>} <описок выходов> :.=

<группа прототипа> {, <группа прототипа>}

<опвратор включвния> ::= INCLUDE <строка>,

<вариант> ::=

<вариант уотройства>

I <вариант 0-го бита AHDL >

I <логичвская опция>

<вариант устройства> ..=

I SECURITY = (ON I OFF)

I TURBO = (ON I OFF DEFAULT)

<вариантО-го бита AHDL > .:=

BITO = (ANY-произвольный LSB-младший MSB-отарший) <ло-ичвская опция> =

CARRY CHA1N = (AUTO IGNORE MANUAL DEFAULT)

I CASCADE CHAIN = (AUTO IGNORE MANUAL DEFAULT}

I DECOMPOSE GATES = (ON OFF DEFAULT)

I DUPLICATE LOGIC EXTRACTION = (ON OFF DEFAULT)

I EXPANDER FACTORING = (ON OFF DEFAULT)

I MINIMIZATION = (FULL PARTIAL NONE DEFAULT)

I MULTI-LEVEL FACTORING = (ON OFF DEFAULT)

Каждый <вариант> за исключением BITO и имени стиля может быть сокращен до 3 первых символов по обе стороны от знака равенства (=) Однако фирма Altera рекомендует писать полные имена для удобства документирования

3.9.3. Синтаксис объявления названия

<название> = TITLE <строка>,

3.9.4. Синтаксис оператора включения

<оператор включения> ::=

INCLUDE <имяфайла>,

Описываемый в операторе включения файл должен иметь рас-ширение ine, а <имя файла> не должно содержать путь

3.9.5. Синтаксис задания константы

Оадание константы> =

CONSTANT <символьнов имя> = <число>,

3.9.6. Синтаксис прототипа функции

<прототип> =

FUNCTION <макрофункция> ( <список входов> ) RETURNS ( <список выходов> ), I FUNCTION <примитив> ( <список входов> ) RETURNS (<список выходов> ),

<макрофункция> = <имя провкга>

<примитив> = <символьное имя>

<список входов> ::=

<группа прототипа> {, <группа прототипа>}



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 [ 26 ] 27 28 29 30 31 32 33 34 35 36 37 38 39 40

© 2000 - 2021 ULTRASONEX-AMFODENT.RU.
Копирование материалов разрешено исключительно при условии цититирования.