Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АК_практика_метода.doc
Скачиваний:
3
Добавлен:
18.11.2019
Размер:
1.23 Mб
Скачать

Завдання до практичної роботи

Завдання: ознайомитися з теоретичними відомостями про опис конвеєрних ОП на мові VHDL, скласти опис пристрою згідно свого варіанту.

Варіант

Тип пристрою

Розрядність

1

інтегратор

12/1

2

цифровий фільтр

7/2

3

декодер

4/9

4

інтегратор

5/1

5

цифровий фільтр

3/1

6

декодер

4/1

7

інтегратор

5/1

8

цифровий фільтр

6/1

9

декодер

2/1

10

інтегратор

3/1

11

цифровий фільтр

2/1

12

декодер

4/1

13

інтегратор

2/1

14

цифровий фільтр

3/1

15

декодер

8/1

16

інтегратор

12/5

17

цифровий фільтр

3/10

18

декодер

15/1

19

інтегратор

8/1

20

цифровий фільтр

16/6

21

декодер

6/16

22

інтегратор

20/1

23

цифровий фільтр

12/1

24

декодер

5/2

25

інтегратор

2/5

Практична робота №8 Проектування конвеєрних оп на vhdl. Цифрові фільтри. Декодери. Інтегратори.

Мета: ознайомитися з особливостями проектування комбінаційних схем на мові VHDL.

Теоретичні відомості.

Повне 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виглядає наступним чином:

К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;

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

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

Варіант опису архітектури 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;

У процесі проектування об'єкта 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.

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

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 нс.

Приклад опису таблиці істинності:

entity adder_2 is

port(

a1, b1, a2, b2 : in bit;

c2, s2, s1 : out bit);

end adder_2;

architecture functional_sdnf of adder_2 is

begin

c2 <= (not a1 and b1 and a2 and b2)

or ( a1 and not b1 and a2 and not b2)

or (a1 and not b1 and a2 and b2)

or (a1 and b1 and not a2 and b2)

or (a1 and b1 and a2 and not b2)

or (a1 and b1 and a2 and b2);

s2 <= (not a1 and not b1 and a2 and not b2)

or (not a1 and not b1 and a2 and b2)

or (not a1 and b1 and not a2 and b2)

or (not a1 and b1 and a2 and not b2)

or (a1 and not b1 and not a2 and not b2)

or (a1 and not b1 and not a2 and b2)

or (a1 and b1 and not a2 and not b2)

or (a1 and b1 and a2 and b2);

s1 <= (not a1 and not b1 and not a2 and b2)

or (not a1 and not b1 and a2 and b2)

or (not a1 and b1 and not a2 and not b2)

or (not a1 and b1 and a2 and not b2)

or (a1 and not b1 and not a2 and b2)

or (a1 and not b1 and a2 and b2)

or (a1 and b1 and not a2 and not b2)

or (a1 and b1 and a2 and not b2);

end functional_sdnf;

Приклад опису системи ДНФ.

entity adder_2 is

port (a1, b1, a2,b2 : in BIT;

c2,s2,s1 : out BIT);

end adder_2;

architecture functional_dnf of adder_2 is

begin

c2 <= (a1 and a2) or (b1 and b2 and a1) or (b1 and b2 and a2);

s2 <= (b1 and b2 and not a1 and not a2)

or (b1 and b2 and a1 and a2)

or (not b1 and a1 and not a2)

or (not b1 and not a1 and a2)

or ( not b2 and a1 and not a2)

or (not b2 and not a1 and a2);

s1 <= (b1 and not b2) or (not b1 and b2);

end functional_dnf;