Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Использование значений переменных по умолчанию

Читайте также:
  1. RASH Использование отражений для остановки ВД
  2. Активное использование проектных и исследовательских технологий в образовательном процессе.
  3. АНАЛИЗ С ИСПОЛЬЗОВАНИЕМ ФИНАНСОВЫХ КОЭФФИЦИЕНТОВ
  4. АНАЛИЗ ЧУВСТВИТЕЛЬНОСТИ ПРОЕКТА С ИСПОЛЬЗОВАНИЕМ ЭЛЕКТРОННЫХ ТАБЛИЦ
  5. В макияже акценты одновременно на глаза и губы, в косметике использование насыщенных цветов.
  6. Виды продукции с использованием изображений большого формата
  7. Виртуальные клавиши. Системные таймеры. Срабатывание таймера. Эффективное использование механизма таймеров.

Вы можете определить значение по умолчанию для узла или шины, который используете, когда его величина не указана где-нибудь в другом месте файла. AHDL позволяет Вам также присваивать значение узлу или шине более одного раза в одном файле. Если эти присваивания конфликтуют, то значение по умолчанию используется для разрешения конфликтов. При отсутствии определения значения по умолчанию ему присваивается значение GND.

Значение по умолчанию определяется с помощью оператора Defaults для переменных, использующихся в операторах Truth Table, If Then, и Case.

Вы не должны путать значения по умолчанию для переменных со значениями по умолчанию для портов, которые присваиваются в разделе Subdesign.

Файл default1.tdf, приведенный ниже, оценивает входы и выбирает один из пяти ASCII кодов, основываясь на входах.

 

SUBDESIGN default1

(

i[3..0]: INPUT;

ascii_code[7..0]: OUTPUT;

)

BEGIN

DEFAULTS

ascii_code[] = B"00111111"; % ASCII код "?" %

END DEFAULTS;

 

TABLE

i[3..0] => ascii_code[];

B"1000" => B"01100001"; % "a" %

B"0100" => B"01100010"; % "b" %

B"0010" => B"01100011"; % "c" %

B"0001" => B"01100100"; % "d" %

END TABLE;

END;

 

Когда входной набор совпадает с одним из наборов, приведенным с левой стороны оператора Truth Table, выходы устанавливаются в соответствии с комбинацией справа. Если совпадения не происходит, выходы принимают значения по умолчанию B"00111111".

Файл default2.tdf, приведенный ниже, иллюстрирует как возникают конфликты, когда одному узлу присваивается более одного значения и как эти конфликты разрешаются языком AHDL.

 

SUBDESIGN default2

(

a, b, c: INPUT;

select_a, select_b, select_c: INPUT;

wire_or, wire_and: OUTPUT;

)

BEGIN

DEFAULTS

wire_or = GND;

wire_and = VCC;

END DEFAULTS;

 

IF select_a THEN

wire_or = a;

wire_and = a;

END IF;

 

IF select_b THEN

wire_or = b;

wire_and = b;

END IF;

 

IF select_c THEN

wire_or = c;

wire_and = c;

END IF;

END;

 

В этом примере wire_or присваиваются значения a, b, или c, в зависимости от значений сигналов select_a, select_b, и select_c. Если ни один из этих сигналов не равен VCC, тогда wire_or принимает значение GND.

Если больше одного из сигналов select_a, select_b, или select_c принимают значение VCC, тогда сигнал wire_or является логическим ИЛИ соответствующих входных значений.

Сигнал wire_and работает таким же образом, за исключением того, что по умолчанию он устанавливается в VCC, когда ни один из "select" сигналов не равен VCC и равен логическому И соответствующих входов, когда более одно сигнала принимает значение VCC.


Дата добавления: 2015-08-21; просмотров: 82 | Нарушение авторских прав


Читайте в этой же книге: Мегафункции и библиотеки параметризуемых модулей | Определение включаемого текста (оператор Include) | Определение параметров (оператор Parameters) | Определение прототипов логических функций (оператор Function Prototype). | Определение порядка следования битов (оператор Options) | Объявление объектов (Instance Declarations) | Объявление конечных автоматов (State Machine Declarations) | Задание исходных значений (Defaults Statment) | Оператор проверки логического выражения (If Then.) | Использование ссылок на прототипы функций (In-Line Logic Function Reference) |
<== предыдущая страница | следующая страница ==>
Выполнение контроля выражений с помощью оператора Assert| Использование непараметрических функций

mybiblioteka.su - 2015-2024 год. (0.006 сек.)