[ VHDL - технології дослідження цифрових пристроїв ]! | 1 | | ||||||
| 1 | 0 | 1 | 0 | 1 | 1 | 0 | |
| 1 | 0 | 1 | 1 | 0 | 0 | 1 | |
| 1 | 1 | 0 | 0 | 0 | 0 | 1 | |
| 1 | 1 | 0 | 1 | 1 | 0 | 0 | |
| 1 | 1 | 1 | 0 | 1 | 1 | 0 | |
| 1 | 1 | 1 | 1 | 0 | 1 | 1 | |
1. Розглянемо перший варіант (для y1):
Аналітичне представлення функції має вид:
= + + + + + + +
Принципова електрична схема на базі Та-АБО-НІ:
Тимчасові діаграми отриманого пристрою повинні відповідати таблиці істинності його функціонування:
I етап – Одержання первинних імпликант
Одержання імпликант рангу 3, 2 і 1.
1
1
|
| | 1 | | | |
| |
| |
| | 1 | | | |
|
| | | | 1 | |
| |
| |
| | | | 1 | |
| | |
| |
| | 1 | |
1
|
|
|
|
|
|
|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 1 |
| | |
| |
| | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| 1 | | |
| |
| | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
У таблиці немає порожніх рядків, тому ранг усіх імпликант зменшений до 3
У таблиці всі рядки порожні, отже, мінімальний ранг всіх імплікант складає 2. II етап – Обробка первинних імплікант.
Як видно, кожна з імплікант є сутною, тому ФАЛ має вид + Відповідно до приведеного представлення, принципова електрична схема повинна складатися з логічних елементів Та, АБО, НІ і може мати Тимчасові діаграми отриманого пристрою повинні відповідати таблиці істинності його функціонування. Представлення в різних базисах Представлення логічної функції в базисі ТА-НІ: + = Відповідно до приведеного представлення, принципова електрична схема повинна складатися тільки з логічних елементів ТА-НІ і може мати наступний вид:
Представлення логічної функції в базисі АБО-НІ:
Відповідно до приведеного представлення, принципова електрична схема повинна складатися тільки з логічних елементів АБО-НІ і може мати наступний вид: 2 Розглянемо другий варіант (для y2): Аналітичне представлення функції має вид: = + + + + + III. Розглянемо третій варіант (для y3): Аналітичне представлення функції має вид: = + + + + + + + + + Принципова електрична схема на базі Та-АБО-НІ:
IV. Створення ієрархічних структур при проектуванні складних пристроїв у системі Actіve-HDL 6.1 Довільний фрагмент схеми можна оформити у вигляді ієрархічного блоку, символ якого являє собою прямокутник, і потім розмістити його на схемі, що дозволяє зменшити її розміри. Інше застосування ієрархічних блоків - подання з їхньою допомогою повторюваних фрагментів схем: різних фільтрів, підсилювачів, випрямлячів, суматорів і т.п. Задание: Создать четырех разрядный счетчик на основе D триггера. Порядок дій при створенні проекту
Створення принципової схеми проекту Створення схеми D-тригера Виконуємо наступні дії (Рисунок 5): 1. Додаємо новий файл 2. Вибираємо тип файлу 3. Уводимо ім'я Натискаємо на кнопку OK Після чого збираємо з логічних елементів D - тригер і виконуємо компіляцію Desіgn>Compіle. Після компіляції ми бачимо наступне
library IEEE; use IEEE.std_logic_1164.all; entity D_trig is 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;
Моделювання D-тригера Натискаємо на кнопку NewWaveform, далі комбінацію клавіш Ctrl+І або правим кличем миші Add Sі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); end Counter; 1. Можна побачити, що з'явився блок ієрархії 2. Даний блок можна додати на схему й використати для побудови більше складних пристроїв 3. Повідомлення результату компіляції Моделювання лічильника Натискаємо на кнопку NewWaveform, далі комбінацію клавіш Ctrl+І або правим кличем миші Add Sіgnals. Вибираємо сигнали для тимчасових діаграм Після чого виставляємо параметри кликаем правою кнопкою миші вибираємо Stіmulators, або подвійним кличем лівої кнопки. Виставляємо наступні значення: Для об'єднання сигналів необхідно їх виділити, кликнувши правою кнопкою миші вибрати Merge Sіgnals. СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ
|