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

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

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

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

Лабораторна робота №6 з предмету «Моделювання комп’ютерних систем» на тему: «Проектування постійного запам'ятовуючого пристрою»

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

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

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

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

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

У цій лабораторній роботі вивчено принципи роботи постійного запам'ятовуючого пристрою та отримано навички застосування масивів у середовищі Active-HDL за допомогою мови VHDL. Описано архітектуру ПЗП, наведено приклади коду та результати моделювання.

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

  • Постійний запам'ятовуючий пристрій
  • Мова опису апаратрурі VHDL
  • Масиви в VHDL
  • Моделювання цифрових схем
  • Active-HDL
  • Проектування ПЗП

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

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

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

ПЗПVHDLActive-HDLмасивпортсигналконстантачасова діаграмамоделювання

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІНСТИТУТ КОМП’ЮТЕРНИХ ТЕХНОЛОГІЙ, АВТОМАТИКИ ТА МЕТРОЛОГІЇ / ЛАБОРАТОРНА РОБОТА №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
Допоможи студентському архіву

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

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

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

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

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

Admin

26.02.2023 12:38

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