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

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

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

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

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

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

Міністерство освіти і науки України Національний університет „ Львівська політехніка ” Кафедра ЕОМ Звіт з лабораторної роботи №5 на тему: „Розробка та моделювання паралельного регістру та регістру зсуву ” з курсу : Мови опису апаратних засобів Львів 2005 Тема: Розробка та моделювання паралельного регістру та регістру зсуву. Мета: засвоїти принципи роботи паралельного та зсувного регістрів; навчитися описувати синхронізовані процеси та використовувати циклічні оператори при описі поведінки об'єктів за допомогою VHDL. Хід роботи У VHDL існує два оператора цикла: оператор циклу з умовою while ... loop ... оператор циклу з лічильником for ... loop ... . Оператор умовного циклу починається з логічної умови. Цикл повторюється до тих пір, поки виконується умова на початку циклу. Спочатку перевіряється умова, і, якщо вона істинна, виконуються оператори всередині циклу. Якщо ж умова хибна, цикл вважається закінченим і керування передається першому оператору, що знаходиться після циклу. Як правило, такі цикли використовуються для повторення виконання групи операторів до тих пір, поки сигнал або змінна відповідають вибраному критерію (наприклад, дорівнюють деякому значенню). Постановка задачі Необхідно описати на 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. Тексти програм: - паралельний регістр library IEEE; use IEEE.std_logic_1164.all; entity RegParal is port ( DATA_IN: in STD_LOGIC_VECTOR (7 downto 0); CLK: in STD_LOGIC; WE: in STD_LOGIC; RE: in STD_LOGIC; DATA_OUT: out STD_LOGIC_VECTOR (7 downto 0) ); end RegParal; architecture RegParal of RegParal 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 RegParal; - регістр зсуву library IEEE; use IEEE.std_logic_1164.all; entity RegSh is port ( DATA_IN: in STD_LOGIC; CLK: in STD_LOGIC; WE: in STD_LOGIC; RE: in STD_LOGIC; DATA_OUT: out STD_LOGIC_VECTOR (7 downto 0) ); end RegSh; architecture RegSh of RegSh 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 RegSh; Висновок: в результаті виконання лабораторної роботи засвоїв принципи роботи паралельного та зсувного регістрів. Навчився описувати синхронізовані процеси та використовувати циклічні оператори при описі поведінки об'єктів за допомогою VHDL.
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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