Computer Architecture Classes @ WNE

Page content
Many, many, many years ago, I took a small career detour and taught for one year at a regional college in MA. There, I was assigned to teach several introductory computer engineering courses. On this page, I’m sharing the slides from the most memorable ones: real-time kernels (a fancy term for embedded RTOS), VHDL simulation and synthesis, and an electronics summer camp for 8–12-year-olds. The other classes were more prosaic. In a fun twist, almost 15 years later I’m once again working with VHDL. Since my slides were all tucked away on a hard-disk drive, I figured—why not take this opportunity to put everything online for posterity? Enjoy!
CPE 462 – VHDL: Simulation and Synthesis – Fall ’11
Syllabus PDF
Topic 1: Introduction to reconfigurable computing
- Introduction PDF
Topic 2: Review
Topic 3: Introducing Simulation and Prototype Tools
- a) Introduction to VHDL Slides PDF Source code: nand gate, d-flip-flop, nand + d-flip-flop
- b) Xilinx Development Environment Slides PDF Practice Solutions
- c) Aldec Active HDL Environment Slides PDF Practice Solutions Source code: Practice #1: DFF + nand, Practice #2: SR latch
- d) Test-Benches Slides PDF Practice Solutions Template Source code: 4-to-1 MUX, Practice #1, Practice #2
Topic 4: VHDL Foundations
- a) Basic Synthesizable Data Types PDF Practice Solutions
- b) Types and Arrays PDF Exercise #4 Test-Bench, Exercise #5 Test-Bench Practice Solutions
- c) Operators and Attributes PDF
- d) Generics PDF
Topic 5: Concurrent Code
Topic 6: Sequential Code
- a) Process, If, and Variables PDF
- b) Sequential Code on Spartan-3 Boards PDF
- c) Wait, Case, and Loop PDF
- d) Final Topics in Sequential Code PDF
- e) Variables vs Signals PDF
Topic 7: Finite State Machines (FSM)
- a) Introduction to Finite State Machines PDF
- b) Practical VHDL Implementations PDF
- c) FSM on Spartan-3E PDF
- d) FSM with Delays PDF
Topic 8: System Design
Topic 9: Circuit Designs
- a) Introduction to Random Numbers in Hardware PDF
Homework
- HW #1 solutions
- HW #2 solutions
- HW #3 exercise #3 testbench solutions
- HW #4 solutions
- HW #5 exercise #3 testbench exercise #4 testbench solutions
- HW #6 solutions
- HW #7 solutions
- HW #8 solutions
- HW #9 solutions
- EXAM #1 & HW #10 testbench comments solutions
- HW #11 testbench waveform solutions
- HW #12 solutions
- HW #13 solutions
- HW #14 solutions
- HW #15 solutions
- HW #16 partial solution solutions
- HW #17 partial solution solutions
- HW #18 solutions
Exams
CPE 355 – Real Time Embedded Kernels – Spring ’12
Syllabus PDF
Topic 1: Background
- a) Digital logic and information representation review PDF
- b) Hardware fundamentals for the software engineer PDF
- c) Advanced hardware fundamentals PDF
- d) Introduction to interrupts PDF
Topic 2: Programming foundations (Arduino & C)
- a) Arduino and basic C review PDF
- b) Interrupts in Arduino PDF
- c) Pointers, arrays and function pointers PDF
- d) Structs, linked lists, stacks and queues PDF source
- e) Bitwise operators, macros and enumeration PDF
- f) Very basic introduction to Arduino timers PDF
- g) Literal constants, extern, typedef, callback functions and macros PDF
Topic 3: Foundations of real-time systems
- a) Survey of software architectures: round-robin PDF
- b) Survey of software architectures: queues and RTOS PDF
Topic 4: Features of real-time operating systems
- a) Tasks, task data and reentrant functions PDF
- b) Semaphores and shared data PDF
- c) Message queues, mailboxes and pipes PDF
- d) Timer functions PDF
- e) Events and memory management PDF
- f) Basic design using a real-time operating system PDF
Homework
- HW01 solutions
- HW02 solutions by Alexandra Carter
- HW03 solutions
- HW04 solutions
- HW05 solutions by William Ferguson
- HW06 solutions by Scott Nette
- HW07 solutions by Kyle Hunter errata
- HW08 solutions by William Ferguson
- HW09 q1 solution by Jason T. John q2 solution
- HW10 solutions
- HW11 solutions
- HW12 solutions
- HW13 solutions
- HW14 & 15 solutions
- HW16 solutions
- HW17 solutions