SPRING 2026
What (Course Description)
Advanced Programmable Logic Embedded System Design continues the exploration of techniques and development of skills used for creation of embedded systems using programmable logic, particularly FPGA (Field Programmable Gate Array) and SoC (System on a Chip) devices. For example, prior knowledge of design entry using the Verilog hardware description language will be extended to System Verilog. Implementation of adders and multipliers will be extended to various math functions, including using the CORDIC algorithm. High Level Synthesis (HLS) tools and techniques will be introduced, and architecture design to optimize for speed, area, and power will be presented, providing the student with extensive capability to create embedded systems with programmable logic. Topics Include:
1. System Verilog RTL design for FPGA and CPLD architectures
2. Architecture Design for Higher Speed
3. Architecture Design for Smaller Area
4. Architecture Design for Lower Power
5. Advanced Simulation and Test Bench Techniques
6. Static Timing Analysis and Timing Closure
7. SoC Embedded software architecture and development
8. Fabric Interfacing
9. Clock Domain Crossings
10. Optimal Reset Circuits
11. Coding for Synthesis and Synthesis Optimization
12. Implementing Math Functions in FPGAs
13. Floating Point Unit Design
14. High Level DSP Design using Simulink and DSP Builder
15. TCL Scripting for Design Flow Automation
16. Floor Planning and Place and Route Optimization
17. High Level Synthesis Tools and Techniques
18. Example CPU Design
19. System engineering, software-hardware integration, testing and troubleshooting
20. High speed digital board design and layout principles
Why (Rationale)
Engineers design and build systems and products for the betterment of humanity. Graduate engineers should appreciate the engineering process, be able to contribute to the development of engineering products, and do so while working in engineering organizations. Graduate Engineers should be able to conceive-design-implement-operate (CDIO) complex value-added engineering systems in a modern team-based environment.
Programmable Logic has become more and more common as a core technology used to build electronic systems. By integrating soft-core or hardcore processors, these devices have become complete systems on a chip, steadily displacing general purpose processors and ASICs. In particular, high performance systems are almost always now implemented with FPGAs or SoCs. However, there are bewildering array of Programmable Logic Devices (PLDs) available from semiconductor device suppliers, and knowing which device is best for meeting a set of requirements is a challenge. Learning to make proper choices that will determine the difference between success and failure of a product is something we will examine in detail.
Programmable Logic is a $20 billion business that supports trillions of dollars of product development with extensive use in a wide range of industries including Telecommunications, Automotive, Energy, Medical, Networks, Computers and key to development of Artificial Intelligence (AI). For those with programmable logic design skills, career opportunities abound.
When and Where
Lectures: MON/WED/FRI, 2:00-3:15PM, ECCR 1B55. Videos of the lectures will be posted and available on demand to enrolled students.
3 credit hours, takes approximately 12-15 hours/week including lecture.
Professor Office hours, M Tu W Th 3:30-4:30 pm or by appointment in ECOT 340 or via Zoom
How (Logistics)
The course structure will consist of lectures, homework, projects and exams. Projects will require checkout of development kits*
Prerequisites: Knowledge of assembly and C Programming, Digital Logic Design, and basic computer architecture. Students should have a first course in each of these subjects. The corresponding CU-Boulder courses are ECEN 2120/2350, ECEN 3100/3350, and ECEN 1030/1310/CSCI 1300. In particular, ability to perform tasks like write a string copy function in C and design sequential circuits using Karnaugh maps is needed. Also required are a first course in FPGA design, like ECEN 8563 or equivalent experience.
Computer Requirements: a PC with 1 GHz+ processor, 16 GB of RAM, 50 GB of free hard drive space running either Windows 10 or 11 or a recent Linux OS which must be RHEL 6.5 or CentOS Linux 6.5 or later. Mac's have not had success running the tools in this course and are not recommended.
Required for Distance students: A PC with a microphone and web camera; reliable internet connection (minimum 5 megabits per second download speed).
Course will be administered on Canvas
TA Contact Information:
Hyounjun Chang hyounjun.chang@colorado.edu
TBD
PLEASE NOTE: All content on the page subject to change until January 30, 2026.
Course Materials
Textbooks (CU bookstore, and also online through the CU Library)
Advanced FPGA Design, by Steve Kilts; ISBN 9780470054376, Online ISBN:9780470127896.
Required development kits*:
Microchip PolarFire SoC Discovery Kit. Description: https://www.microchip.com/en-us/development-tool/mpfs-disco-kit
Altera DE1-SoC. Description https://www.altera.com/support/training/university/boards.tablet.html#de1-socAMD
Xilinx PYNQ. Description and purchasing here: http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=english&No=1021
*Kits will be provided to campus students in Boulder and shipped to U.S.-based distance students only (i.e. Professional Certificate students and distance degree students).
Who
About me
I'm Tim Scherr. I have many years of engineering experience, including 25+ years as a Design Engineer, Applications Engineer, Engineering Manager, and Director of Engineering.
Not only that, but I also have done a fair amount of teaching, including 4 years at the South Dakota School of Mines in Rapid City, SD, and then 10 years here at CU.
GRADING
The course grade will be based on in-class participation, homework assignments, quizzes, course projects, and 2 exams. The grade proportions are as follows:
Homework and class participation 20%
Course projects 30%
Quizzes 10%
Final and Mid-term Exam 40%
Cell phones need to be on silent and out of sight. Laptops may be used in class for taking notes; however, inappropriate use of laptops to surf the web, use of social media, etc. may result in restriction of their use for the entire class. A computer will be required to participate in the class via Zoom when classes are remote.
This is somewhat new territory at academic institutions and policies are being developed to address the potential negative impact of AI, which might lead to acts of plagiarism as well as diminish learning overall. In this course all your work should be your own. In particular for Homework, Quizzes and Exams use of AI is not allowed. However, you may use AI on projects, including the writing done for project reports and code development as long as the AI is cited as the source of work when it is used. Any AI citation must include the prompt question used. In an ideal world, Chat GPT can be/become an excellent teaching and learning tool, to help writers learn to edit, to expedite certain repetitive tasks, and to potentially free one up for the more creative parts of a job. This is to say if used judiciously and with integrity, AI/Chat GPT can be a plus. The concern here, however, is that it might diminish outcomes if not utilized properly. Again, for this course, all your work should be your own and original, so stay clear of Chat GPT and other AI that creates any work, or part of the work for you. Use of AI in this course is not allowed for Homework, Quizzes, and Exams and will be considered an Honor Code violation if it occurs with all the penalties that apply.
CU Honor Code
All students enrolled in a University of Colorado Boulder course are responsible for knowing and adhering to the Honor Code. Violations of the Honor Code may include but are not limited to: plagiarism (including use of paper writing services or technology [such as essay bots]), cheating, fabrication, lying, bribery, threat, unauthorized access to academic materials, clicker fraud, submitting the same or similar work in more than one course without permission from all course instructors involved, and aiding academic dishonesty. Understanding the course's syllabus is a vital part in adhering to the Honor Code.
All incidents of academic misconduct will be reported to Student Conduct & Conflict Resolution: StudentConduct@colorado.edu. Students found responsible for violating the Honor Code will be assigned resolution outcomes from the Student Conduct & Conflict Resolution as well as be subject to academic sanctions from the faculty member. Visit Honor Code for more information on the academic integrity policy.
Credit must be clearly given for code or designs legally borrowed from others. Submission of project work performed previously or concurrently for a different course constitutes cheating, if instructor consent is not obtained prior to submission.