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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

VHDLрегістр зсувуоператор whileоператор forсинхронізований процесвектор данихтактовий сигналмоделюваннярозробка

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

Міністерство освіти і науки України Національний університет «Львівська Політехніка» Кафедра ЕОМ / ЗВІТ до лабораторної роботи №5 з дисципліни «Моделювання комп’ютерних систем» на тему : Розробка та моделювання паралельного регістру та регістру зсуву Львів Мета роботи: Засвоїти принципи роботи паралельного та зсувного регістрів. Навчитися описувати синхронізовані процеси та використовувати циклічні оператори при описі поведінки об'єктів за допомогою 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 …. Він може бути також заданий як підтип або перечислимий тип. В такому випадку тільки (під)тип задається в якості діапазону лічильника. Приклад використання оператора циклу з лічильником: constant MSB : natural := 7; signal SourceBus : std_logic_vector (MSB downto 0); ReverseBus: process (SourceBus) variable ResultBus : std_logic_vector (MSB downto 0); begin for Cntr in 1 to MSB loop ResultBus(MSB - Cntr) := SourceBus(Cntr); end loop; end process ReverseBus; Код програми Паралельного восьмирозрядного регістра: library IEEE; use IEEE.std_logic_1164.all; entity parvreg is port( CLK : in STD_LOGIC; DATA_IN : in STD_LOGIC_VECTOR(7 DOWNTO 0); RE : in STD_LOGIC; WE : in STD_LOGIC; DATA_OUT : out STD_LOGIC_VECTOR (7 DOWNTO 0) ); end parvreg; architecture parvreg of parvreg is begin process(CLK,DATA_IN,RE,WE) variable reg:std_logic_vector(7 downto 0); begin if ( CLK'event and CLK = '1' and WE = '1' and RE = '0' ) then reg:= DATA_IN; elsif ( CLK'event and CLK = '1' and WE = '0' and RE = '1' ) then DATA_OUT <=reg; else DATA_OUT <="ZZZZZZZZ"; end if; end process; end parvreg; Рис.1 Діаграма роботи Паралельного восьмирозрядного регістра. Код програми Зсувного восьмирозрядного регістра: library IEEE; use IEEE.std_logic_1164.all; entity regzsyv is port( CLK : in STD_LOGIC; DATA_IN : in STD_LOGIC; RE : in STD_LOGIC; WE : in STD_LOGIC; DATA_OUT : out STD_LOGIC_VECtor( 7 downto 0) ); end regzsyv; architecture regzsyv of regzsyv is begin process ( CLK, WE,DATA_IN, RE ) variable reg : std_logic_vector ( 7 downto 0 ); begin if( CLK'event and CLK = '1' and WE = '1' and RE = '0' ) then for Counter in 6 downto 0 loop reg(Counter+1) := reg(Counter); end loop; reg(0):=DATA_IN; elsif ( CLK'event and CLK = '1' and WE = '0' and RE ='1' ) then DATA_OUT <= reg; else DATA_OUT <="ZZZZZZZZ"; end if; end process ; end regzsyv; Рис.2 Діаграма роботи Зсувного восьмирозрядного регістра. Висновок. На даній лабораторній роботі я засвоїв принципи роботи паралельного та зсувного регістрів. Навчився описувати синхронізовані процеси та використовувати циклічні оператори при описі поведінки об'єктів за допомогою VHDL.
Допоможи студентському архіву

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

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

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

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

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

Admin

26.02.2023 12:38

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