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

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

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

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

Рік:
2012
Тип роботи:
Лабораторна робота
Предмет:
Інформаційні технології

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

Національний авіаційний університет Факультет комп’ютерних наук Кафедра прикладної інформатики Лабораторна робота №5 з дисципліни «Інформаційні технології віртуального проектування в авіатехніці» тема: «Розробка і моделювання паралельного та зсувного регістрів» Мета роботи: засвоїти принципи роботи паралельного та зсувного регістрів. Навчитися описувати синхронізовані процеси та використовувати циклічні оператори при описанні поведінки об’єктів за допомогою VHDL Постановка задачі Необхідно описати за допомогою VHDL роботу паралельного та зсувного регістрів, промоделювати їх та одержати часові діаграми. Паралельний 8-розрядний регістр має 8-розрядний вхід DATA_IN(7 downto 0) типу STD_LOGIC_VECTOR для передачі даних, вхід синхронізації CLK, вхід дозволу на запис WE та вхід дозволу зчитування RE (типу STD_LOGIC). Крім того, регістр має 8-розрядний вихід DATA_OUT (7 downto 0) для виводу даних (типу STD_LOGIC_VECTOR). Робота регістра має здійснюватися таким чином: У стані збереження байта на виході регістра постійно утримується високий імпеданс (“ZZZZZZZZ”). Це дасть змогу організувати роботу кількох регістрів на одну шину, так як, згідно таблиці перекриття сигналів (розділ 2.11 “Перекриття сигналів” теоретичної частини додатку 2), сигнал високого імпедансу має найнижчий пріоритет. Якщо WE = ’1’ і RE = ’0’, то здійснюється запис інформації до регістру. Якщо WE = ’0’ і RE = ’1’, то на вихід регістру подається значення байта, що зберігається в цьому регістрі. Всі інші комбінації WE та RE розглядаються як стан збереження байта. Робота регістра має бути синхронізована по сигналу CLK. Зсувний 8-розрядний регістр має один вхід DATA_IN типу STD_LOGIC для вводу інформації, вхід синхронізації CLK, вхід дозволу на запис WE та вхід дозволу зчитування 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. Рекомендації по написанню програми: Для збереження проміжної інформації доцільно застосовувати змінні типу STD_LOGIC_VECTOR (7 downto 0). Для забезпечення синхронізації в список чутливості процесів доцільно поміщати сигнал CLK. Зсув у зсувному регістрі слід реалізовувати за допомогою циклу з параметром (for). Більш ефективним є зсув від старшого (7-го) біта до молодшого (0-го). 1. Порядок виконання роботи Вивчити розділи 2.9 “Константи Generic” додатку 1, та 3.4 “Цикли” додатку 1, 2.5. “Процес” додатку 1. Розробити VHDL-модель паралельного 8-розрядного регістру. Промоделювати роботу паралельного регістра, розробленого в попередньому пункті, в режимах запису інформації, збереження байта та зчитування інформації. Проаналізувати на основі одержаних часових діаграм відповідність роботи паралельного регістра заданому алгоритму. Розробити VHDL-модель зсувного 8-розрядного регістру. Промоделювати роботу зсувного регістра, розробленого в попередньому пункті, в режимах запису інформації, збереження байта та зчитування інформації. Проаналізувати на основі одержаних часових діаграм відповідність роботи зсувного регістра заданому алгоритму. Паралельний 8-розрядний регістр library IEEE; use IEEE.STD_LOGIC_1164.all; entity Fub1 is port( DATA_IN : in STD_LOGIC_VECTOR(7 downto 0); CLK : in STD_LOGIC; RE : in STD_LOGIC; WE : in STD_LOGIC; DATA_OUT : out STD_LOGIC_VECTOR(7 downto 0) ); end Fub1; --}} End of automatically maintained section architecture Fub1 of Fub1 is signal DATA : STD_LOGIC_VECTOR(7 downto 0); begin REG : process (CLK) begin if(CLK'event and CLK='1')then if(RE='0' and WE='1')then DATA<=DATA_IN; end if; if(RE='1' and WE='0')then DATA_OUT<=DATA; end if; end if; end process; -- enter your statements here -- end Fub1;  Зсувний 8-розрядний регістр library IEEE; use IEEE.STD_LOGIC_1164.all; entity Fub2 is port( Data_In : in STD_LOGIC; re : in STD_LOGIC; we : in STD_LOGIC; clk : in STD_LOGIC; Data_Out : out STD_LOGIC_VECTOR(7 downto 0) ); end Fub2; architecture Fub2 of Fub2 is signal DATA : STD_LOGIC_VECTOR(7 downto 0); begin REG : process (clk) variable i:integer:=0; begin for i in 0 to 6 loop DATA(i+1)<=DATA(i); end loop; if(clk'event and clk='1')then if(re='0' and we='1')then DATA(0)<=Data_In; end if; if(re='1' and we='0')then Data_Out<=DATA; end if; end if; end process; -- enter your statements here -- end Fub2; 
Антиботан аватар за замовчуванням

13.05.2013 01:05-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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