ENGIN 441 – Embedded Systems University of Massachusetts Boston Engineering Program Dr. Filip Cuckov Course description: This course covers fundamentals of embedded systems: architecture, programming, design, and interfacing. Topics include processors and hardware for embedded systems, embedded programming and real time operating systems. The course will cover technologies and methods using Computer Aided Design (CAD) design tools for implementation of complex digital systems using Field Programmable Gate Arrays (FPGAs). It provides advanced methods of digital circuit design, specification, synthesis, implementation and prototyping. (Offered Fall) Prerequisites: ENGIN 341 – Advanced Digital Design Textbook: Peter Marwedel, Embedded System Design, Springer, 2006, ISBN 978-0-387-29237-3 Supplementary (Optional) Textbooks and References: Frank Vahid, Tony Givargis, Embedded System Design: A Unified Hardware/Software Introduction, Wiley, Oct. 2001, ISBN 978-0471386780 Michael Barr, Programming Embedded Systems in C and C++, O'Reilly, 1999.. Online available at: Safaribooksonline.com Kernighan; Dennis M. Ritchie, The C Programming Language (2nd ed.), Prentice Hall, ISBN 0-13-110362-8 S. Kilts, Advanced FPGA Design: Architecture, Implementation, and Optimization, WileyInterscience, 2007. V. Pedroni, Circuit Design with VHDL, The MIT Press, 2004 Required materials (Provided to students): Altera DE2 Education Board (provided to students for the duration of the semester, special student pricing available, if you are interested in owning one) Parts kit from ENGIN 241 Course Learning Objectives: 1. Students will be able to design, specify, synthesize, simulate, and implement advanced digital systems on FPGAs. 2. Students will understand current applications and trends in FPGA technology. 3. Students will learn advanced VHDL programming techniques. 4. Students will develop, implement, and prototype a complex digital system. 5. Students will develop functional hardware modules and integrate them into a complete system. 6. Students will make use of external peripherals devices in their design projects. 7. Students will learn advanced code debugging, and hardware troubleshooting methods. 8. Students will have completed a major project that involves identifying, formulating, and solving a complex engineering problem. Topics Covered: Topic I. COURSE INTRODUCTION Number of Classes 1 A. Course Overview B. ENGIN Curriculum Overview C. Course Format and Procedures II. INTRODUCTION TO ADVANCED VHDL CAD A. VHDL Review B. VHDL Programming Models C. CAD Design Cycle D. Advanced VHDL Concepts 7 III. FPGA DESIGN METHODOLOGIES A. Design Synthesis B. Functional Simulation C. Design Fitting D. Timing Analysis and Simulation E. Device Programming and Configuration 8 IV. DIGITAL DESIGN OF COMPLEX SYSTEMS A. Sub-Component Design and Prototyping B. Component Interfacing C. Complex System Component Integration D. Complete System Analysis 10 V. CONCLUSION 1 A. Lifelong Learning B. Contemporary Issues Class will meet twice a week for 1:15 periods, for a total of 3 hours. Engineering Science Hours: 3 Engineering Design Hours: 0 Weekly Schedule Week 1: • Overview of course and expectation • Overview of embedded system, technologies and application areas Week 2: • Review of hardware definition languages and uses in embedded systems • VHDL review Week 3: • VHDL programming models – behavioral • VHDL programming models - dataflow Week 4: • VHDL programming models – structural • VHDL mixed modeling Week 5: • Computer aided design cycle – from definition to implementation • Advanced VHDL – automated test-benches Week 6: • Advanced VHDL – synthesizable code • Advanced VHDL – mapping code to hardware implementation Week 7: • Field programmable gate arrays and programmable logic devices • Design synthesis on programmable hardware Week 8: • Functional simulation and automating verification • Post synthesis design fitting, placement, and routing Week 9: • Timing analysis and simulation • Device programming and configuration Week 10: • Advanced digital design of complex digital systems • Modular design, interfacing, hierarchical design, top-down and bottom-up approaches Week 11: • Component design and encapsulation • System-level design and component interfacing Week 12: • Analysis of complex systems - timing • Analysis of complex systems – implementation verification Week 13: • Hardware-software co-design Week 14: • Iterative design and incremental synthesis • Reconfigurable hardware Week 15: • Summary and review Project: The goal of the project is to design a complex embedded system by applying the theory learned in class. Sample projects include: hardware implementation of adaptive video stabilization, MJPEG compression and decompression, video codec design, real-time signal processing, among others. Several options for the final project will be provided to students at the beginning of the semester. Students can choose any one of the provided options, as long as they commit to this choice before the midterm exam. Those who wish to work on designing a custom embedded system, need to propose a system/problem to the instructor within the 3rd week of class. The instructor then will work with each student to make sure that the project complexity is adequate, as well as to divide the project into 3 milestone deliverables. Each milestone can be thought of as a mini standalone project that is an integral part of the final project. Students will be expected to work individually on the project. Homework Assignments: Homework assignment will be given as needed, and used to reinforce concepts covered in the lecture. There will be 7 homework assignments given during the semester, one every two weeks. Solutions will be posted the day after the assignment is due. Grading Criteria: The course will be graded on the following scale: Homework assignments Mid-term exam Final project Final exam 20% 20% 30% (3 milestones, 10% each) 30% Accommodations: The University of Massachusetts Boston is committed to providing reasonable academic accommodations for all students with disabilities. This syllabus is available in alternate format upon request. If you have a disability and feel you will need accommodations in this course, please contact the Ross Center for Disability Services, Campus Center, Upper Level, Room 211 at 617.287.7430. http://www.umb.edu/academics/vpass/disability/ After registration with the Ross Center, a student should present and discuss the accommodations with the professor. Although a student can request accommodations at any time, we recommend that students inform the professor of the need for accommodations by the end of the Drop/Add period to ensure that accommodations are available for the entirety of the course. Code of Conduct and Academic Integrity: It is the expressed policy of the University that every aspect of academic life--not only formal coursework situations, but all relationships and interactions connected to the educational process--shall be conducted in an absolutely and uncompromisingly honest manner. The University presupposes that any submission of work for academic credit is the student’s own and is in compliance with University policies, including its policies on appropriate citation and plagiarism. These policies are spelled out in the Code of Student Conduct. Students are required to adhere to the Code of Student Conduct, including requirements for academic honesty, as delineated in the University of Massachusetts Boston Graduate Catalogue and relevant program student handbook(s) http://www.umb.edu/life_on_campus/policies/code.