EEE 303 (January 2020)
Announcement
This website is not going to updated. For online classes, we have migrated to the Institutional Microsoft Teams account. Please contact me if you have not been added to the class Team.'
Welcome
"There are 10 types of people in this world. Those who understand binary, and those who doesn't."
Welcome to the course on Digital Electronics, where we will explore the very fundamental concepts that makes most of our modern consumer electronic products function.
Office Hours
Tues 121pm (Section A) Saturday 121pm (Section B) I will be in my office at EEE 222, and students are welcome to drop by with any questions/problems related to the class or for conceptual understanding of the topics. Other than office hours, prior appointment must be made to schedule a meeting. For any course related matter outside the class, preferred medium of communication is email
Course Outline
 Week 1  (Brown 5.1, Floyd 2.12.10)  Introduction to Course, Introduction to Number Systems and codes. Introduction to verilog
 Week 2  (Floyd 3.13.7,4 Brown 2.12.9)  Analysis and synthesis of digital logic circuits: Basic logic function, Boolean algebra, combinational logic design, minimization of combinational logic (kmap)
 Week 3  (Floyd 5, Brown 4) universal logic gates, verilog synthesis with combinational logic
 Week 4  (Floyd 6, Brown 7) Decoder, encoder, comparators, binary arithmetic elements and ALU design
 Week 5  (Brown 7, Floyd 7) Sequential circuits: different types of latches, flipflops
 Week 6  (Brown 7) Modular sequential logic circuit design: shift registers, counters, and application
 Week 7  (Brown 9.19.3, 8.1) Asynchronous and synchronous sequential circuits
 Week 8  (Brown 7.15, Brown 8) State Machine Design, Algorithmic State Machine (ASM), timing analysis and power optimization of sequential circuits.
 Week 9  MOSFET Digital circuits: NMOS inverter, CMOS inverter, CMOS logic circuits, Clocked CMOS logic circuits, transmission gates,
 Week 10  (Floyd 11) Memories: classification and architecture, RAM memory cells, Read only memory, data converters
 Week 11  (Floyd 15) BJT digital circuits: ECL, TTL, STTL, BiCMOS, Design application A static ECL gate
 Week 12  (Brown 6.1) Modular combinational circuit design: pass transistor, pass gates, multiplexer, demultiplexer and their implementation in CMOS
Lecture Notes
 Lecture 1  Introduction
 Lecture 2,3  Number systems and codes
 Lecture 4,5,6  Boolean Algebra, Kmap, Boolean Analysis and Synthesis
 Lecture 7,8  Verilog syntax, universal gates
 Lecture 9  Classtest 1  1pm
Classtest Syllabus
Classtest 1
Contents of Week 1 and Week 2 from above.
Homework Problems
N.B.  Please write the following on the top of the homework:
Name:
Student ID:
Course Number: EEE 303
Course Instructor: Dr. Sajid Muhaimin Choudhury
Homework Number: 1A Date of Submission: XX
Homework 1A
An alien species have landed on earth that have four hands with 9 fingers on each hand (36 fingers in total). They follow a base36 number system. We will define variable 'X' and variable 'Y' in their number system. The first 3 letters of your first name is variable X, last 3 letters of your last name is variable Y, first letter of your last name is variable Z (For example for Mahbubur Rahman, X=MAH, Y=MAN, Z=R, X,Y,Z are in base36)
Problem 1: Convert X and Y to decimal, binary, hexadecimal and octal number
Problem 2: In binary and decimal, compute X+Y, XY. Compute 2's complement of Y in binary and recompute XY
Problem 3: Represent the floating point number X.Y in IEEE single precision floating point number
Problem 4: Convert X to grey code and ASCII
Problem 5: Install Altera Quartus. Show the value of Z in Binary and hexadecimal. Attach a printed copy of the waveform with your file
Homework 1B
Problem 1: Convert Z from problem 1 into binary and take the first 8 bits from the MSB. Assume the function f(A,B,C) is defined as these first 8 bits denoted by 'G'. Write the truth table of the function, write the function in terms of Sum of Products and Product of Sum form, and draw a Kmap of the function and reduce it to minimum form.
Problem 2: Write a verilog code that generates fibonacci sequence of a number. (https://en.wikipedia.org/wiki/Fibonacci_number)
Fibonacci number, Fn = F(n1) + F_(n2); F_0 = 1; F_1 = 1
Input: clock Output: 16 bit fibonacci number
each time clock changes state from 0 to 1, the fibonacci number output is changed, showing from F_0, F_1, F_2 etc.
Case 1: F_0 = 1; F_1 = 1; (Regular fibonacci number) Case 2: F_0 = G; and F_1 = 1;
Show (print) output for both cases for 16 different clock changes
Textbooks
 Stephen Brown and Zvonko Vranesic, "Fundamentals of Digital Logic with Verilog Design"
 Thomas L. Floyd, "Digital Fundamentals Eleventh Edition"
 Morris Mano and Michael Ciletti, "Digital Design with an Introduction to VerilogHDL"
Additional Resources

Proteus Tutorial: https://www.youtube.com/watch?v=yt7BhhvohU&list=PL72829A4E60EE90BE

Verilog Tutorial: ASIC World

Springer has a free book available to download from there website ( click here ) called Introduction to Logic Circuits & Logic Design with Verilog by B. J. LaMeres (DOI:https://doi.org/10.1007/9783030136055_8). We will teach some of the lectures from this book as it has very intuitive approach to a lot of the problems.