Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Altera / MAX+PLUS II - AHDL.doc
Скачиваний:
139
Добавлен:
10.12.2013
Размер:
7.02 Mб
Скачать

2.2.8 Двунаправленные выводы

MAX+PLIS II позволяет описывать двунаправленные выводы для устройств фирмы Altera. Двунаправленные выводы могут быть описаны при помощи ключевых словBIDIR иTRI.

В следующем примере показано, как описывать двунаправленные выводы.

В данном примере вход D-триггера используется как двунаправленный вход.

На рисунке 2.8 представлена схема устройства bus_reg2.tdf.

2.2.9 Описание тристабильных выводов

Вы можете создать тристабильный вывод при помощи объединения примитива TRIиOUTPUTпри помощи узла типаTRI_STATE_NODE. При использовании тристабильных выводов необходимо быть уверенным, что хотя бы один выход проектируемого устройства, в данный момент времени, не находиться в высокоимпедансном состоянии.

В следующем примере будет показано, как описывать тристабильные выводы при помощи TRI_STATE_NODE.

В данном примере значения, присваиваемые узлу tnodeобъединяются вместе.

Тип TRI_STATE_NODEиспользуется чаще чем типNODEдля описания тристабильных шин, потому значения присваиваемые переменной типаNODEобъединяются по И или ИЛИ, а значения присваиваемые переменной типаTRI_STATE_NODEпросто замещают друг друга.

Для получения более подробной информации см. разделы:

  • Описание комбинационных устройств с помощью логических уравнений

  • Объявление узлов

  • Двунаправленные выводы

2.3 Устройства с памятью

Дискретный автомат, у которого состояние выходных сигналов зависит не только от состояния входных сигналов и от последовательности их подачи, называется дискретным автоматом с памятью. Все устройства с памятью должны иметь хотя бы один триггер. На AHDL автоматы с памятью могут быть описаны при помощи графов состояний или регистров, но наиболее часто используются графы состояний автомата.

В данном разделе будут рассмотрены следующие вопросы:

  • Использование регистров

  • Использование регистровых выходов

  • Создание счетчиков

Для получения более подробной информации см. разделы:

  • Графы переходов

  • Использование условно генерируемой логики

  • Использование циклически генерируемой логики

2.3.1 Использование регистров

Регистры предназначены для хранения и выдачи информации. Синхронизация регистра происходит сигналом на входе Clock. Объявления регистров находятся в разделе переменных.

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

Следующий пример показывает способ описания регистров и основные операции с ним. В примере описан регистр, имеющий восемь входов и восемь выходов. Загрузка информации в регистр происходит по сигналу LOAD, синхронизация –CLK.

В данном примере регистр описан с помощью восьми D-триггеров с разрешением по входу (DFFE). Первое уравнение соединяет входCLK устройстваbur_reg.tdf с синхровходами триггеров. Второе уравнение соединяет входLOADс водами разрешения синхронизации триггеров. Третье уравнение соединяет входы устройства (d[7..0]) с входами триггеров (ff[7..0].d). Четвертое уравнение соединяет выходы триггеров (ff[7..0].q) с выходами устройства (q[7..0]). Вы можете также описыватьT, JKиRSтриггеры с целью последующего их использования. Например, дляT-триггера (TFF) вы должны изменить описание регистра на следующее:

ff[7..0]:TFF;

и третье уравнение изменить так:

ff[].t = d[];

Аналогично для JK-триггера с разрешением по входу (JKFFE) вы должны изменить описание регистра на следующее:

ff[7..0]:JKFFE;

а третье уравнение заменить двумя, соединяющими входы J (ff[].j) иK (ff[].k)с соответствующими сигналами.

Вследующем примере (lpm_reg.tdf) будет спроектировано тоже устройство с помощью функцииlpm_dffиз библиотеки параметризированных модулей.

На рисунке 2.9 представлена схема устройства, описанного в примерах 2.19 и 2.20.

Соседние файлы в папке Altera