Sep 17, 2024  
2023-2024 Undergraduate Academic Catalog 
    
2023-2024 Undergraduate Academic Catalog [ARCHIVED CATALOG]

Add to Portfolio (opens a new window)

ELE 2801 - Bridge Digital Design and Procedural Programming

3 lecture hours 2 lab hours 4 credits
Course Description
This course introduces students to two types of programming languages. VHDL, a hardware descriptive language, will be used to develop digital logic-based solutions. It will be used to implement combinational and sequential logic solutions. Designs may include components such as ALUs, multiplexors, buses, flip-flops, counters, registers, and finite state machines. The designs will be realized in hardware using an FPGA-based development board. The other part of this course introduces concepts that are required to solve engineering problems using structured programming techniques. Students will develop a working knowledge of a high-level programming language and the tools used in developing solutions to solve engineering problems. Emphasis will be placed on understanding the interaction of programs with the supporting hardware (program flow in memory, data usage in memory, pointers, and structures). A course project incorporating the major topics from the class may be included. (prereq: ELE 1801 ) (quarter system prereq: typical AAS-EET digital and typical AAS-EET embedding programming)
Course Learning Outcomes
Upon successful completion of this course, the student will be able to:
  • Design combinational logic circuits using VHDL and test on a programmable logic device (FPGA)
  • Design storage elements (Flip-flops, Latches), ALU, counters, registers, tristate devices, multiplexers, and bus using VHDL and test on a programmable logic device (FPGA)
  • Design synchronous sequential circuits using state diagrams and/or ASM using VHDL and test on a programmable logic device (FPGA)
  • Design VHDL model of a digital system and test on a programmable logic device (FPGA)
  • Use commercially available digital-design software tools and evaluation boards to design, simulate, and implement design circuits
  • Use structured programming techniques in C
  • Design and write software to solve engineering problems
  • Document the software solution for an engineering problem
  • Explain concepts and terminology related to processor architecture
  • Describe the relationship between software and hardware
  • Use Integrated Development Environment tools for software development and debugging
  • Utilize library functions and algorithms
  • Recognize and employ good software practices

Prerequisites by Topic
  • College Algebra I
  • Number systems: binary, decimal, hexadecimal
  • Conversion from one number system to another
  • Binary arithmetic
  • Logic operations
  • Logic gates
  • Logic expressions
  • Logic functions
  • Simplification of logic functions using Karnaugh map and/or Boolean algebra
  • Codes: Binary Coded Decimal (BCD), ASCII
  • Combinational digital circuits
  • Storage elements such as flip-flops and latches, and synchronous sequential digital circuits
  • Procedural programming concepts

Course Topics
  • Hardware description language for modeling of digital circuits
  • Design combinational logic circuits using VHDL
  • Design VHDL models of storage elements (Flip-flops, Latches), ALU, counters, registers, tristate devices, multiplexers, and buses
  • Design finite state machines (FSM) using state diagrams and/or ASM, and implement using VHDL
  • Implementation of logic elements, combinational logic circuits, sequential circuits in a FPGA
  • Design ROM, SRAM, or DRAM using design tool library components and/or VHDL
  • Problem solving, algorithm, flow-chart, and pseudo-code development
  • Number systems, data types, and binary arithmetic
  • State machines
  • Basic microcontroller architecture, subsystems, and memories
  • Hardware / software interaction
  • Variables, expressions, and operators
  • Control constructs, and looping techniques
  • User-defined functions, parameters, returns, and function prototypes
  • Subscripted variables, arrays
  • Pointers and function parameter passing by pointers
  • Pointer arithmetic
  • Tool chains
  • Software libraries, header files, and coding conventions
  • Structures

Laboratory Topics
  • Design combinational circuits using VHDL
  • Design VHDL models of storage elements (Flip-Flops, Latches), ALU, counters, registers, tristate devices, multiplexers, and bus
  • Design finite state machine (FSM) and implement using VHDL
  • Design RAM or ROM using design tool library components and/or VHDL
  • Implementation of combinational logic circuits, sequential circuits, and FSMs on an FPGA
  • Solve a problem with software that uses functions and control structures
  • Solve a problem with software that uses arrays and pointers
  • Solve a problem with software that uses external libraries

Coordinator
Dr. Joshua Carl



Add to Portfolio (opens a new window)