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

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

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

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

Симуляція на функціональному рівні

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

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

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

Рік:
2005
Тип роботи:
Лабораторна робота
Предмет:
Проектуванння периферійних комп’ютерних мікросистем
Група:
СКС
Коротко про документ

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

У роботі виконано створення і перевірку функціональної VHDL-моделі кристала паралельно-послідовного перемножувача. Проведено симуляцію розробленої моделі за допомогою пакета Alliance та тестових наборів.

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

  • VHDL-моделювання
  • Проектування інтегральних схем
  • Симуляція на функціональному рівні
  • САПР Alliance
  • Апаратні описові мови

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

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

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

VHDLсимуляціякристалперемножувачAllianceASIMUTтестові набориповедінковий описмікросистема

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

Міністерство освіти і науки України НУ „Львівська політехніка” ІКТА Кафедра ЕОМ Лабораторна робота №1 з курсу „Проектуванння периферійних комп’ютерних мікросистем” на тему: „Симуляція на функціональному рівні” Львів-2005 Мета роботи: Створення і перевірка функціональної VHDL-моделі кристалу. Проектування кристалу починається з його функціонального опису на мові VHDL. Отже, за допомогою текстового редактора створюється файл, в якому описується VHDL-модель майбутнього кристалу. Часові затримки не вказуються - це, так звана, функціональна часово-незалежна VHDL-модель. На цьому етапі також створюється файл з тестовими наборами для перевірки правильності роботи описаної моделі. Цей файл можна створити за допомогою текстового редактора, або за допомогою спеціальної програми-генератора GENPAT. Далі за допомогою VHDL-симулятора ASIMUT перевіряється робота тестових наборів на функціональній VHDL-моделі проектованого кристалу. При наявності помилок слід перевірити правильність моделі та тестових наборів. Виконання роботи. Розглядається схема 8-розрядного перемножувача 555ИП9 (рис.1), який приймає один операнд в паралельному вигляді (Х), а другий – в послідовному (по входу У), причому спочатку подається молодший байт. Результат з’являється на виході S в послідовному вигляді (спочатку з’являється молодший біт). В результаті множення n-розрядного на m-розрядне число отримуємо n+m – розрядне число, тобто необхідно n+m тактових імпульсів. Входи паралельного операнду контролюються сигналом Cl. Якщо цей сигнал рівний логічному „0”, то всі внутрішні тригери скидаються і можна записувати нове слово, якщо ж Cl рівний логічній „1” – входи Хі закриті. Вхід К призначений для каскадування, при якому на нього подається вихід суми більш старшого пристрою. Для визначення найстаршого пристрою на його вхід М подається „L”, а на інші – „Н”.  рис. 1. принципова схема перемножувача 555ИП9 В таблиці наведені режими роботи перемножувача: Входы Внутр Y-1 Выход S Функция   Cl  Cк  K  M  Xi  Y      -  -  L  L  -  -   -   - Найстарший множник   -  -  CS  H  -  -   -   - Пристрої послідовно об’єднані   L  -  -  -  OP  -   L   L Завантажити новий операнд і почистити внутр.суму і перенос   H _/~  -  -  -  L   L  LB Зсув регістра суми вправо   H _/~  -  -  -  L   H  LB Добавити операнд до регістра суми у зсунути результат вправо   H _/~  -  -  -  H   L  LB Відняти операнд від регістра суми і зсунути результат вправо   H _/~  -  -  -  H   H  LB Зсув регістра суми вправо   CS – приєднання з виходом суми старшого пристрою ОР – входи відкриті для нових даних LB – молодший розряд результату  рис.2. функціональна схема перемножувача За допомогою текстового редактора створила файл multiplier.vbe, в якому задала функціональний VHDL-опис наведеної схеми перемножувача: ENTITY multiplier IS PORT( X : IN BIT_VECTOR(7 DOWNTO 0); Y : IN BIT; CL : IN BIT; CK : IN BIT; M : IN BIT; K : IN BIT; vdd : IN BIT; vss : IN BIT; S : OUT BIT ); END multiplier; --}} End of automatically maintained section ARCHITECTURE multiplier OF multiplier IS SIGNAL sum: BIT_VECTOR(7 DOWNTO 0); SIGNAL carry_a:BIT_VECTOR(6 DOWNTO 0); SIGNAL carry_d:BIT_VECTOR(6 DOWNTO 0); SIGNAL prev_Y: BIT; SIGNAL res: BIT_VECTOR(7 DOWNTO 0); SIGNAL sh_res: BIT_VECTOR(7 DOWNTO 0); SIGNAL op_res: BIT_VECTOR(7 DOWNTO 0); SIGNAL add: BIT_VECTOR(7 DOWNTO 0); SIGNAL red: BIT_VECTOR(7 DOWNTO 0); BEGIN -- L0:BLOCK(Ck='1' AND Ck'EVENT) -- BEGIN ASSERT (vdd='1'AND vss='0') REPORT "Wrong power supplies" SEVERITY WARNING; --мультиплексор1 WITH (Y XOR prev_Y) SELECT res<=sum WHEN '0',op_res WHEN '1'; --мультиплексор2 WITH Y SELECT op_res<=add WHEN '0',red WHEN '1'; --зсув L1: BLOCK (Cl='1') BEGIN sh_res<="0" & res(7 DOWNTO 1); END BLOCK L1; --регістр суми sum<=sh_res; S<=sh_res(0); --операція додавання add(0)<=sum(0) XOR X(0); carry_a(0)<=sum(0) AND X(0); add(1)<=sum(1) XOR X(1) XOR carry_a(0); carry_a(1)<=(sum(1)AND X(1)) OR (sum(1) AND carry_a(0)) OR (X(1) AND carry_a(0)); add(2)<=sum(2) XOR X(2) XOR carry_a(1); carry_a(2)<=(sum(2)AND X(2)) OR (sum(2) AND carry_a(1)) OR (X(2) AND carry_a(1)); add(3)<=sum(3) XOR X(3) XOR carry_a(2); carry_a(3)<=(sum(3)AND X(3)) OR (sum(3) AND carry_a(2)) OR (X(3) AND carry_a(2)); add(4)<=sum(4) XOR X(4) XOR carry_a(3); carry_a(4)<=(sum(4)AND X(4)) OR (sum(4) AND carry_a(3)) OR (X(4) AND carry_a(3)); add(5)<=sum(5) XOR X(5) XOR carry_a(4); carry_a(5)<=(sum(5)AND X(5)) OR (sum(5) AND carry_a(4)) OR (X(5) AND carry_a(4)); add(6)<=sum(6) XOR X(6) XOR carry_a(5); carry_a(6)<=(sum(6)AND X(6)) OR (sum(6) AND carry_a(5)) OR (X(6) AND carry_a(5)); add(7)<=sum(7) XOR X(7) XOR carry_a(6); --операція віднімання red(0)<=sum(0) XOR X(0); carry_d(0)<=sum(0)OR X(0); red(1)<=sum(1) XOR X(1) XOR carry_d(0); carry_d(1)<=(sum(1)OR X(1)) OR (sum(1) OR carry_d(0)) OR (X(1) OR carry_d(0)); red(2)<=sum(2) XOR X(2) XOR carry_d(1); carry_d(2)<=(sum(2)OR X(2)) OR (sum(2) OR carry_d(1)) OR (X(2) OR carry_d(1)); red(3)<=sum(3) XOR X(3) XOR carry_d(2); carry_d(3)<=(sum(3)OR X(3)) OR (sum(3) OR carry_d(2)) OR (X(3) OR carry_d(2)); red(4)<=sum(4) XOR X(4) XOR carry_d(3); carry_d(4)<=(sum(4)OR X(4)) OR (sum(4) OR carry_d(3)) OR (X(4) OR carry_d(3)); red(5)<=sum(5) XOR X(5) XOR carry_d(4); carry_d(5)<=(sum(5)OR X(5)) OR (sum(5) OR carry_d(4)) OR (X(5) OR carry_d(4)); red(6)<=sum(6) XOR X(6) XOR carry_d(5); carry_d(6)<=(sum(6)OR X(6)) OR (sum(6) OR carry_d(5)) OR (X(6) OR carry_d(5)); red(7)<=sum(7) XOR X(7) XOR carry_d(6); L2:BLOCK (Ck='1' AND Ck'STABLE) BEGIN prev_Y<=Y; END BLOCK L2; --END BLOCK L0; END multiplier; Для перевірки правильності функціонального опису VHDL-симулятор запустила в спеціальному режимі без симуляції: > asimut -b -c multiplier [0] multiplier.vbe - розширення в програмах пакету Alliance не вказуються (використовуються змінні оточення) лише компіляція без симуляції (для симуляції необхідні тестові набори) функціональний опис (behavioural description) VHDL-симулятор Для симуляції спочатку створила файл з тестовими наборами multiplier.pat з наступним вмістом: IN vdd; IN vss; IN X(7 to 0); IN CL; IN Y; IN K; IN M; IN CK; OUT S; BEGIN pat_1:1 0 00000000 0 0 0 0 0 ?0; pat_2:1 0 00000101 1 1 0 0 0 ?0; pat_3:1 0 00000101 1 0 0 0 0 ?0; pat_4:1 0 00000101 1 0 0 0 0 ?0; pat_5:1 0 00000101 1 0 0 0 0 ?0; pat_6:1 0 00000101 1 0 0 0 1 ?1; pat_7:1 0 00000101 1 0 0 0 1 ?0; pat_8:1 0 00000101 1 0 0 0 1 ?1; pat_9:1 0 00000101 1 0 0 0 1 ?0; END; Симулюю роботу схеми паралельно-послідовного перемножувача на тестових наборах: # ###-------------------------------------------------------------------------### # check the correctness of specifications (Data-FLow VHDL) # # running the logic simulation # # ###------------------------------------------------------------------------### asimut -b multiplier multiplier specifications [1] Вихідний файл з результатами тестування multiplier.pat multiplier.vbe Функціональний опис, симуляція на функціональному рівні VHDL-симулятор Результати роботи подані в електронному варіанті. Висновок.
Допоможи студентському архіву

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

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

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

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

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

Admin

26.02.2023 12:38

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