лаба з Систмного програмування

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

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

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

Рік:
2015
Тип роботи:
Лабораторна робота
Предмет:
Системне програмування та операційні системи

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІНСТИТУТ КОМП’ЮТЕРНИХ ТЕХНОЛОГІЙ, АВТОМАТИКИ ТА МЕТРОЛОГІЇ / ЛАБОРАТОРНА РОБОТА №6 З ПРЕДМЕТУ «Моделювання комп’ютерних систем» На тему: «Проектування постійного запам'ятовуючого пристрою» Мета роботи: Вивчити принципи роботи постійного запам'ятовуючого пристрою (ПЗП). Отримати навички застосування масивів при створенні проектів у Active-HDL. Теоретична частина В VHDL масив інтерпретується як тип, значення якого складається з ряду елементів єдиного підтипу. Кожен елемент масиву відрізняється своїм індексом або рядом індексів (в багатовимірних масивах). Індекс масиву повинен мати порядковий тип і знаходитись в області допустимих значень. Таким чином, перш ніж застосовувати масив у VHDL, необхідно задекларувати тип масиву, а потім задекларувати масив як об'єкт: type array_type_name is array index_range of element_type; variable array_name: array_type_name [:= initial_values]; Приклад одновимірного масиву: type A is array (5 downto 0) of bit; variable B : A := "011001"; Для багатовимірного масиву порядок і структура оголошення масиву залишаються така ж сама, наприклад type A is array (1 to 3, 1 to 2) of integer; variable B : A := ((0 , 1),(5 , 2),(7, 8)); У наведених прикладах замість ключового слова variable може стояти signal або constant. При декларуванні типу масиву дозволяється не визначати його розмірність. Такі типи масивів називаються необмеженими. В цьому випадку розмірність вказується при декларуванні масиву, як об'єкта: type arr_type is array (index_type range <>) of elements_type; variable arr_name: arr_type (index_range) [:= initial_val]; де index_type - тип індексів масиву (integer, natural, і т.п.). Багатовимірні необмежені масиви і їх типи оголошуються аналогічно. Наприклад: type multy is array (integer range <>, bit range <>, ... , boolean range <>) of elements_type; Постановка задачі Запам'ятовуючі пристрої (ЗП) цифрової техніки призначені для запису, зберігання та видачі інформації, що представляється у вигляді цифрового коду. При цьому є і така інформація, яка не повинна змінюватись, наприклад, константи, табличні значення, коефіцієнти перетворень і т.ін. Така інформація записується у постійний запам'ятовуючий пристрій, для якого дозволяється тільки зчитування інформації, яка в нього занесена. В ПЗП за кожною n-розрядною адресою записане одне завчасно визначене m-вимірне слово. Таким чином, ПЗП є перетворювачем коду адреси в код слова, тобто комбінаційною схемою з n входами та m виходами. Накопичувач ПЗП апаратно виконується у вигляді системи взаємно-перпендикулярних шин, на перетині яких або присутній (логічна 1), або відсутній (логічний 0) елемент, що пов'язує між собою відповідні горизонтальну та вертикальну шини. Вибірка слів виконується за допомогою дешифратора. / Порядок виконання роботи: Створити новий проект в Active-HDL. Описати інтерфейс ПЗП, що має наступні порти: вхідний 4-розрядний порт адреси ПЗП Addr типуstd_logic_vector, вхідний порт дозволо зчитування ПЗП CEO типуstd_logic: вихідний 4-розрядний порт даних Dout типуstd_logic_vector. / / / Визначити тип масиву даних, які будуть зберігатись в ПЗП. Сформувати масив даних ПЗП як масив констант. Описати процес виборки даних з ПЗП. Скомпілювати та промоделювати процес вибірки даних. Результати моделювання представити у вигляді часових діаграм та у табличній формі за допомогою List Viewer. Підготувати звіт до захисту. Код програми ПЗП: library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_UNSIGNED.all; entity Device_ROM is port( CEO : in STD_LOGIC; Addr : in STD_LOGIC_VECTOR(3 downto 0); Dout : out STD_LOGIC_VECTOR(3 downto 0) ); end Device_ROM; architecture Device_ROM of Device_ROM is begin process (Addr) type ROM_array is array (15 downto 0) of STD_LOGIC_VECTOR(3 downto 0); constant ROM_memory:ROM_array:= ("0000","0001","0010","0011", "0100","0101","0110","0111", "1000","1001","1010","1011", "1100","1101","1110","1111"); begin if CEO = '1' then Dout<=ROM_memory(Conv_Integer(Addr)); end if; end process; end Device_ROM; / Часова діаграма роботи ПЗП. Висновок: Виконуючи дану лабораторну роботу, я вивчив принципи роботи постійного запам'ятовуючого пристрою (ПЗП), а також навчився пороектувати за допомогою коду VHDL. Отримав навички застосування масивів при створенні проектів у Active-HDL. library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_UNSIGNED.all; entity my_ROM is port( CEO : in STD_LOGIC; Addr : in STD_LOGIC_VECTOR(5 downto 0); Dout : out STD_LOGIC_VECTOR(1 downto 0) ); end my_ROM; architecture my_ROM of my_ROM is begin process (Addr) type ROM_array is array (63 downto 0) of STD_LOGIC_VECTOR(1 downto 0); constant ROM_memory:ROM_array:= ("00","01","10","11", "00","01","10","11", "00","01","10","11", "00","01","10","11", "00","01","10","11", "00","01","10","11", "00","01","10","11", "00","01","10","11", "00","01","10","11", "00","01","10","11", "00","01","10","11", "00","01","10","11", "00","01","10","11", "00","01","10","11", "00","01","10","11", "00","01","10","11"); begin if CEO = '1' then Dout<=ROM_memory(Conv_Integer(Addr)); else Dout<="ZZ"; end if; end process; end my_ROM; 1 0ns,0 6400ns
Антиботан аватар за замовчуванням

11.10.2015 13:10-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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