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

Системы передачи по волоконно-оптическим линиям связи

 

Светодиодные экраны

Бегущие строки

НПП “Цифровые решения”

Контрактная разработка радиоэлектронных устройств

Цифровая обработка сигналов и изображений

Поставка высокотехнологичных изделий

 

ПЛИС фирмы Altera: проектирование устройств обработки сигналов.

Стешенко В.Б.

 

Глава4. Язык описания аппаратуры VHDL

4.5. Интерфейс и тело объекта

Полное VHDL-описание объекта состоит как минимум из двух отдельных описаний: описание интерфейса объекта и описание тела объекта (описание архитектуры).

Интерфейс описывается в объявлении объекта entity declaration и определяет входы и выходы объекта, его входные и выходные порты ports и параметры настройки generic. Параметры настройки отражают тот факт, что некоторые объекты могут иметь управляющие входы, с помощью которых может производиться настройка экземпляров объектов в частности, задаться временем задержки.

Например, у объекта Q1 три входных порта Х1, Х2, Х3 и два выхода У1, У2. Описание его интерфейса на VHDL имеет вид:

Entity Q1 is

Port (X1, X2, X3: in real; Y1, Y2: out real);

End Q1.

Порты объекта характеризуются направлением потока информации. Они могут быть:

  • входными (in)
  • выходными (out)
  • двунаправленными (inout)
  • двунаправленными буферными (buffer)
  • связными (linkage)
  • А также имеют тип, характеризующий значения поступающих на них сигналов:
  • целый (integer)
  • вещественный (real)
  • битовый (bit)
  • символьный (character)

Тело объекта специфицирует его структуру или поведение. Его описание по терминологии VHDL содержится в описании его архитектуры architecture.

VHDL позволяет отождествлять с одним и тем же интерфейсом несколько архитектур. Это связано с тем, что в процессе проектирования происходит проработка архитектуры объекта: переход от структурной схемы к электрической принципиальной, от поведенческого к структурному описанию.

Средства VHDL для отображения структур цифровых систем базируются на представлении о том, что описываемый объект entity представляет собой структуру из компонент component соединяемых друг с другом линиями связи. Каждая компонента, в свою очередь, является объектом и может состоять из компонент низшего уровня (иерархия объектов). Взаимодействуют объекты путем передачи сигналов signal по линиям связи. Линии связи подключаются к входным и выходным портам компонент. В VHDL сигналы отождествляются с линиями связи.

Имена сигналов и имена линий связи совпадают (они отождествляются). Для сигналов (линий), связывающих компоненты друг с другом, необходимо указывать индивидуальные имена.

Описание структуры объекта строится как описание связей конкретных компонент, каждая из которых имеет имя, тип и карты портов. Карта портов port map определяет соответствие портов компонент поступающим на них сигналам, можно интерпретировать карту портов как разъем, на который приходят сигналы и в который вставляется объект-компонента.

Принятая в VHDL форма описания связей конкретных компонент имеет следующий вид:

Имя: тип связи (сигнал, порт).

Например, описание связей объекта Q1, представленного на рис. 3 выглядит следующим образом:

К1: SM port map (X1, X2, S);

K3: M port map (S, Y1);

K2: SM port map (S, X3, Y2);

Здесь К1, К2, К3- имена компонент; SM,M-типы компонент; Х1, Х2, Х3, S, Y1,Y2- имена сигналов, связанных с портами.

Полное VHDL описание архитектуры STRUCTURA объекта Q1 имеет вид: 

Architecture STRUCTURA of Q1 is

Component SM port (A, B: in real; C: out real);

End component;

Component M port (E: in real; D: out real);

End component;

Signal S: real;

Begin

K1: SM port map (X1, X2, S);

K3: M port map (S, Y1);

K2: SM port map (S, X3, Y2);

End STRUCTURA;

 

Средства VHDL для отображения поведения описываемых архитектур строится на представлении их как совокупности параллельно взаимодействующих процессов. Понятие процесса process относится к базовым понятиям языка VHDL.

Архитектура включает в себя описание одного или нескольких параллельных процессов. Описание процесса состоит из последовательности операторов, отображающих действия по переработке информации. Все операторы внутри процесса выполняются последовательно. Процесс может находиться в одном из двух состояний - либо пассивном, когда процесс ожидает прихода сигналов запуска или наступления соответствующего момента времени, либо активном- когда процесс исполняется.

Процессы взаимодействуют путем обмена сигналами.

В общем случае в поведенческом описании состав процессов не обязательно соответствует составу компонент, как это имеет место в структурном описании.

Поведение VHDL-объектов воспроизводится на ЭВМ, и приходится учитывать особенности воспроизведения параллельных процессов на однопроцессорной ЭВМ. Особая роль в синхронизации процессов отводится механизму событийного воспроизведения модельного времени now.

Когда процесс вырабатывает новое значение сигнала перед его посылкой на линию связи, говорят, что он вырабатывает будущее сообщение transaction. С каждой линией связи (сигналом) может быть связано множество будущих сообщений. Множество сообщений для сигнала называется его драйвером driver.

Т.о., драйвер сигнала - это множество пар: время – значение (множество планируемых событий).

VHDL реализует механизм воспроизведения модельного времени, состоящий из циклов. На первой стадии цикла вырабатываются новые значения сигналов. На второй стадии процессы реагируют на изменения сигналов и переходят в активную фазу. Эта стадия завершается, когда все процессы перейдут снова в состояние ожидания. После этого модельное время становится равным времени ближайшего запланированного события, и все повторяется.

Особый случай представляет ситуация, когда в процессах отсутствуют операторы задержки. Для этого в VHDL предусмотрен механизм так называемой дельта - задержки.

В случае дельта – задержек новый цикл моделирования не связан с увеличением модельного времени. В приведенном выше примере новое значение сигнала У1 вырабатывается через дельта- задержку после изменения сигнала S.

Другая способность VHDL-процессов связана с так называемыми разрешенными resolved сигналами. Если несколько процессов изменяют один и тот же сигнал, (сигнал имеет несколько драйверов), в описании объектов может указываться функция разрешения. Эта функция объединяет значения из разных драйверов и вырабатывает одно. Это позволяет, например, особенности работы нескольких элементов на общую шину.

В языке VHDL для наиболее часто используемых видов процессов – процессов межрегистровых передач – введена компактная форма записи.

Полное описание архитектуры POVEDENIE объекта Q1 в этом случае имеет следующий вид:

Architecture POVEDENIE of Q1 is

Signal S: real;

Begin

Y1<=S;

Y2<=S+X3 after 10 ns;

S<=X3+X2 after 10 ns;

End POVEDENIE;

4.5.1. Описание простого объекта

Для иллюстрации возможностей VHDL рассмотрим пример проектирования простой комбинационной схемы, назовем ее объект F. Объект проекта F имеет два входа А1 и А2 и два выхода В1 и В2.

4.5.2. Объявление объекта проекта F

Entity F is

Port (A1, A2: in BIT; B1, B2: out BIT)

Сигналы принимают значения 1 или 0 в соответствии с таблицей истинности. 

Входы

Выходы

А1

А2

В1

В2

0

0

0

1

0

1

0

1

1

0

0

1

1

1

1

0

4.5.3. Поведенческое описание архитектуры

Вариант описания архитектуры BEHAVIOR объекта F использует условный оператор if языка VHDL и учитывает, что только при обоих входах А1 и А2, равных 1, выходы В1=1 и В2=0. В остальных случаях наоборот В1=0 и В2=1 

Architecture BEHAVIOR of F is

Begin

Process

Begin

Wait on (A1, A2)

If (A1=’1’) and (A2=’1’)

Then B1<=’1’; B2<=’0’;

End if;

End process;

End; 

В каждом процессе может быть только 1 оператор wait on. Второй вариант поведенческого описания архитектуры объекта F, назовем его BEHAVIOR_F, использует выбор case языка VHDL и учитывает то свойство функции F, что для первых трех строк ее значение не меняется. В заголовке процесса указан список чувствительности процесса process (A1, A2). Это указание эквивалентно оператору wait on (A1, A2) в начале описания процесса.

Architecture BEHAVIOR_F of F is

Begin

Process (A1,A2);

Begin

--&-операция

case (A1& A2) is

--первые три строки таблицы

when “00”/ “01”/ “10”=> B1<=’0’; B2<=’1’

--последняя строка таблицы

when “11” => B1<=‘1’; B2<=’0’

end case

end process

end BEHAVIOR_F;

4.5.4. Потоковая форма

В процессе проектирования объекта F могут быть предложены различные варианты его функциональных схем:

Описание архитектуры объекта F может быть таким:

Architecture F_A of F is

Begin

--каждому вентилю сопоставлен оператор назначения сигнала

B1<= A1 and A2;

B2<= not (A1 and A2);

End; 

Здесь каждому элементу сопоставлен процесс, отображающий последовательность преобразования входной информации и передачи ее на выход. Процесс представлен в форме оператора параллельного назначения сигнала. Операторы назначения сигнала (<=) срабатывают параллельно при изменении хотя бы одного из сигналов в своих правых частях.

Другой вариант описания архитектуры F_B. Здесь вентили включены последовательно.

 

Architecture F_B of F is

Signal X: bit

Begin

B2<= not (X);

X <= A1 and A2;

B1 <= X;

End;

 

Промежуточный сигнал Х введен в описание архитектуры F_B объекта F потому, что в описании интерфейса объекта F порт В1 объявлен выходным, то есть с него нельзя считывать сигнал и запись B2<= not(B1) была бы не корректной.

Сигнал B2 вырабатывается только после изменения сигнала Х. Оператор B2<= not(X) сработает только тогда, когда изменится сигнал Х, то есть после оператора X<= A1 and A2, т. к. он реагирует только на изменение сигнала в своей правой части. С учетом задержки Е1=10 нс., а Е2=5нс описание архитектуры будет иметь вид

 

Architecture F_B_TIME of F is

Signal X: bit

Begin

--задержка на В1- 10 нс.

--задержка на В2- 5 нс.

B1<=X;

B2<= not (X) after 5 ns;

X<= A1 and A2 after 10 ns;

End;

 

Через 10 нс. после изменения одного из входных сигналов (А1 или А2) может измениться выходной сигнал В1, и с задержкой 5 нс. после него изменится В2.

4.5.5. Структурное описание архитектуры

Описание архитектуры представляет собой структуру объекта как композицию компонент, соединенных между собой и обменивающихся сигналами. Функции, реализуемые компонентами в явном виде, в отличие от предыдущих примеров в структурном описании не указываются. Структурное описание включает описание интерфейсов компонент, из которых состоит схема и их связей. Полные ( интерфейс + архитектура ) описания объектов- компонент должны быть ранее помещены в проектируемую библиотеку, подключенную к структурному описанию архитектуры. 

Library work;

use work.all

--подключение рабочей библиотеки work, содержащей описание объекта соответствующего компоненте INE2

Architecture СХЕМ_F_C of F is

--ниже интерфейсы компоненты INE2

Component INE2

Port (X1, X2: in bit; Y: out bit);

End component;

--ниже описание связей экземпляров компонент

Signal X: bit;

Begin

E1: INE2 port map (A1, A2, X);

E2: INE2 port map (X, X, B1);

B2<= X;

End;

В описании архитектуры СХЕМ_F_C объекта F сначала указан интерфейс компонент, из которых строится схема. Это компоненты типа INE2 с двумя входными и одним выходным портом. Затем после begin идут операторы конкретизации компонент. Для каждого экземпляра компоненты следуют: ее имя или карта портов, указывающая соответствие портов экземпляра компоненты поступающим на них сигналам. Например, для компоненты по имени Е1 типа INE2 на порт Х1 подан сигнал А1, на порт Х2- сигнал А2. Порядок конкретизации безразличен, так как это параллельные операторы. Для того чтобы описание F было полным, в данном случае в рабочей библиотеке проекта work необходимо иметь описание интерфейса и архитектуры некоторого объекта, сопоставляемого компоненте INE2. Обозначим этот объект в библиотеке как LA3. Его описание: 

Entity LA3 is

Port (X, Y: in bit; Z: out bit);

End LA3;

Architecture DF_LA3 of LA3 is

Begin

Z<= not (X and Y) after 10ns;

End; 

У объекта LA3 может быть насколько архитектур. В примерах дан вариант потокового описания архитектуры DF_LA3 объекта LA3, который содержит оператор назначения сигналу Z инверсного значения конъюнкции сигналов X и Y с задержкой 10 нс.

 

- Наверх -

 

Координаты:

   г. Москва, пр. Мира, 102

Для писем:

   105066, Россия, г. Москва, а/я 18

Тел.: (495) 778-97-04

e-mail: mail@dsol.ru, info@dsol.ru

 

© НПП “Цифровые решения” 2003 — 2006

Разработка светодиодных экранов | Разработка бегущих строк | Проектирование ПЛИС и СБИС | Разработка законченных устройств и модулей | Синтез алгоритмов |

Rambler's Top100 Rambler's Top100