TCMB809 Съвременни конфигурируеми интегрални схеми
Анотация:
От 2013г. съдържанието на курса е изцяло променено, като в него се поддържа предимно платформата за разработка на отворен хардуер и софтуер с PIC микроконтролери - Pinguino. Платформата се поддържа от Windows, MAC, Linux.
Курсът е предвиден за студенти и специалисти учещи и работещи в области, като дизайн на електронни комуникационни устройства, вградени системи и специалисти занимаващи се с разработка на фирмуер. Курсът е тясно специализиран и изисква солидна предварителна подготовка и познания в области като цифрова и аналогова електроника, електротехника и системен софтуер и фирмуер, и/или достатъчно време за самостоятелна подготовка. Курсът е разделен на две основни части:
• програмиране на микроконтролери (8, 16 битови PIC, 32 битови ARM);
• проектиране, симулиране и програмиране на цифров хардуер с CPLD и FPGA интегрални схеми.
Първата част на курса (10ч.) запознава (прави се преговор) с основните типове цифрови интегрални схеми и процесорни архитектури, начините и софтуерните инструменти за дизайн на електронно оборудване с готови развойни китове с 8, 16 и 32 битови микроконтролери. Студентите получават основни познания за програмиране на вградени приложения на “С” (увод в езика) считан за основен език при създаването на системен софтуер. В процеса на работа се разглеждат готови типови демонстрационни приложения за програмиране на PIC (www.microchip.com), микроконвертори с ARM (www.analog.com) и AVR (www.atmel.com) микроконтролерни китове (работа със серийни комуникационни портове – SPI, I2C, RS232, USB, работа с програмируеми интервални таймери, работа със светодиодни индикатори, работа с външни енергонезависими памети (FLAS), работа с АЦП, цифрова обработка на сигналите (DSP) и цифров синтез на сигнали чрез ЦАП.
Втората част на курса (20ч.) разглежда по-подробно методите за дизайн на електронен хардуер с езика VHDL и е ориентиран предимно към използването на интегрирана софтуерна система Quartus II Web Edition, производство на корпорация Altera, www.altera.com. Студентите се обучават да проектират цифрови хардуерни блокове с висока сложност, ползвайки готовите макро блокове, симулирайки и програмирайки тяхното действие. Студентите се учат да описват крайни автомати, да разбират тяхното действие и да могат да решават конкретни задачи с тяхна реализация (управление на стъпкови електродвигатели, системи за управление и контрол, контролери). Научават се да описват и ползват RAM и ROM блокове в своя дизайн. Разглеждат се хардуерни блокове ползвани за цифрова филтрация, програмиране, симулиране и експериментиране на проектираните приложения с реален хардуер.
Преподавател(и):
доц. Георги Петров д-р
Описание на курса:
Компетенции:
1) знаят:
•Знаят начините за дизайн на електронни системи с развойни китове и интегрирани софтуерни системи за разработка
•Да могат да избират подходящ микропроцесорен или контролерен модул за решение на конкретна приложна задача
•Базови методи за решение на типови задачи свързани с програмирането на вградени системи на езика С
•Познават основите на създаване на софтуерни приложения за цифрова обработка и синтез на сигнали
•Начините за проектиране и програмиране на сложни логически блокове и крайни автомати и описанието им на VHDL
•Познават основните начини за описание на хардуерни блокове за цифрова обработка на сигнали и разбират тяхното действие на системно ниво
2) могат:
•Да работят с различни интегрирани среди за разработка на фирмуер на С
•Да използват типови демонстрационни приложения и хардуерни китове, като основа за техни тясно специализирани разработки
•Да създават, симулират и програмират сложни логически блокове и електронни модули с CPLD и FPGA, като в дизайна включват различни по сложност крайни автомати, RAM, ROM блокове, да реализират последователен и паралелен вход и изход от техните системи и да интегрират модули за цифрова обработка на сигналите, които са хардуерно реализирани
Предварителни изисквания:
Да са изучавали увод в програмируемите логически устройства и/или да имат бегли познания по VHDL. Цифрова и аналогова електроника, обща електротехника, предварителни познания в областта на програмирането на (C, C++, Java, Fortran, Pascal, VHDL и други езици) са препоръчителни. Познания в области, като микропроцесори и микроконтролери са препоръчителни. Абсолютно задължително е добро владеене на технически английски език, четене и разбиране на термини и технически описания. Задължително е владеене на умения за работа с персонален компютър и Windows XP, Vista операционни системи, умения за менажиране на файлове и папки, умения за инсталиране и конфигуриране на приложен софтуер, работа с Интернет, текстообработка – писане.
Форми на провеждане:
Редовен
Учебни форми:
Лекция
Език, на който се води курса:
Български
Теми, които се разглеждат в курса:
- Схемотехнически реализации на цифрови електронни схеми (запознаване със серията 74XXX - OR, AND, XOR, NOR, NAND, XNOR), градивни блокове (TTL, CMOS)
- Общи архитектурни модели на микропроцесори, специализирани архитектури на PIC, ADUC микроконтролери. Структура, начин на работа, формат на инструкциите, извличане, декодиране и изпълнение на инструкциите, възможности за работа с вградена периферия, типови свързвания и захранване на модулите. Програмиране на микроконтролерни модули, хардуерни особености на ползваните интерфейси. Увод в асемблерното програмиране за 8 битови PIC микроконтролери с «MPASM”, начини за симулиране на програмния код, откриване на неизправности, наблюдение на сигналите
- Увод в програмирането на “С”, организация на програмния код, програмни структури, функции и типове данни, стандартен вход и изход. Програмиране на приложения за 16 битови микро контролери PIC24F на “С” с CCS.
- Работа със серийни портове – обмен на данни между контролера и компютъра, използване на таймери и прекъсвания от тях за работа с АЦП, предаване и извеждане на данните в терминал филтриране на аналоговите данни и извеждане в терминал, съхраняване на резултатите и стандартна визуализация, работа с I2C и SPI серийни портове и свързване на допълнителни интегрални схеми – памети, температурни сензори, 7 сегментна светодиодна индикация.
- Програмиране на 16/32 битов RISC микроконтролерен модул ARM7TDMI процесорно ядро на “С” с интегрирана среда за разработка Keil uVision3, работа с АЦП, ЦАП и цифров синтез и обработка на сигнали. Увод в цифровата обработка на сигналите. Реализация на цифрови филтри (нискочестотен, високочестотен, лентов) FIR, IIR филтри, спектрален анализ с готови FFT функции, предаване, съхраняване на данните и стандартна визуализация.
- Увод в програмируемите логически устройства, основни функции и видове схеми CPLD и FPGA.
- Основи на работата с Quartus II Web Edition, създаване, конфигуриране, компилиране, симулиране и програмиране на хардуерен блок.
- Увод във VHDL, езикови конструкции (ентити – портове, декларации, константи; архитектура – декларативна част – сигнали, променливи, процеси; основни типове данни, присвояване, оператори; проверка за условия). Техники за дизайн: ползване на функции, пакети, компоненти, процедури, библиотеки; методи за дизайн и синтез на хардуер.
- Описание и схемотехнически дизайн на комбинационни логически схеми, параленло изпълнение на операциите.
- Реализация на ROM и RAM блокове, описание и симулация.
- Паралелно към серийно преобразуване и серийно към паралелно преобразуване на данните при предаване. Манчестър кодиране и декодиране, NRZ кодиране и декодиране.
- Крайни автомати – реализация на контролер за управление на стъпкови двигател, симулация и програмиране, изследване на действието и изходните електрически сигнали.
- Крайни автомати - реализация на RS232 сериен комуникационен модул, проектиране и симулиране.
- Описание и симулация на хардуерни блокове за цифрова обработка на сигнали – усилвателно стъпало, сумиране и разлика, делител, закъснителна линия.
- Описание и симулация на хардуерни блокове за цифрова обработка на сигнали – нискочестотна осредняваща филтрация – проектиране и симулация, (разновидности при реализацията на FIR, IIR филтри).
Литература по темите:
1. Nigel Gardner, “PICmicro ® MCU C”, the Microchip PIC in CCS
2. http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=81
3. http://www.ccsinfo.com/content.php?page=compilers
4. Dr Peter R. Wilson, “Design Recipes for FPGAs”
5. Р.И.Грушвицкии, А.Х.Мурасев, Е.П.Угрюмов, “Проектирование систем на микросхемах с програмируемой структорой – bhv”, 2006
6. Кр. Нанчева-Филипова, В.Христов, М.Христов, И.Панайотов, “Използване на (v)HDL за синтез на електронен хардуер”, София 2004
7. “Digital-design-with-cpld-applications-and-VHDL”
8. Jari Nurmi, Tampere University of Technology, “Processor Design System-on-Chip Computing for ASICs and FPGAs”
9. http://www.altera.com/education/training/curriculum/cpld/trn-cpld.html “Introduction to VHDL (IHDL110)”
10. http://www.altera.com/education/training/curriculum/fpga-asic/trn-fpga-asic.html?GSA_pos=3&WT.oss_r=1&WT.oss=FPGA “ASIC-to-FPGA Designer Curriculum”
Средства за оценяване:
Студентите получават текущи оценки от практическа разработка, проект, участие в семинар.