The goal in ECE 2031 is to experience the conception, design, fabrication, and testing of digital hardware in a hands-on setting. Laboratory projects will use a PC-based CAD tool environment that supports schematic capture, logic simulation, and VHDL-based logic synthesis on FPGAs (Field Programmable Gate Arrays). Discrete logic devices will be used for two designs, but VHDL-based logic synthesis on FPGA- based design boards will be used for more advanced design implementations. The semester will culminate with a design project specified and undertaken by teams of four to five students. Technical communication skills are developed through laboratory reports, project documentation, and an oral presentation.
As described here, the objectives for students are to
- Apply their knowledge from ECE 2020 (or CS 2110) to practical laboratory experience in digital computing systems.
- Apply the concepts of basic combinational logic circuits, sequential circuit elements, and programmable logic in the laboratory setting.
- Develop familiarity and confidence with designing, building and testing digital circuits, including the use of CAD tools.
- Develop team-building skills and enhance technical knowledge through both written assignments and design projects.
Also from the ECE web site, upon successful completion of this course, students should be able to be able to do the following:
- Implement combinational logic circuits both with TTL devices on a protoboard and within a complex PLD.
- Analyze the timing of digital circuits with oscilloscopes and logic analyzers.
- Design and implement state machines to meet design specifications.
- Design circuits with a graphical schematic CAD editor.
- Simulate circuits within a CAD tool and compare to design specifications.
- Design, implement, and simulate circuits using VHDL.
- Implement a simple computer within a PLD.
- Write machine language programs and assembly language programs for the simple computer.
- Use a complex sequential logic circuit as part of a solution to an open-ended design problem.
- Write laboratory reports and documentation conforming to technical writing standards.
- Work effectively as team members to develop and write a group report.
- Work effectively as team members to design an approved project.
The primary topics of the course include
- CAD Tools
- Combinational logic design using multiple methods: discrete logic devices, schematic capture for FPGAs, and VHDL
- Examination of real timing issues on hardware using software simulation and hardware test equipment (oscilloscope)
- State machine specification, design, simulation, and implementation with multiple methods
- VHDL models of basic gates and logic operations
- Logic synthesis and simulation using VHDL
- Design verification with a logic analyzer
- VHDL models of data storage elements
- ROM and RAM implementations on an FPGA board
- Hardware design of a simple computer with ALU, registers, control unit, memory, instructions, and I/O
- VHDL-based simple computer simulation and implementation on FPGA board
- Machine language and assembly language programming for the simple computer
- Simulation and implementation of programs on the FPGA board
- Final design project problem specification (examples: video game, control application, robot, or contest)
- Hardware and tools available to solve the final design project problem
- Project engineering issues: top-down vs. bottom-up design, hierarchical decomposition, and modularity
The end of course group project can be found here.
- Lab 0 - Quartus Prime Lite Edition Installation
- Lab 1 - Introduction to Digital Logic Design
- Lab 2 - Introduction to Circuit Prototyping
- Lab 3 - Introduction to Hardware Description Languages
- Lab 4 - State Machine Design
- Lab 5 - State machines Implemented in VHDL
- Lab 6 - Train Implementation
- Lab 7 - Introduction to the Simple Computer
- Lab 8 - Assembly Subroutines