Проектування та дослідження операційних пристроїв вбудованих систем

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

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

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

Рік:
2014
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Проектування вбудованих комп’ютерних систем

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

Міністерство освіти і науки України Національний університет „Львівська політехніка” Звіт з лабораторної роботи № 7 з дисципліни: “Проектування вбудованих комп’ютерних систем” На тему: Проектування та дослідження операційних пристроїв вбудованих систем Львів 2014 «Проектування та дослідження операційних пристроїв вбудованих систем» Метою роботи є Проектування і перевірка роботи операційного пристрою з заданим викладачем набором характеристик. Варіант. 09: 2 B 4 1 9 A C 0 E 3   Хід роботи. Запускаю програму /. Створюю новий проект. / Даю йому своє ім’я GRS_lab7. Відкриваю новий аркуш графічного редактора. За допомогою генератора ядер згенерувати арифметико-логічний пристрій (АЛП), даю йому своє ім’я: / Копіюю до каталога даного проекта і додаю до проекта усі файли регістрового файлу з попередньої лабораторної роботи: / Скопіювати до каталога даного проекта і додати до проекта VHDL-описи усіх ядер регістрового файлу, згенерованих у попередній роботі: / / / Проводжу компіляцію скопійованих схем та описів, / Виправляю помилки, які виникають під час компіляції, описів з попередньої лабораторної роботи : / Розміщую символи ядер регістрового файлу, буфера та АЛП на схемі, під’єднюю вхідні та вихідні сигнали та контакти, даю їм імена. / Компілюю файл із схемою: / Зберігаю створену схему під імям GRS_sch7. Встановлюю схему як схему найвищого рівня (яка буде моделюватися): / Переходжу до режиму моделювання. Взяти за основу командний файл з попередньої лабораторної роботи (6.do). Створити командний файл 7.do для моделювання процесу виконання такої задачі: 1 такт синхроімпульсів дорівнює 10 нс; Подаю на входи Data послідовність з 8 двійкових кодів (K0, K1, … K7), які змінюються кожного такту по задньому фронту синхроімпульсів; розрядність кодів повинна дорівнювати розрядності АЛУ, зменшеній на 4; коди чисел утворюються з послідовності тетрад, яка відповідає варіанту роботи; / VIEW wave restart wave GRS_clk GRS_clr GRS_en_a GRS_en_b GRS_en_w GRS_en_i GRS_aa GRS_ab GRS_aw GRS_data GRS_ci GRS_m GRS_s GRS_co GRS_ov GRS_a GRS_b wave U1/GRS_1__0/rgf/U1/Q U1/GRS_1__1/rgf/U1/Q U1/GRS_1__2/rgf/U1/Q U1/GRS_1__3/rgf/U1/Q U1/GRS_1__4/rgf/U1/Q U1/GRS_1__5/rgf/U1/Q U1/GRS_1__6/rgf/U1/Q U1/GRS_1__7/rgf/U1/Q force -r 10 ns GRS_clk 0 0 ns, 1 5 ns force GRS_clr 1 0 ns, 0 2 ns force GRS_m 1 0 ns, 0 10 ns, 1 20ns, 0 30ns, 1 40ns, 1 50ns, 0 60ns, 1 70ns, 1 80ns, 0 90ns, 1 100ns, force GRS_ci 0 0 ns, force GRS_s 110 0ns, 000 10ns, 110 20ns, 000 30ns, 000 40ns, 110 50ns, 000 60ns, 000 70ns, 110 80ns, 000 90ns, 000 100ns, force GRS_en_i 1 0 ns, 0 40ns, 1 50ns, 0 70ns, 1 80ns, 0 100ns force GRS_en_a 0 0 ns, 1 40ns, 0 50ns, 1 70ns, 0 80ns, 1 100ns, force GRS_en_b 0 0 ns, 1 10ns, 0 20ns, 1 30ns, 1 40ns, 0 50ns, 1 60ns, 1 70ns, 0 80ns, 1 90ns, force GRS_en_w 1 0 ns, 0 110ns, force GRS_aa 16#0 0 ns, 16#2 40ns, 16#4 70ns, 16#5 100ns, force GRS_ab 16#0 0 ns, 16#1 10ns, 16#1 30ns, 16#3 40ns, 16#1 60ns, 16#7 70ns, 16#1 90ns, 16#7 100ns, force GRS_aw 16#1 0 ns, 16#2 10ns, 16#1 20ns, 16#3 30ns, 16#7 40ns, 16#1 50ns, 16#4 60ns, 16#7 70ns, 16#1 80ns, 16#5 90ns, 16#7 100ns, force GRS_data 16#2 0 ns, 16#B 10 ns, 16#4 20 ns, 16#1 30 ns, 16#9 50 ns, 16#A 60 ns, 16#C 80 ns, 16#0 90 ns run 120 ns Під’єднюю GRS_7.do-файл до проекту. Проводжу моделювання схеми: Промодельовую створену схему: / / Опис Alu. library IEEE; use IEEE.std_logic_1164.all; entity GRS_ALU is port ( A : in std_logic_vector(3 downto 0); B : in std_logic_vector(3 downto 0); S : in std_logic_vector(2 downto 0); CI : in std_logic; M : in std_logic; CO : out std_logic; OV : out std_logic; Q : out std_logic_vector(3 downto 0) ); end entity; library IEEE; use IEEE.std_logic_unsigned.all; architecture alu_arch of GRS_ALU is signal LOGIC_RESULT : std_logic_vector(3 downto 0); signal ARITH_RESULT : std_logic_vector(3 downto 0); signal CO_OUT: std_logic; signal OV_OUT: std_logic; constant ADD_M : std_logic_vector(2 downto 0) :="000"; constant LOAD_A : std_logic_vector(2 downto 0) :="110"; constant AND_S : std_logic_vector(2 downto 0) :="000"; begin process (A, B, S) begin case S is when AND_S => LOGIC_RESULT <= A and B; when others => NULL; end case; end process; process (A, B, CI, S) variable C_TEMP : std_logic; variable CO_TEMP : std_logic; variable A_TEMP : std_logic_vector(3 downto 0); variable B_TEMP : std_logic_vector(3 downto 0); variable TEMP_R : std_logic_vector(3 downto 0); begin A_TEMP := (others => '0'); B_TEMP := (others => '0'); TEMP_R := (others => '0'); CO_TEMP := '0'; case S is when ADD_M => A_TEMP := ('0' & A(2 downto 0)); B_TEMP := ('0' & B(2 downto 0)); TEMP_R := A_TEMP + B_TEMP + CI; CO_TEMP := (A(3) and B(3)) or (TEMP_R(3) and (A(3) or B(3))); when LOAD_A => A_TEMP := ('0' & A(2 downto 0)); B_TEMP := (others => '0'); TEMP_R := A_TEMP ; CO_TEMP := TEMP_R(3) and A(3); when others => NULL; end case; case S is when ADD_M=> C_TEMP:=A(3) xor B(3); when others => C_TEMP:=A(3); end case; ARITH_RESULT <= (C_TEMP xor TEMP_R(3)) & TEMP_R(2 downto 0); CO_OUT <= CO_TEMP; OV_OUT <= CO_TEMP xor TEMP_R(3); end process; CO <= CO_OUT when M = '1' else '0'; OV <= OV_OUT when M = '1' else '0'; Q <= ARITH_RESULT when M = '1' else LOGIC_RESULT; end architecture; Висновки: на цій лабораторній роботі я навчився проектувати і перевіряти роботу операційного пристрою з заданим викладачем набором характеристик.
Антиботан аватар за замовчуванням

25.05.2014 12:05-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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