If you do well in this course, you will be able to:

Number systems

  • Represent and manipulate information in digital systems
  • Apply these concepts to perform computer arithmetic
  • Combinational Logic

  • Express, simplify, and minimize Boolean functions, using truth tables, Boolean algebra, canonical forms, and Karnaugh maps, including don’t cares
  • Utilize technology mapping techniques, such as NAND only
  • Use decoders and multiplexers to implement a combinational logic function or system
  • Identify design tradeoffs
  • Analyze and design combinational logic circuits
  • Sequential Logic

  • Explain and analyze the behavior of basic sequential logic elements
  • Represent sequential systems using finite state machines, including Moore and Mealy
  • Produce state diagrams, state tables, excitation tables and state equations, including one hot encoding
  • Use timing diagrams to explain basic sequential circuit timing issues
  • Analyze and design synchronous sequential logic circuits
  • Datapath Components

  • Analyze and design circuits using Datapath components: registers, adders, shifters, comparators, and counters
  • Analyze and design multi-function registers and counters
  • Explain arithmetic logic units (ALUs), registers, and register operations
  • Explain elementary register transfer level designs
  • Describe the organization and operation of a basic digital computer
  • Hardware Description Language (HDL)

  • Describe the difference between HDL and software
  • Develop structural and dataflow models of logic circuits
  • Verify designs using a testbench
  • Use behavioral models of logic circuits
  • Map HDL models to logic circuits on field programmable gate arrays (FPGAs)
  • Introduction to Assembly Language

  • Explain the hierarchical relationship between transistors, digital logic, and microprocessors
  • Explain the operation of machine language vis a vis computer architecture
  • Analyze and revise basic assembly language computer programs using a 5-10 instruction set
  • Lab Implementation

  • Implement and debug combinational and sequential logic circuits using standard integrated chips
  • Implement and debug combinational and sequential logic circuits using HDL and FPGAs
  • Implement and debug basic systems using introductory level assembly language computer programs using a limited instruction set