ECE 540 System on Chip Design w/ Programmable Logic

ECE 544 Embedded System Design w/ Programmable Logic

Overview

In this two course Graduate sequence students learn how to design, implement and debug SoC-based embedded systems. An SoC-based system includes an embedded CPU, custom and 3rd party IP (Intellectual Property) peripherals and application software developed to meet the specification of the project. Rather than using off-the-shelf single board computers such as Arduino or Raspberry PI, the students implement these systems on an FPGA development board using industry standard simulation, synthesis and place and route tools. Both courses are project-based with several mandatory projects and a team-based final project of the student’s choice. The final projects are presented and demonstrated to the entire class (and sometimes invited guests) at the end of the term during “demo night.”

ECE 540 introduces students to the synthesizable subset of Verilog and the Xilinx Vivado tool suite for implementing FPGA-based designs. For ECE 540 the focus is on the hardware aspects of FPGA-based embedded systems. We use MIPSfpga (a synthesizable MIPS core with an AHB-Lite peripheral interface) as the embedded CPU. Applications are programmed in MIPS Assembly Language. Custom hardware in the form of I/O devices and a VGA controller are written in Verilog by the students and integrated into their embedded system(s). Students do two mandatory projects, the first being more of a “getting started” project to build competency in the complex tool suite used for implementing FPGA-based SoCs and the second being a full SoC-based design that represents a significant hardware and software development challenge. The final project is one of the team’s choosing but must be an SoC-based design suitable for an in-class demo. Lecture topics include a brief refresher on Verilog for synthesis, the MIPS architecture and instruction set, SoC concepts and practical techniques for designing to meet timing constraints and designing for multiple clock domains.

ECE 544 builds on the skills gained in ECE 540 with the focus being embedded systems with real-world interfaces to external devices. While there is some hardware development, the emphasis is on writing software for embedded systems. We use the Xilinx IP integrator which includes Microblaze (a 32-bit highly configurable CPU) and AXI-based IP provided by Xilinx and 3rd parties. Programming is done in C. The course is project-based with several mandatory projects and a team-based final project. Lecture topics cover a number of areas relevant to embedded system design. Lecture topics include C programming for embedded applications, interfacing to analog and digital devices, industry-standard peripheral buses and real-time operating systems.

Course structure:

  • The courses are offered at both the downtown PSU campus and at our remote campus at the Willow Creek Center (WCC). WCC is located at 185th and Edgeway, adjacent to the Max station in Hillsboro. There is plenty of free parking at WCC because it is a Trimet Park and Ride.

  • Lectures, 4 hrs. per week (class meets twice per week).

  • Several SoC-based projects done either individually or in a small team.

  • Team-based final project of the students’ choosing. Teams make one or more technical presentations to the class including a demo of their final project.

  • Two in-class exams. Tests generally include a mix of T/F, multiple choice, short answer questions and several programming (Verilog, Assembly Language, C) problems.

  • There are no graded homework assignments although the instructor may release one or more practice homework assignments.

  • Grading criteria may vary with instructor but the Final project is typically a significant portion of the grade (20% - 30% of the final grade).

More information can be found in the individual Course Descriptions here:

https://www.pdx.edu/electrical-computer-engineering/ece-540-system-chip-design-programmable-logic

Required TA Skills

The TA for either of these courses must be competent in synthesizing, implementing, and debugging FPGA-based embedded systems. This includes competence in Verilog and/or SystemVerilog, assembly language programming and C programming. TAs for ECE 540 should also be competent in timing analysis and the steps and techniques used to achieve timing closure. TAs for ECE 544 should be competent in embedded system hardware and software. Experience with the Xilinx Vivado tool chain is helpful. This is a course based on challenging projects using a complex tool suite.

TA Responsibilities

The TA position is a 0.30 FTE assignment. The TA for these courses is expected to work an average of 10-12 hrs./week; some weeks will have a heavier load, some a lighter load.

  1. Participates and/or leads the effort to develop new projects or refine existing projects. This includes producing some of the documentation for the project, prototyping the project, and, if appropriate, introducing the project(s) to the class.

  2. Hosts weekly office hours. For classes with Westside and downtown campus students, the TA is expected of offer office hours at both the downtown campus and WCC

  3. Give additional support to students as they work on their projects including accepting appointments for debug and design sessions and monitoring the D2L forums to provide answers to questions posed by students.

  4. Grade project deliverables and exams and graded exercises (if there are any). Solution sets will generally be provided by the instructor but the TA may be asked to assist in the generation of the solution set. The general expectations is that assignments will be graded and returned to students within two weeks of submission; there are exceptions to that.

  5. Be in contact with the instructor and keep them informed of any problems.

  6. There may be other responsibilities depending on the instructor such as holding exam review sessions, proctoring exams, and other assistance to the instructor if requested.

Verifying Your Qualifications

Strong preference will be given to students who have completed one or both courses in the sequence with a grade of A- or A. Students with little or no experience in synthesis and programming embedded systems need not apply. This is not a course where you can gain the sufficient knowledge to support the course on the fly.