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

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

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

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

Розробка та моделювання паралельного регістра та регістра зсуву

Оригінальна назва роботи

Розробка та моделювання

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

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

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

Рік:
2005
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Мови опису апаратних засобів
Група:
КІ-44
Коротко про документ

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

У звіті наведено розробку та моделювання паралельного та зсувного регістрів засобами мови VHDL. Описано принципи роботи синхронізованих процесів та циклічних операторів.

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

  • VHDL
  • Регістр зсуву
  • Моделювання електронних схем
  • Циклічні оператори
  • Синхронізовані процеси

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

  1. Мета роботи
  2. Теоретичні відомості
  3. Постановка задачі
  4. Рекомендації до створення VHDL-опису
  5. Текст VHDL-опису паралельного регістру
  6. Текст VHDL-опису регістру зсуву
  7. Часові діаграми роботи
  8. Висновки
Для кого:Студенти технічних спеціальностей вищих навчальних закладів
Викладачі:Викладач кафедри

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

VHDLрегістр зсувупроцессинхронізаціяциклstd_logicмоделюваннячасова діаграма

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

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра електронних обчислювальних машин Звіт про виконання лабораторної роботи № 5 з курсу „ Мови опису апаратних засобів ” Тема: Розробка та моделювання паралельного регістру та регістру зсуву Мета роботи: Засвоїти принципи роботи паралельного та зсувного регістрів. Навчитися описувати синхронізовані процеси та використовувати циклічні оператори при описі поведінки об'єктів за допомогою VHDL. Теоретичні відомості: У VHDL існує два оператора цикла: оператор циклу з умовою while ... loop ... оператор циклу з лічильником for ... loop ... . Оператор умовного циклу починається з логічної умови. Цикл повторюється до тих пір, поки виконується умова на початку циклу. Спочатку перевіряється умова, і, якщо вона істинна, виконуються оператори всередині циклу. Якщо ж умова хибна, цикл вважається закінченим і керування передається першому оператору, що знаходиться після циклу. Як правило, такі цикли використовуються для повторення виконання групи операторів до тих пір, поки сигнал або змінна відповідають вибраному критерію (наприклад, дорівнюють деякому значенню). Цикл з лічильником не містить явної булевої умови. Замість цього задається дискретний лічильник із діапазоном значень і цикл повторюється до тих пір, поки цей лічильник не вийде за межі діапазона. Після кожної ітерації циклу лічильнику присвоюється наступне значення із заданого діапазону. Лічильник, який не обов'язково декларувати (його специфікація в заголовку циклу прирівнюється до декларації) всередині циклу вважається константою і може використовуватись в присвоєннях, індексах виразів, але не може бути змінене. Більше того, лічильник існує тільки всередині циклу, в якому він задекларований. Діапазон лічильника можна задавати не тільки в класичній формі вигляду from … to …. Він може бути також заданий як підтип або перечислимий тип. В такому випадку тільки (під)тип задається в якості діапазону лічильника. Постановка задачі Необхідно описати на VHDL роботу паралельного та зсувного регістрів, промоделювати їх та отримати часові діаграми. Паралельний 8-розрядний регістр має: 8-розрядний вхід DATA_IN (7 downto 0) типу std_logic_vector для передачі даних, вхід синхронізації CLK, типу std_logic, вхід дозволу на запис WE типу std_logic, вхід дозволу зчитування RE типу std_logic. 8-розрядний вихід DATA_OUT (7 downto 0) типу std_logic_vector для виводу даних. Робота регістра має здійснюватися наступним чином: у стані збереження байта на виході регістра постійно утримується високий імпеданс ("ZZZZZZZZ"), що дозволить організувати роботу декількох регістрів через одну шину, оскільки сигнал високого імпедансу має найнижчий пріоритет; якщо WE = '1' і RE = '0', то здійснюється запис інформації в регістр; якщо WE = '0' і RE = '1', то на вихід регістра подається значення байта, що зберігається в цьому регістрі; всі інші комбінації WE та RE розглядаються як стан збереження байта; робота регістра має бути синхронізована по сигналу CLK. Зсувний 8-розрядний регістр має: один вхід DATA_IN типу std_logic для вводу інформації, вхід синхронізації CLK типу std_logic, вхід дозволу на запис WE типу std_logic, вхід дозволу зчитування RE типу std_logic, 8-розрядний вихід DATA_OUT (7 downto 0) типу std_logic_vector для паралельного виводу даних Робота регістра має здійснюватися наступним чином: у стані збереження байта на виході регістра постійно утримується високий імпеданс "ZZZZZZZZ"; якщо WE = '1' і RE = '0', то здійснюється запис інформації в регістр, при цьому сигнал DATA_IN надходить в DATA_OUT(0), значення DATA_OUT(0) переміщується в DATA_OUT(1) і т.д.; якщо WE='0' і RE='1', то на вихід регістра подається значення байта, що зберіг. в цьому регістрі; всі інші комбінації WE та RE розглядаються як стан збереження байта; робота регістра має бути синхронізована по сигналу CLK. Рекомендації до створення VHDL-опису: Для збереження проміжної інформації доцільно застосовувати змінні типу std_logic_vector (7 downto 0). Для забезпечення синхронізації в список чутливості процесів необхідно поміщати сигнал CLK. Зсув у зсувному регістрі слід реалізовувати за допомогою циклу з параметром (for). Більш ефективним є зсув від старшого (7-го) біта до молодшого (0-го). Текст VHDL-опису паралельного регістру library IEEE; use IEEE.std_logic_1164.all; entity ParallelRegister is port ( DATA_IN: in STD_LOGIC_VECTOR (7 downto 0); CLK, WE, RE: in STD_LOGIC; DATA_OUT: out STD_LOGIC_VECTOR (7 downto 0) ); end ParallelRegister; architecture ParRG of ParallelRegister is begin process (DATA_IN,CLK,WE,RE) variable Medium : STD_LOGIC_VECTOR (7 downto 0); variable OUT_DATA : STD_LOGIC_VECTOR (7 downto 0); begin if (CLK='1' and WE='1' and RE='0') then Medium:=DATA_IN; elsif (CLK='1' and WE='0' and RE='1') then OUT_DATA:=Medium; end if; DATA_OUT<=OUT_DATA; end process; end ParRG; Текст VHDL-опису регістру зсуву library IEEE; use IEEE.std_logic_1164.all; entity ShiftRegister is port ( DATA_IN, CLK, WE, RE: in STD_LOGIC; DATA_OUT: out STD_LOGIC_VECTOR (7 downto 0) ); end ShiftRegister; architecture ShiftRG of ShiftRegister is begin process (DATA_IN,CLK,WE,RE) variable OUT_DATA : STD_LOGIC_VECTOR (7 downto 0); variable Medium : STD_LOGIC_VECTOR (7 downto 0); begin if (CLK='1' and WE='1' and RE='0') then for i in 6 downto 0 loop OUT_DATA(i+1):=OUT_DATA(i); end loop; OUT_DATA(0):=DATA_IN; Medium:=OUT_DATA; elsif (CLK='1' and WE='0' and RE='1') then OUT_DATA:=Medium; end if; DATA_OUT<=OUT_DATA; end process; end ShiftRG; Часові діаграми роботи паралельного регістру  Часові діаграми роботи регістру зсуву  Висновки: виконуючи дану лабораторну роботу, я засвоїв принципи роботи паралельного та зсувного регістрів; навчився описувати синхронізовані процеси та використовувати циклічні оператори при описі поведінки об'єктів за допомогою мови VHDL
Допоможи студентському архіву

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

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

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

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

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

Admin

26.02.2023 12:38

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