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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

VHDLрегістр зсувусинхронізований процесоператор циклуwhile loopfor loophigh impedanceclock signalentityarchitecture

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІНСТИТУТ КОМП’ЮТЕРНОЇ ТЕХНІКИ АВТОМАТИКИ ТА МЕТРОЛОГІЇ ЗВІТ ЛАБОРАТОРНОЇ РОБОТИ №5 З ПРЕДМЕТУ: «Моделювання комп'ютерних систем» ТЕМА: «Розробка та моделювання паралельного регістру та регістру зсуву» Перевірив: Колодчак О.М. Львів – 2012 Мета роботи: Засвоїти принципи роботи паралельного та зсувного регістрів. Навчитися описувати синхронізовані процеси та використовувати циклічні оператори при описі поведінки об'єктів за допомогою VHDL. Теоретичні відомості Опис операторів циклу, що використовуються у VHDL: У VHDL існує два оператора цикла: оператор циклу з умовою while ... loop ... оператор циклу з лічильником for ... loop ... . Оператор умовного циклу починається з логічної умови. Цикл повторюється до тих пір, поки виконується умова на початку циклу. Спочатку перевіряється умова, і, якщо вона істинна, виконуються оператори всередині циклу. Якщо ж умова хибна, цикл вважається закінченим і керування передається першому оператору, що знаходиться після циклу. Як правило, такі цикли використовуються для повторення виконання групи операторів до тих пір, поки сигнал або змінна відповідають вибраному критерію (наприклад, дорівнюють деякому значенню). Приклад використання умовного оператора циклу: process variable Count : integer := 0; begin wait until CLK = '1'; while Level = '1' loop Count := Count + 1; wait until CLK = '0'; end loop; end process; Цикл з лічильником не містить явної булевої умови. Замість цього задається дискретний лічильник із діапазоном значень і цикл повторюється до тих пір, поки цей лічильник не вийде за межі діапазона. Після кожної ітерації циклу лічильнику присвоюється наступне значення із заданого діапазону. Лічильник, який не обов'язково декларувати (його специфікація в заголовку циклу прирівнюється до декларації) всередині циклу вважається константою і може використовуватись в присвоєннях, індексах виразів, але не може бути змінене. Більше того, лічильник існує тільки всередині циклу, в якому він задекларований. Діапазон лічильника можна задавати не тільки в класичній формі вигляду from … to …. Він може бути також заданий як підтип або перечислимий тип. В такому випадку тільки (під)тип задається в якості діапазону лічильника. Опис алгоритмів роботи розроблених регістрів: Паралельний 8-розрядний регістр у стані збереження байта на виході регістра постійно утримується високий імпеданс ("ZZZZZZZZ"), що дозволить організувати роботу декількох регістрів через одну шину, оскільки сигнал високого імпедансу має найнижчий пріоритет; якщо WE = '1' і RE = '0', то здійснюється запис інформації в регістр; якщо WE = '0' і RE = '1', то на вихід регістра подається значення байта, що зберігається в цьому регістрі; всі інші комбінації WE та RE розглядаються як стан збереження байта; робота регістра має бути синхронізована по сигналу CLK. Зсувний 8-розрядний регістр у стані збереження байта на виході регістра постійно утримується високий імпеданс ("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; use IEEE.STD_LOGIC_UNSIGNED.all; entity parallel_reg is port( CLK : in STD_LOGIC; WE : in STD_LOGIC; RE : in STD_LOGIC; DATA_IN : in STD_LOGIC_VECTOR(7 downto 0); DATA_OUT : out STD_LOGIC_VECTOR(7 downto 0)); end parallel_reg; architecture parallel_reg of parallel_reg is begin process (CLK) variable DATA: STD_LOGIC_VECTOR(7 downto 0); begin if CLK'event and CLK = '1' then if WE = '1' and RE = '0' then DATA := DATA_IN; elsif WE = '0' and RE = '1' then DATA_OUT <= DATA; else DATA_OUT <= "ZZZZZZZZ"; end if; end if; end process; end parallel_reg;  library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_UNSIGNED.all; entity shift_reg 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 shift_reg; architecture shift_reg of shift_reg is begin process (CLK) variable DATA: STD_LOGIC_VECTOR(7 downto 0); begin if CLK'event and CLK = '1' then if WE = '1' and RE = '0' then for i in 7 downto 1 loop DATA(i) := DATA(i - 1); end loop; DATA(0) := DATA_IN; elsif WE = '0' and RE = '1' then DATA_OUT <= DATA; else DATA_OUT <= "ZZZZZZZZ"; end if; end if; end process; end shift_reg;  Висновки: виконавши дану лабораторну роботу, я засвоїла принципи роботи паралельного та зсувного регістрів та навчилася описувати синхронізовані процеси та використовувати циклічні оператори при описі поведінки об'єктів за допомогою VHDL.
Допоможи студентському архіву

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

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

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

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

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

Admin

26.02.2023 12:38

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