Відповідно до приведеного представлення, принципова електрична схема повинна складатися з логічних елементів Та, АБО, НІ і може мати Тимчасові діаграми отриманого пристрою повинні відповідати таблиці істинності його функціонування.
Представлення в різних базисах
Представлення логічної функції в базисі ТА-НІ:
+ =Відповідно до приведеного представлення, принципова електрична схема повинна складатися тільки з логічних елементів ТА-НІ і може мати наступний вид:
Представлення логічної функції в базисі АБО-НІ:
Відповідно до приведеного представлення, принципова електрична схема повинна складатися тільки з логічних елементів АБО-НІ і може мати наступний вид:
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 для проектирования вычислительных устройств. - К.: ЧП \"Корнейчук\", ООО \"ТИД \"ДС\", 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