DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Проектування сканеру клавіатури із застосуванням діаграм скінчених автоматів для опису об'єктів в САПР Active-HDL

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
Факультет комп’ютерних наук
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2005
Тип роботи:
Лабораторна робота
Предмет:
Мови опису апаратних засобів
Група:
КІ
Коротко про документ

Про що ця робота

У роботі досліджено принцип роботи сканера клавіатури та спроектовано цифровий пристрій за допомогою скінчених автоматів. Реалізовано VHDL-код для середовища Active-HDL та проведено моделювання.

У роботі розглядаються

  • Проектування цифрових пристроїв
  • Скінчені автомати
  • Сканер клавіатури
  • Мови опису апаратних засобів
  • Active-HDL
  • VHDL

Зміст і розділи

  1. Мета роботи
  2. Теоретичні відомості
  3. Порядок виконання роботи
  4. Виконання роботи
  5. Висновок
Для кого:Студенти технічних спеціальностей вищих навчальних закладів.
Викладачі:Колодчак О. М.

Ключові поняття

сканер клавіатурискінчений автоматActive-HDLVHDLсинхронізуючий імпульсматриця клавіатуристани автоматівкомпіляціямоделюванняінтерфейс системи

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”  Кафедра ЕОМ ЛАБОРАТОРНА РОБОТА № 4 З ПРЕДМЕТУ ”Мова опису програмних засобів” НА ТЕМУ: “ Проектування сканеру клавіатури із застосуванням діаграм скінчених автоматів для опису об'єктів в САПР Active-HDL.” Трофімов О.С. Прийняла: Колодчак О.М. ЛЬВІВ 2005 Лабораторна робота №4 Проектування сканеру клавіатури із застосуванням діаграм скінчених автоматів для опису об'єктів в САПР Active-HDL Мета роботи: Вивчити принцип роботи сканера клавіатури. Отримати навички проектування цифрових пристроїв за допомогою скінчених автоматів засобами Active-HDL. Теоретичні відомості Клавіатура більшості обчислювальних пристроїв змонтована у вигляді прямокутної матриці, у точках перетину рядків і стовбців якої розташовуються кнопочні контакти. Скануючий пристрій, що розробляється, повинен визначати номер елемента матриці, який відповідає натисненій клавіші, і видавати відповідний йому двійковий код. Сканер працює у двох головних режимах: Режим очікування: На всі рядки матриці клавіатури, які позначені Scan(0), Scan(1), Scan(2), Scan(3) подається логічна одиниця. Всі стовбці матриці клавіатури, позначені Ret(0), Ret(1), Ret(2), Ret(3) мають низький рівень сигналу. Рівень сигналів Ret перевіряється з кожним синхронізуючим імпульсом ClLK, і, якщо один з них змінить своє значення з '0' на '1', це сигналізує про натиснення однієї з клавіш. При цьому сканер переходить в наступний режим. Режим сканування: На рядок Scan(0) подається сигнал високого рівня, а на всі інші рядки - низького рівня. Перевіряється рівень сигналів Ret. Якщо рівень одного з Ret (наприклад, Ret(1)) зміниться з "низького" на "високий", це означає, що було замкнено контакт, який розташований на перетині рядка Scan(0) та стовбця Ret(1). Тобто номер елемента матриці клавіатури, якому відповідає натиснена клавіша, знайдено. Сканер передає цю інформацію у кодер для формування відповідного коду обраної цифри або операції та знову переходить до режиму очікування. Якщо рівень всіх рядків Ret залишається низьким, то проводиться перевірка наступного рядка матриці, і т.д. Порядок виконання роботи: Створити новий порожній проект в Active-HDL. Виходячи з основного принципу роботи сканера клавіатури, визначити основні стани пристрою і умови переходу від одного стану до іншого. Визначити інтерфейс системи. За допомогою Add New File і State Diagram Wizard створити макет діаграми скінчених автоматів. Скласти діаграму скінчених автоматів. Використовуючи кнопку робочої панелі FSM State Editor, створити в робочій області необхідну кількість кружків відповідно до кількості можливих станів сканера (S0, S1, ...), які були визначені в п.2. Використовуючи кнопку робочої панелі FSM State Editor, відобразити за допомогою стрілок зв'язки між станами. Оскільки як в режимі очікування, так і в режимі сканування потрібно перевіряти, чи має хоча б один з сигналів Ret значення '1', то буде зручно ввести локальний сигнал Cond = (Ret(0) or Ret(1) or Ret(2) or Ret(3)) за допомогою кнопки робочої панелі FSM State Editor. Використовуючи кнопку робочої панелі FSM State Editor, визначити умови переходів між станами. Використовуючи кнопку робочої панелі FSM State Editor, визначити дії, що виконуються в кожному стані скінченого автомата. Використовуючи кнопку робочої панелі FSM State Editor, додати джерело діаграми, встановивши його на стан S0. Ознайомитись з властивостями кожного об'єкту (параметрами, діями, умовами). Для відкриття відповідного діалогового вікна слід навести курсор на об'єкт, клацнути правою кнопкою миші і вибрати пункт "Properties" з локального меню. Послідовним натисненням кнопок і сформувати і відобразити VHDL-код, що відповідає створеній діаграмі скінчених автоматів. Вивчити відповідність графічних об'єктів діаграми і VHDL-коду. Скомпілювати пристрій та промоделювати його роботу. Виконання роботи Діаграма скінчених автоматів  Текст програми library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; use IEEE.std_logic_unsigned.all; entity Laba4_Diagram is port ( CLK: in STD_LOGIC; Ret: in STD_LOGIC_VECTOR (3 downto 0); KeyCode: out STD_LOGIC_VECTOR (7 downto 0); Strobe: out STD_LOGIC; Scan: inout STD_LOGIC_VECTOR (3 downto 0)); end; architecture Laba4_Diagram_arch of Laba4_Diagram is signal Cond: STD_LOGIC; type Sreg0_type is (S0, S1, S3, S4, S5, S2); signal Sreg0: Sreg0_type; begin Сond <= Ret(0) or Ret(1) or Ret(2) or Ret(3) ; Sreg0_machine: process (CLK) begin if CLK'event and CLK = '1' then case Sreg0 is when S0 => Scan <= "1111"; Strobe <= '1'; KeyCode <= "00000000"; if Cond = '0' then Sreg0 <= S0; elsif Cond = '1' then Sreg0 <= S1; end if; when S1 => Scan <= "0001"; if Cond = '0' then Sreg0 <= S2; elsif Cond = '1' then Sreg0 <= S5; end if; when S3 => Scan <= "0100"; if Cond = '1' then Sreg0 <= S5; elsif Cond = '0' then Sreg0 <= S4; end if; when S4 => Scan <= "1000"; if Cond = '0' then Sreg0 <= S0; elsif Cond = '1' then Sreg0 <= S5; end if; when S5 => KeyCode <= Ret & Scan; Strobe <= '1'; if Cond = '1' then Sreg0 <= S5; elsif Cond = '0' then Sreg0 <= S0; end if; when S2 => Scan <= "0010"; if Cond = '1' then Sreg0 <= S5; elsif Cond = '0' then Sreg0 <= S3; end if; when others => null; end case; end if; end process; end Laba4_Diagram_arch; Висновок: в ході лабораторної роботи я вивчив принцип роботи сканера клавіатури. Отримати навички проектування цифрових пристроїв за допомогою скінчених автоматів засобами Active-HDL
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!