Смекни!
smekni.com

VHDL - технології дослідження цифрових пристроїв (стр. 3 из 3)

+

Відповідно до приведеного представлення, принципова електрична схема повинна складатися з логічних елементів Та, АБО, НІ і може мати Тимчасові діаграми отриманого пристрою повинні відповідати таблиці істинності його функціонування.

Представлення в різних базисах

Представлення логічної функції в базисі ТА-НІ:

+
=

Відповідно до приведеного представлення, принципова електрична схема повинна складатися тільки з логічних елементів ТА-НІ і може мати наступний вид:

Представлення логічної функції в базисі АБО-НІ:

Відповідно до приведеного представлення, принципова електрична схема повинна складатися тільки з логічних елементів АБО-НІ і може мати наступний вид:

2 Розглянемо другий варіант (для y2):

Аналітичне представлення функції має вид:

=
+
+
+
+
+

III. Розглянемо третій варіант (для y3):

Аналітичне представлення функції має вид:

=
+
+
+
+
+
+
+
+
+

Принципова електрична схема на базі Та-АБО-НІ:

IV. Створення ієрархічних структур при проектуванні складних пристроїв у системі Actіve-HDL 6.1

Довільний фрагмент схеми можна оформити у вигляді ієрархічного блоку, символ якого являє собою прямокутник, і потім розмістити його на схемі, що дозволяє зменшити її розміри. Інше застосування ієрархічних блоків - подання з їхньою допомогою повторюваних фрагментів схем: різних фільтрів, підсилювачів, випрямлячів, суматорів і т.п.

Задание: Создать четырех разрядный счетчик на основе Dтриггера.

Порядок дій при створенні проекту

· Fіle>New > Workspace (відкривається діалогове вікно (Рисунок 1))

· Указати ім'я проекту [Name] (символи кирилиці не допускаються, якщо передбачається моделювання),

· Указати розташування проекту [Locatіon]

·

· УнаступномувікнівибратиCreateanemptydesіgn

· У наступному вікні вибрати значення за замовчуванням

· Указуємо ім'я схеми і її розташування

· Після натискаємо кнопку Готово

Створення принципової схеми проекту

Створення схеми D-тригера

Виконуємо наступні дії (Рисунок 5):

1. Додаємо новий файл

2. Вибираємо тип файлу

3. Уводимо ім'я

Натискаємо на кнопку OK

Після чого збираємо з логічних елементів D - тригер і виконуємо компіляцію Desіgn>Compіle.

Після компіляції ми бачимо наступне

1. Можна переглянути або відредагувати вихідний код програми:

libraryIEEE;

useIEEE.std_logic_1164.all;

entityD_trigis

port(

c : in STD_LOGIC;

d : in STD_LOGIC;

nr : in STD_LOGIC;

ns : in STD_LOGIC;

N : out STD_LOGIC;

NQ : out STD_LOGIC

);

end D_trig;

architecture D_trig of D_trig is

---- Signal declarations used on the diagram ----

signal NET108 : STD_LOGIC;

signal NET114 : STD_LOGIC;

signal NET128 : STD_LOGIC;

signal NET137 : STD_LOGIC;

signal NET141 : STD_LOGIC;

signal NET145 : STD_LOGIC;

begin

---- Component instantiations ----

NET108 <= not(NET137 and NET114 and ns);

NET137 <= not(nr and c and NET108);

NET128 <= not(NET114 and c and NET137);

NET114 <= not(nr and d and NET128);

NET145 <= not(NET141 and NET137 and ns);

NET141 <= not(nr and NET128 and NET145);

N <= NET145 and NET145;

NQ <= NET141 and NET141;

end D_trig;

1. Можна побачити, що з'явився блок ієрархії

2. Даний блок можна додати на схему й використати для побудови більше складних пристроїв

3. Повідомлення результату компіляції

Моделювання D-тригера

Натискаємо на кнопку NewWaveform, далі комбінацію клавіш Ctrl+І або правим кличем миші AddSіgnals. Вибираємо сигнали для тимчасових діаграм.

Після вибору необхідних сигналів натискаємо кнопку Close

Після чого виставляємо параметри кликаем правою кнопкою миші й вибираємо Stіmulators або лівою кнопкою кликаем два рази. Виставляємо наступні значення:

1. Запустити моделювання

2. Перевірка вихідних сигналів D-тригера

Створення схеми чотирьох розрядного лічильника

Створюємо лічильник за аналогією з D-тригером:

1. Додаємо новий файл

2. Вибираємо тип файлу

3. Уводимо ім'я

Натискаємо на кнопку OK

Після чого збираємо з логічних елементів D - тригер і виконуємо компіляцію Desіgn>Compіle

Після компіляції, можна побачити наступне (Рисунок 16):

1. Можна переглянути або відредагувати вихідний код програми

library IEEE;

use IEEE.std_logic_1164.all;

entity Counter is

port(

c : in STD_LOGIC;

r : in STD_LOGIC;

s : in STD_LOGIC;

Y1 : out STD_LOGIC;

Y2 : out STD_LOGIC;

Y3 : out STD_LOGIC;

Y4 : out STD_LOGIC

);

end Counter;

architecture Counter of Counter is

---- Component declarations -----

component D_trig

port (

c : in STD_LOGIC;

d : in STD_LOGIC;

nr : in STD_LOGIC;

ns : in STD_LOGIC;

N : out STD_LOGIC;

NQ : out STD_LOGIC

);

end component;

--- Signal declarations used on the diagram ----

signal NET250 : STD_LOGIC;

signal NET260 : STD_LOGIC;

signal NET335 : STD_LOGIC;

signal NET346 : STD_LOGIC;

signal NET420 : STD_LOGIC;

signal NET436 : STD_LOGIC;

begin

---- Component instantiations ----

U1 : D_trig

port map(

N => Y1,

NQ => NET346,

c => c,

d => NET346,

nr => NET335,

ns => NET260

);

U2 : D_trig

port map(

N => Y2,

NQ => NET420,

c => NET346,

d => NET420,

nr => NET335,

ns => NET260

);

U3 : D_trig

port map(

N => Y3,

NQ => NET436,

c => NET420,

d => NET436,

nr => NET335,

ns => NET260

);

U4 : D_trig

port map(

N => Y4,

NQ => NET250,

c => NET436,

d => NET250,

nr => NET335,

ns => NET260

);

NET260 <= not(s);

NET335 <= not(r);

endCounter;

1. Можна побачити, що з'явився блок ієрархії

2. Даний блок можна додати на схему й використати для побудови більше складних пристроїв

3. Повідомлення результату компіляції

Моделювання лічильника

Натискаємо на кнопку NewWaveform, далі комбінацію клавіш Ctrl+І або правим кличем миші Add Sіgnals. Вибираємо сигнали для тимчасових діаграм

Після чого виставляємо параметри кликаем правою кнопкою миші вибираємо Stіmulators, або подвійним кличем лівої кнопки. Виставляємо наступні значення:

Для об'єднання сигналів необхідно їх виділити, кликнувши правою кнопкою миші вибрати MergeSіgnals.


СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ

1. Суворова Е.А., Шейнин Ю.Е. Проэктирование цифровых систем на VHDL. – СПб.: БХВ-Петербург, 2003. – 576с.

2. Армстронг Дж.Р. Моделирование цифровых систем на языке VHDL: Пер с англ. - М.: Мир, 1992. - 175 с.

3. Бибило П.Н. Основы языка VHDL. Второе издание. - М.: Солон-Р, 2002. - 224 с.

4. Бибило П.Н. Синтез логических схем с использованием языка VHDL. - М.: Солон-Р, 2002. - 384 с.

5. Перельройзен Е.З. Проектируем на VHDL - М.: СОЛОН - Пресс, 2004. – 448 с.

6. Поляков А.К. Языки VHDL и VERILOG в проектировании цифровой аппаратуры. - М.: СОЛОН-Пресс, 2003. - 320 с.

7. Сергиенко А.М. VHDL для проектирования вычислительных устройств. - К.: ЧП &bsol;"Корнейчук&bsol;", ООО &bsol;"ТИД &bsol;"ДС&bsol;", 2003. - 208 с.

8. Суворова Е.А., Шейнин Ю.Е. Проектирование цифровых систем на VHDL. - СПб.: БХВ-Петербург, 2003. - 576 с.

9. VHDL для моделирования, синтеза и формальной верификации аппаратуры / Пер с англ. - М: Радио и связь, 1995. - 360 с.

10. http://www.msclub.ce.cctpu.edu.ru/VHDL/spravhdl.html

11. http://parallel.ru/FPGA/hdl.html

12. http://ru.wikipedia.org/wiki/VHDL