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

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

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

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

Звіт про виконання лабораторної роботи №2 з курсу «Проектування периферійних комп’ютерних мікросистем»: Розробка на структурному рівні

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

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

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

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

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

У лабораторній роботі створено та перевірено структурний VHDL-опис кристалу і контактних майданчиків за допомогою САПР Alliance. Виконано генерацію проміжних C-файлів, компіляцію у VHDL-формат та симуляцію роботи схеми.

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

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

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

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

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

VHDLСАПР AlliancegenlibasimutCorePadsсимуляціяструктурний рівеньтестові набори

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

Національний університет "Львівська політехніка" Кафедра ЕОМ Звіт про виконання лабораторної роботи №2 з курсу "Проектуванння периферійних комп’ютерних мікросистем" на тему: “ Розробка на структурному рівні” Мета роботи: створення і перевірка структурних VHDL-описів кристалу та зовнішніх корпусних контактних майданчиків. Теоретична частина: На цьому етапі переходять від функціонального опису кристалу до структурного. Тут кристал розбивається на два конструктиви: 1). Безпосередньо схема кристалу (core). 2). Зовнішні корпусні контактні майданчики (pads). Структурний рівень передбачає опис цих двох конструктивів мовою структурного опису VHDL. Відмінність структурного опису VHDL від функціонального полягає в тому, що в структурному описі оперують реальними бібліотечними елементами кристалу. Створити структурний опис, який за обсягом на кілька порядків більший за функціональний, важко. Тому пакет Alliance передбачає два незалежних способи автоматизоавного отримання структурного опису для core та pads: 1) За допомогою текстового редактора створюється файл мовою С. Цей файл є проміжним форматом для створення структурного опису. У ньому за допомогою викликів спеціальних функцій формується виборка необхідних елементів з бібліотеки кристалу. Далі програмою-компілятором GENLIB проміжний С-файл переводять у необхідний структурний опис. У системі Alliance цей спосіб є рекомендованим. 2) Другий спосіб не вимагає додаткового набору інформації. Достатньо скористатись програмою-генератором LOGIC, на вхід якої задають функціональний VHDL-опис, а на виході отримують структурний VHDL-опис. Виборка бібліотечних елементів кристалу відбувається автоматично. Після отримання структурних описів для core та pads, виконується симуляція на структурному рівні. Користуючись симулятором ASIMUT, перевіряють роботу тестових наборів на структурній VHDL-моделі безпосередньо схеми кристалу core. При виникненні помилки слід повернутись на попередні рівні. Симуляція для структурного опису зовнішніх корпусних контактних майданчиків pads не потрібна, оскільки цей опис не містить логічних перетворень сигналів. Тексти проміжних описів на мові С: # ,,,,, # (o o) ####=====oOO--(_)--OOO=====#### # core.с #include <genlib.h> main() { DEF_LOFIG("core"); LOCON("a[3:0]", IN, "a[3:0]"); /* input bus a */ LOCON("b[3:0]", IN, "b[3:0]"); /* input bus b */ LOCON("e", OUT, "e"); /* output wire */ LOCON("vdd", IN, "vdd" ); /* power supply */ LOCON("vss", IN, "vss" ); /* ground */ for (int i = 0; i < 4; i++) {LOINS("xr2_y", NAME("xr%d",i),NAME("a[%d]",i),NAME("b[%d]",i),NAME("int[%d]",i),"vdd","vss",0);} LOINS("o3_y", "or1", "int[0]", "int[1]", "int[2]", "int[4]", "vdd", "vss", 0); LOINS("o2_y", "or2", "int[3]", "int[4]", "int[5]", "vdd", "vss", 0); LOINS("n1_y", "n10", "int[5]", "e", "vdd", "vss", 0); SAVE_LOFIG(); exit(0); } # ,,,,, # (o o) ####=====oOO--(_)--OOO=====#### # cmp4.с #include <genlib.h> main() {int i; DEF_LOFIG("cmp4"); LOCON("a[3:0]", IN, "a[3:0]"); /* input bus a */ LOCON("b[3:0]", IN, "b[3:0]"); /* input bus b */ LOCON("vdd", IN, "vdd" ); /* core power supply */ LOCON("vss", IN, "vss" ); /* core ground */ LOCON("vdde", IN, "vdde" ); /* pads power supply */ LOCON("vsse", IN, "vsse" ); /* pads ground */ LOCON("e", OUT, "e"); /* output */ LOINS ("pvsse_sp", "p9", "cki", "vdde", "vdd", "vsse", "vss", 0); LOINS ("pvsse_sp", "p10", "cki", "vdde", "vdd", "vsse", "vss", 0); LOINS ("pvdde_sp", "p11", "cki", "vdde", "vdd", "vsse", "vss", 0); LOINS ("pvssi_sp", "p12", "cki", "vdde", "vdd", "vsse", "vss", 0); LOINS ("pvddi_sp", "p13", "cki", "vdde", "vdd", "vsse", "vss", 0); for (i = 0; i < 4; i++) LOINS("pi_sp",NAME("p%d",i),NAME("a[%d]",i),NAME("aa[%d]",i),"cki","vdde","vdd","vsse","vss",0); for (i = 0; i < 4; i++) LOINS("pi_sp",NAME("p%d",i+4),NAME("b[%d]",i),NAME("bb[%d]",i),"cki","vdde","vdd","vsse","vss", 0); LOINS("po_sp", "p8", "ee", "e", "cki", "vdde", "vdd", "vsse", "vss", 0); LOINS("core", "core", "aa[3:0]", "bb[3:0]", "ee", "vdd", "vss", 0); SAVE_LOFIG(); exit(0); /* necessary for the proper run of the Makefile */ } Файл з тестовими наборами: # ,,,,, # (o o) ####=====oOO--(_)--OOO=====#### # cmp4_vst.pat in vdd; in vss; in vdde; in vsse; in a(3 to 0); in b(3 to 0); out e; begin # aa=0, bb=3, we expect value 0 on ee pat_1 : 1 0 1 0 0000 0011 ?0 ; # aa=5, bb=4, we expect value 0 on ee pat_1 : 1 0 1 0 0101 0100 ?0 ; # aa=2, bb=2, we expect value 1 on ee pat_1 : 1 0 1 0 0010 0010 ?1 ; # aa=2, bb=2, we expect value 1 on ee pat_1 : 1 0 1 0 1010 1010 ?1 ; end; Перетворюємо проміжний структурний опис core.c в структурний VHDL-опис core.vst за допомогою компілятора GENLIB: # ###--------------------------------------------------------------------------### # generate structural description of the circuit's core # # core.c is the schematic capture of the core, using # # the genlib language # # the environment variable specify the structural VHDL format # # ###--------------------------------------------------------------------------### MBK_IN_LO=vst ;MBK_OUT_LO=vst ;MBK_CATA_LIB=$TOP/cells/scr ;\ export MBK_IN_LO MBK_OUT_LO MBK_CATA_LIB ;\ genlib core core.c --> core.vst В результаті отримаємо структурний VHDL-опис core.vst Далі за допомогою текстового редактора створюємо наступний проміжний структурний опис для cmp4.c Перетворюємо проміжні структурні описи cmp4.c та core.c, які включаються в cmp4.c, в результуючий структурний VHDL-опис cmp4.vst за допомогою компілятора GENLIB: # ###--------------------------------------------------------------------------### # generate structural description of the complete circuit # # addaccu.c is the schematic capture of the circuit, using # # the genlib language # # the circuit can be generated only if the core is generated # # the environment variable specify the structural VHDL format # # ###--------------------------------------------------------------------------### MBK_IN_LO=vst ;MBK_OUT_LO=vst ;MBK_CATA_LIB=$TOP/cells/scr:$TOP/cells/ring ;\ export MBK_IN_LO MBK_OUT_LO MBK_CATA_LIB ;\ genlib cmp4 [3] cmp4.c --> cmp4.vst Останньою дією, що проводиться на етапі розробки на структурному рівні, є симуляція на структурному рівні з використанням тестових наборів: # ###---------------------------------------------------------### # check the correctness of the generated structural # # description running the logic simulation # # ###---------------------------------------------------------### MBK_IN_LO=vst ;MBK_CATA_LIB=$TOP/cells/scr:$TOP/cells/ring ;\ export MBK_IN_LO MBK_CATA_LIB ;\ asimut cmp4 cmp4 schema [4] вихідний файл з результатами тестування cmp4.pat cmp4u.vst Виникнення помилки на цьому етапі означає повернення на попередні рівні. Висновок : В даній лабораторній роботі я створив і перевірив структурний VHDL-опис кристалу та зовнішні корпусні контактні майданчики чотирьох розрядного компаратора засобами САПР НВІС – Alliance 3.2b.
Допоможи студентському архіву

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

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

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

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

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

Admin

26.02.2023 12:38

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