Главная страница Автономные управляющие системы Примитив JKFFE Прототип функции: FUNCTION JKFFE (J, К, CLK, CLRN, PRN, ENA) RETURNS (Q);
* Qo = уровень Q перед тактовым импульсом Примитив SRFF (Триггер SR-типа Flipflop) Прототип функции. FUNCTION SRFF (S, R, CLK, CLRN, PRN) RETURNS (Q);
* Qo = уровень Q перед тактовым импульсом Примитив SRFFE Прототип функции- FUNCTION SRFFE (S, R, CLK, CLRN, PRN, ENA) RETURNS (Q):
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 примитивы и макрофункции имеют предопределенные имена портов (штыревые выводы), которые описываются в прототипе функции Наиболее широко используемые имена портов приведены в таблице
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 (<список выходов> ), <макрофункция> = <имя провкга> <примитив> = <символьное имя> <список входов> ::= <группа прототипа> {, <группа прототипа>}
|
© 2000 - 2024 ULTRASONEX-AMFODENT.RU.
Копирование материалов разрешено исключительно при условии цититирования. |