College of Technology
Engineering and Computer Science Department
ENGR335 Logic Circuit Design
Syllabus - Fall 2007
Instructor: Ronald L. Johnson
Office: Haughey Hall - HYH330
Office Hours: MWF at 9:30-10:20 and MWR at 2:00-3:15
Contact Info: firstname.lastname@example.org, office 471-3368, home 683-7418
Class Location: HYH329
Class Time: MR 3:30-4:45
Course Description: This course is intended for the students in the E&C Engineering track. The course will introduce discrete logic circuits used in combinatorial and sequential logic circuits. Then programmable logic (field-programmable gate arrays) will be introduced along with CAD software that will allow the logic to be defined using the hardware description language VHDL. Boolean algebra expression minimization techniques will be introduced, arithmetic circuits will be studied, and decoders, encoders, and multiplexers will be presented. Flip-flops will be used to construct registers, counters, and state machines. This is a 3 credit course with two 1½-hour lecture periods each week.
Course Prerequisites: ENGR275 Electronics I or the equivalent.
Text: Tocci, Widmer, and Moss, Digital Systems - Principles and Applications, 10th edition, Prentice-Hall, 2007
A. Ch. 2 - Number Systems and Codes 1.5 weeks
Ch. 3 - Describing Logic Circuits
B. Ch. 4 - Combinational Logic Circuits 1.5 weeks
C. Ch. 5 -Flip-Flops and Related Devices 2 weeks
D. Ch. 6 - Digital Arithmetic: Operations and Circuits 1 week
E. Ch. 7 - Counters and Registers 2 weeks
F. Ch. 8 - Integrated-Circuit Logic Families
Ch. 9 - MSI Logic Circuits
G. Ch. 10 - Digital System Projects Using HDL 2 weeks
H. Ch. 11 - Interfacing with the Analog World 2 weeks
Ch. 12 - Memory Devices
Ch. 13 - Programmable Logic Device Architecture
I. Class Projects 2 weeks
Course Objectives: Upon successful completion of this course the student is expected to have demonstrated these outcomes:
A. Number Systems and Codes, Boolean Algebra Theorems, Combinatorial Logic, and VHDL
l. Count in binary numbers and convert between decimal and binary numbers.
2. Write binary numbers in octal and hexadecimal form and convert between these forms.
3. Explain how BCD codes can be used to represent decimal numbers and how ASCII codes can be used to represent text.
4. Draw the symbols for AND, OR, and NOT gates and construct the truth table for each.
5. Use the axioms, theorems, and properties to manipulate and simplify Boolean logic expressions.
6. Use Venn diagrams to prove Boolean logic identities.
7. Synthesize circuits using AND, OR, and NOT gates from Boolean logic expressions. Use NAND and NOR gates to synthesize Boolean logic expressions.
8. Write simple VHDL programs that describe the functions of logic expressions.
B. Combinatorial Logic Circuits
1. Use Karnaugh maps to simplify both SOP and POS functions with up to 5 inputs.
2. Know the truth table for Exclusive-OR gates and give some EOR applications.
3. Simplify implementations of functions that have unspecified (don’t care) input combinations.
4. Demonstrate how VHDL can be used to define functions for CAD programs that will in turn generate simplified logic circuit implementations
C. Flip-Flops and Related Devices
1. Define the difference between sequential circuits and combinatorial circuits.
2. Draw the schematic, show the truth table, and give the graphical symbol for a NOR-gate latch, a NAND-gate latch, a gated NOR-gate latch, a gated NAND-gate latch, and a gated D-latch.
3. Define the terms setup time and hold time in terms of a D-latch. Explain how a master-slave D flip-flop and an edge-triggered flip-flop can ensure that the data input to the D-latch is stable.
4. Draw the schematic, show the truth table, and give the graphical symbol for a JK flip-flop. Then add the preset and clear inputs, and explain their operation with emphasis on why we call these inputs asynchronous.
5. Show how D-type flip-flops can be used to create a shift register.
6. Explain the operation of a one-shot multivibrator and give some applications.
7. Show some clock circuit schematics and describe their applications.
8. Use both VHDL and schematic capture to create one or more of the flip-flops described above in a FPGA.
D. Digital Arithmetic: Operations and Circuits
1. Show circuits to add two single-bit unsigned binary numbers (note this is a half adder). Then show how two half adders and an OR gate can be used to form a full adder circuit.
2. Determine the range of values that can be represented by 8 bits using unsigned and 2's complement signed numbers. Be able to express any positive or negative value in 2's complement form.
3. Explain how an adder circuit can be used to do 2's complement subtraction, and show the block diagram for a 4-bit 2's complement adder/subtractor (control input is 0 for addition and 1 for subtraction).
4. Explain the concept of “overflow” with respect to the adder/subtractor in number 5 above.
5. Use schematic capture to implement a full adder circuit in a FPGA and then use this instance of a full adder to create the 4-bit adder/subtactor described in number 5 above.
6. Convert a fixed point number from decimal to binary (both the integer and fractional parts).
7. Explain how BCD codes can be used to represent decimal numbers and how ASCII codes can be used to represent text. Draw the block diagram of a 4-bit BCD adder circuit.
8. Use VHDL to design a 4-bit full-adder/subtractor circuit for 4-bit 2's complement numbers.
E. Counters and Registers
1. Show the schematic for a 4-bit asynchronous up-counter using edge-triggered JK flip-flops with active low clock inputs. Then show the schematic for a 4-bit synchronous up-counter using the same flip-flops. Explain why the synchronous counter is preferred in some applications.
2. Describe and show the schematics for a BCD counter, a ring counter, and a Johnson counter. Explain why it is important to start the ring counter and the Johnson counter in a known initial state.
3. Show how the shift register can be modified so that data can be entered in parallel and then shifted out serially, or now the data can be shifted in serially and then accessed in parallel. Look for standard 7400 examples.
F. IC Logic Families and MSI Devices
1. List the 7400-series standard logic families and compare them in terms of speed, power dissipation, input/output logic levels, and fanout
2. Describe open-collector/open-drain output devices and explain how and why they are applied.
3. Describe tristate output devices and explain how and why they are applied.
4. List the device parameters that must be considered when interfacing devices from different families.
5. Describe the operation and application of CMOS transmission gate.
6. Know the operation and how you could build these MSI circuits from simple gates and flip-flops: decoders, encoders, multiplexers, demultiplexers, magnitude comparators, code converters, and tristate registers.
7. Demonstrate ability to create these devices in the FPGA using VHDL.
G. Digital System Projects
1. Demonstrate design ability with VHDL to build a significant project in the FPGA. Demonstrate and document your project.
H. ADC, DAC, Memory Devices, and Programmable Logic Device Architectures
1. Explain the concept and give a circuit example of digital-to-analog conversion (DAC).
2. Explain the concept and give two circuit examples of analog-to-digital conversion (ADC).
3. Compare the different ADC methods in terms of complexity and conversion time.
4. Name, physically describe, and compare the characteristics of the different memory types: ROM, flash, RAM(static), and DRAM.
5. Describe the programmable logic device architectures starting with the simple and going to the more complex. Give examples of each type.
Course Procedures: Some of the course procedures that we will be following are listed below.
Attendance–You are expected to attend each class and participate in the class and lab activities conducted. Assignments for individual or group presentations at the next class will at times be given. Successful presentations of these assignments will be a part of the homework grade for the class.
Intellectual Honesty– Any work that you submit is expected to be your work and not something that you have “borrowed” from others. I encourage you to collaborate in your work, but not to copy the work of others. On exams I expect that you will follow the exam instructions carefully and not use materials other than those specified. When writing reports be sure to give credit for ideas or quotations borrowed from others. Deviation from these expectations may result in a failing grade on the assignment or even for the class. For further information on the issue of academic integrity see the Academic Integrity section of the Bulletin on page 28 and the corresponding section in the Student Handbook.
E-mail Contact–I welcome your questions via e-mail and will suggest that you check your e-mail between class sessions for further clarification of assignments or tips that may help you do the homework. Be sure that you are “connected”!
Homework-- Questions and problems at the end of the chapters will be assigned in class and will be expected to be handed in at the beginning of the next class period unless otherwise indicated. If you have trouble with the homework, I will try to be of assistance via e-mail or by phone or in person in the office. Late papers, if accepted, will be given ½ credit.
Exams–Exams will be announced at least a week in advance and will emphasize the material covered since the last exam. Refer to the course objectives to know what you will be expected to do. It should be recognized that the material at each stage builds on the previously covered material so in that sense each exam will cover all of the previous material.
Students with Disabilities–Andrews University accepts and appreciates diversity in its students, including students with disabilities. Accordingly, students with documented disabilities are encouraged to inform the University of their disability and enter into a dialogue regarding ways in which the university might reasonably accommodate them. If you qualify for accommodations under the Americans with Disabilities Act, please see the instructor as soon as possible for referral and assistance in arranging such accommodations.
Course Grading Procedures: The final grades will be computed by weighting the total scores on your daily homework and reading assignments, your project reports, and your exams by the factors indicated and then comparing your overall percentage with the scale shown.
Weighting factors: Grading Scale:
Homework 25% 90 - 100% A
Project reports 25% 80 - 89% B
Exams 50% 70 - 79% C
60 - 69% D
< 60% F
Program Objectives: We aspire to be a place of choice for engineering and computer science education where dedicated students and faculty grow together to reach their God-given potential for service to society and the church. We embrace a thoughtful respect for diversity of viewpoints, a caring stewardship for our God-given home, a marked excellence in our chosen vocations, and a profound faith in the leadership of God in our lives. We commit ourselves to the creation of a nurturing environment where all students willing to work diligently will succeed.
Our students are challenged:
I. To identify, formulate, and solve engineering and computing problems, and to design and carry out experiments that will support these solutions,
II. To apply the theories of science, mathematics, engineering, and computing in order to creatively design practical and economical solutions to defined problems,
III. To work effectively in teams with other disciplines to generate design solutions that are sensitive to societal values and environmental impact.
IV. To develop broad competencies and focused proficiencies in their chosen discipline and to demonstrate skills in the use of modern engineering and computing tools,
V. To advance in their disciplines through research and internships, to address contemporary issues, and to adopt the practice of life-long learning,
VI. To practice critical thinking and effective communication,
VII. To demonstrate high professional and ethical values in their work,
VIII. To achieve a well-rounded, Christ-centered life perspective through the integration of the entire curriculum.
Relationship Between Course Objectives and Program Outcomes: This course is part of the process ensuring Andrews University engineering graduates:
1. Possess an ability to design and conduct experiments, and to analyze and interpret data.
2. Possess an ability to identify, formulate, and solve engineering problems in both individual and team environments, particularly in the design of a system, component, or process to meet desired needs.
3. Possess an ability to apply knowledge of mathematics, science, and engineering.
4. Possess an ability to use the techniques, skills, and modern engineering tools necessary for engineering practice.
5. Have knowledge of contemporary issues in electrical and computer engineering, and mechanical engineering; and a broad education necessary to understand the impact of engineering solutions in a societal and global context.
6. Recognize the need for and an ability to engage in life-long learning and the importance of professional licensure.
7. Communicate effectively, both orally and in writing, and both individually and as members of multi-disciplinary teams.
8. Possess an understanding of professional ethical responsibility.
9. Possess a well-rounded, Christ-centered life perspective through the integration of the entire Andrews University curriculum.
Program outcomes 1, 2, 3, 4, 5, and 6 are particularly addressed in this course.