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

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

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

<группа прототипа> (, <группа прототипа>} 3.9.7. Синтаксис оператора вариантов

<варианты> =

OPTIONS <вариант> {, <вариант> >,

<вариант> =

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

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

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

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

I SECURITY = (ON-вкп OFF-откл)

I TURBO = (ON-вкл I OFF-откл DEFAULT-no умолчанию) <вариант 0-го бита AHDL> ::=

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

CARRY CHAIN = (AUTO-аато IGNORE-игнорировать 1 MANUAL-

ручной I DEFAULT-no умолчанию)

I CASCADE CHAIN = (AUTO IGNORE 1 MANUAL DEFAULT) I DECOMPOSE GATES = (ON-вкл OFF-откл DEFAULT-no

умолчанию)

I DUPLICATE LOGIC EXTRACTION = (ON OFF DEFAULT)

I EXPANDER FACTORING = (ON OFF DEFAULT)

I MINIMIZATION = {FULL-полная PARTIAL-чаотичная NONE-нет

I DEFAULT-no умолчанию)

I MULTI-LEVEL FACTORING = (ON OFF DEFAULT)

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

1 OPTIMIZE = (АВЕА-площадь DELAY-задержка ROUTING-мар-

шрутизация I DEFAULT-no умолчанию)

I PARALLEL EXPANDERS = (ON I OFF DEFAULT)

1 PERIPHERAL REGISTER = (ON OFF DEFAULT)

I REDUCE LOGIC = (ON OFF DEFAULT)

1 REFACTOBIZATION = (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 SUBFACTOREXTRACTION = (ON OFF DEFAULT)

I TURBO = (ON I OFF DEFAULT)

I XOR SYNTHESIS = (ON OFF DEFAULT)

Однако фирма Altera рекомендует использовать полное имя для удобства документации

2 Типы вариантов, которые могут быть включены в оператор OPTIONS, определяются местоположением этого оператора и правилами построения содержимого файла

3.9.8. Синтаксис секции подпроекта Subdesign

<секция подпроекта> = SUBDESIGN <имя проекта> (

{ <список сигналов> ; > <список сигналов> [, ]

[<переменные>] BEGIN

<операторы> END,

<списоксигналов> ..= <список портов> <тип порта>

<тип порта> ..= INPUT [ = VCC I = GND ] i OUTPUT

I BIDIR [ = VCC I =GND] I MACHINE INPUT I MACHINE OUTPUT

Ключевые слова BEGIN и END обрамляют логическую секцию, которая является телом секции подпроекта

3.9.9. Синтаксис секции переменных

<переменные> = VARIABLE

<список портов> <тип переменной> . {<список портов> <тип переменной> ,)

<тип переменной> = NODE

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

I <цифровой автомат (state machine)> I <псевдоним цифрового автомата>

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

<имяотиля> ::= FAST

( WYSIWYG I NORMAL

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

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

3.9.10. Синтаксис объявления цифрового автомата

<оимвольное имя> <цифровой автомат (state machine)>,

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

1 Каждый <вариант> кроме BITO и имени стиля может быть сокращен до трех символов по обеим сторонам знака равенства (=)

<цифровой автомат (state maohine)> MACHINE [ <биты> ] <состояния>

<биты> =

OF BITS ( <список портов> )



<состояния> :;=

WITH STATES ( <состоянив> {, <состоянив>)} <состоянив> ::=

<символьнов имя> [ = оначение состояния> ]

Оначениесостояния> ::= <число>

I <символьное имя>

3.9.11. Синтаксис объявления псевдонима цифрового автомата

<символьное имя>: MACHINE;

Объявление псевдонима цифрового автомата не задает биты или имена состояний. Эта информация импортируется из секции подпроекта через порт MACHINE INPUT файла более высокого уровня в иерархии проекта или же через прототип функции из файла более низкого уровня в иерархии проекта

3.9.12. Синтаксис логической секции

Логическая секция, заключенная между ключевыми словами BEGIN и END, представляет собой тело секции подпроекта Информация о синтаксисе приводится отдельно для каждого варианта логической секции.

3.9.13. Синтаксис булевых уравнений

<булево уравнвнив> ::=

<левая часть> = <правая часть>,

3.9.14. Синтаксис булевых уравнений управления

<символьнов имя>.с1к = <правая часть>; [<символьнов имя> reset = <правая часть>;] [<символьнов имя> епа = <правая часть>,]

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

3.9.15. Синтаксис оператора Case

<опвратор выбора> ::=

CASE <правая часть> IS

WHEN <выбор> => <опвраторы>

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

[ WHEN OTHERS => <опвраторы> ]

END CASE;

<выбор> ::=

<группа констант> (, <группа констант>}

3.9.16. Объявление по умолчанию

<объявлвнив по умолчанию> ::= DEFAULTS

Оадание значения>; {<задание значения>;} END DEFAULTS;

3.9.17. Синтаксис условного оператора IF

<условный опвратор> ::= IF <правая часть> THEN <опвраторы>

{ELSIF <правая часть> THEN

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

[ ELSE <правая часть> THEN

<опвраторы> ]

END IR

3.9.18. Синтаксис встроенных (in-line) ссылок на макрофункцию или примитив

<макрофункция> ( <список правых частвй>)

<примитив> ( <список правых частвй> }

3.9.19. Синтаксис объявления таблицы истинности

<опврвтортаблицы> .= TABLE <входы> => <выходы>; <входнывзначвния> => <выходныв значвния> ; {<входныв значвния> => <выходныв значвния>;} END TABLE,

<входы> ::=

<правая часть> {, <правая часть>} <выходы> .:=

<левая часть> {, <лввая часть>}

<входныв значвния> ::=

<группа констант> (, <группа констант>}

<выходнывзначвния> ::=

<группа констант> {, <группа констант>}

3.9.20. Синтаксис порта

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

<имя порта> : <тип порта> [ = оначение порта по умолчанию> ]

Имеются следующие типы портов: INPUT

MACHINE INPUT OUTPUT

MACHINE OUTPUT BIDIR

Порты, являющиеся входами и выходами примера (Instance} примитива или макрофункции, используются в следующем формате:

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

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

Оадание значвния> ::=

< левая часть> = < группа констант>



3.9.21. Синтаксис группы

Группы могут быть записаны в следующих двух нотациях 1. Нотация <десятичное имя группы> состоит из символьного имени, за которым спвдует диапазон десятичных чисел, заключенный в квадратные скобки, например а[4 .1] Допускается указание только одного диапазона после символьного имени

<десятичное имя группы> ::= <символьное имя> [ <диапазон> ]

<циапаэон> = <десятичное число

1 <десятичное число>. <десятичное число>

Если группа уже определена, можно для краткости вместо циа-паэона указывать только пустые скобки [ ]

Вместо диапазона можно также использовать одно только число, например а[5] Однако в такой нотации обозначается только одно символьное имя, а не имя группы, и это эквивалентно записи а5

2 Нотация <последовательное имя группы> состоит из списка символьных имен, портов или чисел, разделенных запятой и заключенных в круглые скобки, например (а, Ь, с) Десятичные имена группы также можно перечислять в круглых скобках

<последовательное имя группы> ::= (<список правых частей> )

<списокправых частей > =

[ <правая часть>) {, [ <правая часть> ])

Данная нотация полезна для задания портов примера (instance) функции, которая объявляется в объявлении примера

3.9.22. Синтаксические фуппы и списки

кгруппаконстант> = <символьное имя> I<число> 1 VCC I GND

I ( <список группы констант>)

<список группы констант> =

[ <группа констант> ] (, [ <группа констант> ])

<группаточек> =

<имя порта>

I <символьное имя> [ ]

I <символьное имя> [ <диапазон> ]

I ( <список группы точек> )

<список группы точек> :;=

( <группаточек> ] {, [ <группаточек> ])

I <символьное имя> [ ]

I <симаольное имя> [ <диапазон> ]

I!< левая часть >

I ( <списоклевых частей> )

<списоклевыхчастей> =

[ < левая часть >]{,[< левая часть > ]}

<группа портов> ..= <имя порта>

I <символьное имя> [ <диапаэон> ] I ( <список портов>}

<списокпортов> =

<группа портов> {. <группа портов>}

<группа прототипа> ::=

<группапортов>

I MACHINE <символьное имя>

<циапазон> =

<десятичное число [ . <десятичное число ]

<праваячасть> =

<праваячасть> <группаточек>

I <правая часть>

<числО

<символьноеимя> <символьное имя> [ ] <символьное имя> [ <диапазон> ] VCC GND

<правая часть> == <правая часть> <правая часть> >= <правая часть> <правая часть> > <праваячасть> <правая часть> <= <правая часть> <праваячасть> < <правая часть> <прааая часть> = <правая часть> <правая часть> # <правая часть> <правая часть> i# <правая часть> <правая часть> & <правая часть> <правая часть> & <правая часть> <правая часть> $ <правая часть> <правая часть> $ <правая часть> <правая часть> + <правая часть> <правая часть> - <правая часть> - <правая часть> + <правая часть>

<макрофункция> ( <список правых частей>) <примитив> (<список правых частей> ) (<список правыхчастей> )

<леваячасть> ::=

<левая часть> <группаточек>

I <симаольное имя>

<список правых частей> ::=

[ <правая часть> ] {, [ <правая часть> ])



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 - 2024 ULTRASONEX-AMFODENT.RU.
Копирование материалов разрешено исключительно при условии цититирования.