100% found this document useful (7 votes)
35 views

PDF Digital Logic For Computing 1st Edition John Seiffertt (Auth.) Download

Digital

Uploaded by

smaniaamdrei
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (7 votes)
35 views

PDF Digital Logic For Computing 1st Edition John Seiffertt (Auth.) Download

Digital

Uploaded by

smaniaamdrei
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 62

Download the full version of the textbook now at textbookfull.

com

Digital Logic for Computing 1st Edition John


Seiffertt (Auth.)

https://textbookfull.com/product/digital-logic-
for-computing-1st-edition-john-seiffertt-auth/

Explore and download more textbook at https://textbookfull.com


Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.

Sets logic and maths for computing 3rd Edition Makinson D

https://textbookfull.com/product/sets-logic-and-maths-for-
computing-3rd-edition-makinson-d/

textbookfull.com

Logic and Algebraic Structures in Quantum Computing 1st


Edition Jennifer Chubb

https://textbookfull.com/product/logic-and-algebraic-structures-in-
quantum-computing-1st-edition-jennifer-chubb/

textbookfull.com

Evolution, the Logic of Biology 1st Edition John S. Torday

https://textbookfull.com/product/evolution-the-logic-of-biology-1st-
edition-john-s-torday/

textbookfull.com

The Impact of Smart Feature Phones on Development Internet


Literacy and Digital Skills Jeffrey James

https://textbookfull.com/product/the-impact-of-smart-feature-phones-
on-development-internet-literacy-and-digital-skills-jeffrey-james/

textbookfull.com
Tangible Interactive Systems Grasping the Real World with
Computers 1st Edition Guy André Boy (Auth.)

https://textbookfull.com/product/tangible-interactive-systems-
grasping-the-real-world-with-computers-1st-edition-guy-andre-boy-auth/

textbookfull.com

The Geology of the Belingwe Greenstone Belt, Zimbabwe: A


study of Archaean continental crust First Edition Bickle

https://textbookfull.com/product/the-geology-of-the-belingwe-
greenstone-belt-zimbabwe-a-study-of-archaean-continental-crust-first-
edition-bickle/
textbookfull.com

Coherence and Divergence in Services Trade Law Rhea Tamara


Hoffmann

https://textbookfull.com/product/coherence-and-divergence-in-services-
trade-law-rhea-tamara-hoffmann/

textbookfull.com

Carbohydrate chemistry for food scientists Third Edtion


Edition Bemiller

https://textbookfull.com/product/carbohydrate-chemistry-for-food-
scientists-third-edtion-edition-bemiller-2/

textbookfull.com

Steel-Reinforced Concrete Structures: Assessment and


Repair of Corrosion, Second Edition Mohamed Abdallah El-
Reedy
https://textbookfull.com/product/steel-reinforced-concrete-structures-
assessment-and-repair-of-corrosion-second-edition-mohamed-abdallah-el-
reedy/
textbookfull.com
Dynamic Business Process Management in the Knowledge
Economy: Creating Value from Intellectual Capital Marek
Szel■gowski
https://textbookfull.com/product/dynamic-business-process-management-
in-the-knowledge-economy-creating-value-from-intellectual-capital-
marek-szelagowski/
textbookfull.com
John Seiffertt

Digital Logic
for Computing
Digital Logic for Computing
John Seiffertt

Digital Logic for Computing


John Seiffertt
Truman University
Kirksville, Missouri
USA

ISBN 978-3-319-56837-9 ISBN 978-3-319-56839-3 (eBook)


DOI 10.1007/978-3-319-56839-3

Library of Congress Control Number: 2017937652

© Springer International Publishing AG 2017


This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of
the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations,
recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission
or information storage and retrieval, electronic adaptation, computer software, or by similar or
dissimilar methodology now known or hereafter developed.
The use of general descriptive names, registered names, trademarks, service marks, etc. in this
publication does not imply, even in the absence of a specific statement, that such names are exempt
from the relevant protective laws and regulations and therefore free for general use.
The publisher, the authors and the editors are safe to assume that the advice and information in this
book are believed to be true and accurate at the date of publication. Neither the publisher nor the
authors or the editors give a warranty, express or implied, with respect to the material contained
herein or for any errors or omissions that may have been made. The publisher remains neutral with
regard to jurisdictional claims in published maps and institutional affiliations.

Printed on acid-free paper

This Springer imprint is published by Springer Nature


The registered company is Springer International Publishing AG
The registered company address is: Gewerbestrasse 11, 6330 Cham, Switzerland
Preface

A traditional Introduction to Digital Logic course can cover all of Chaps. 1, 2, 3,


and 4, selections from Chap. 5, and then all of Chaps. 6, 7, 8, 11, 12, 13, 14, and 17,
and maybe selections from Chap. 19. I happen to think Chaps. 15 and 18 are of vital
importance, and the case study presented in Chap. 20 really ties the whole book
together, but they are not included in every intro course. What this book adds that
others in the field leave out, through Chaps. 9, 10, and 16, is more depth for
applications in the computing domain. They can be incorporated in an intro course
geared towards computer engineers or computer scientists, and I have used this
material myself, but they can also benefit these students simply by being in the text
as breadth and a good reference for later use even if not directly included in the
course.
The following descriptions detail the contents of each chapter.
Chapter 1—The Digital Electronic Computer
The goals of the text are introduced and the words digital, electronic, and
computer are explored in relation to these goals. The block diagram for a computer
is discussed, the digital abstraction is laid out, and the idea of programmability is
discussed as core to our notion of a computer. The algorithmic approach of the
text—the idea that this text is looking at the digital logic elements as the physical
means by which algorithms are realized—is made clear. This chapter is short and
not too technical and is recommended for all readers.
Chapter 2—Boolean Algebra
The heart of all mathematical engagement with digital logic is through the
structure known as Boolean Algebra. We give a practitioner’s appreciation for
the ideas of Boolean Algebra while remaining rigorous and pointing to where the
mathematics and philosophy underlying it all can take the interested reader. Often
texts get bogged down in “axioms” and the like, but we focus on the uses of the
tools of Boolean Algebra without watering down the sophistication. This is an
absolutely core chapter as it deals with the fundamental definitions used throughout
the text and the entire field of digital design.

v
vi Preface

Chapter 3—Logic Function Synthesis


Truth tables, canonical forms, and the first real stab at digital design properly
understood are introduced in this chapter. Everyone reading this book will want to
be quite familiar with this material. Many examples are walked through, and,
combined with the analytic approach from Chap. 2, after finishing this chapter,
the student will have a full grasp of what it means to specify logic functions and will
have completed step 1 of a larger journey towards full understanding of what it
means to implement algorithms in hardware.
Chapter 4—Basic Logic Function Minimization
Once we have logic functions generated with the methods of Chaps. 2 and 3, we
often want to write them in more efficient forms so that our devices can cost less and
consume less power. This chapter shows how to use Boolean Algebra to reduce
logic functions to minimal forms and also introduces the Karnaugh Map. While
more of a ladder idea than something of direct use to practicing digital designers,
K-maps are ubiquitous in the literature of the field and the rest of this book uses
them extensively to showcase minimal logic forms. It is worth it for the student of
digital logic to at least be able to read a K-map and know what they are all about.
Chapter 5—Advanced Logic Function Minimization
The most important concept in this chapter used throughout the rest of this book
is that of variable-entry K-maps. Almost every K-map presented in later chapters
uses the variable-entry approach, so the reader is encouraged to read enough of this
chapter to understand what they are all about. Working them requires more skill
than the normal K-maps, so any particular reader may be forgiven for not wanting
to pour too much energy into attaining complete mastery of the variable-entry
maps. However, reading them and understanding how they let us get minimal
forms is key. The other topics in this chapter are self-contained and can be skipped
without loss of continuity.
Chapter 6—Logic Gates
This chapter introduces the schematics for the various logic gates for
implementing Boolean Algebra operations. It also shows how to realize them in
hardware using CMOS transistor arrays. While being able to read gate-level dia-
grams is of the utmost importance both for the digital design professional and for
the student of the field, the transistor-level details are best suited for those going on
to VLSI design work. The remainder of the text focuses on the gate-level and
device-level rather than transistors.
Chapter 7—Unsigned Arithmetic
Working with numbers is essential in digital design and computing work. In this
chapter, the student will learn about binary representations and how to construct
addition and other basic arithmetic circuits from logic gates. Beyond the use of
binary numbers, the material in this chapter is relatively self-contained. This is not a
dedicated computer arithmetic text, and as long as the reader understands the device
block diagram for them, the remainder of the chapters ought to be accessible.
Preface vii

Chapter 8—Signed Numbers


The important two’s complement representation is covered. It cannot be
overstated how important this is to readers of this work because of the ubiquity of
two’s complement in all manner of digital devices and computers. Other represen-
tations are also covered, as are signed arithmetic devices.
Chapter 9—Other Digital Representations
Not everything we need to encode within a digital system is a number. This
chapter discusses how to design such representations and emphasizes that overall
the way we express any information is, in fact, an actual design decision. Floating
point numbers are discussed as well, showing how non-place-value representations
composed of fields can be used to form useful encodings. While the BCD represen-
tation is referenced throughout the rest of the text, much of this chapter is self-
contained, and the reader who only wants to study 19 chapters could probably hold
off on this one with minimal effect on the rest of the material.
Chapter 10—Encoding Code
This chapter highlights the text’s unique focus on computing by extending the
work of Chap. 9 in showing how to represent computer programs themselves as
digital information. Assembly language concepts are introduced, and we begin to
see the development of datapaths to support them. How we write selection and
control programming constructs at the machine level is discussed, and for technical
readers who have never before seen this material it is quite the ride. This is a highly
recommended chapter, especially for computer scientists and computer engineers.
One of this book’s unique features is that it ties in later as we often use these
instructions as motivating design elements for our datapaths and datapath controllers.
Chapter 11—Sequential Logic Elements
Sequential logic is a vital, if not defining, feature of digital design. It is through
sequential circuits that we can store information, implement algorithms, and really
harness the power of our digital systems to create tools of such awesomeness that
integrated circuitry is arguably the most transformative technology man has ever
seen. This chapter discusses flip-flops, synchronization signals, and timing diagrams.
Chapter 12—Multiplexers and Comparators
This chapter begins our march towards the full development of digital datapaths
and the implementation of algorithms in hardware. The two devices covered here,
multiplexers and comparators, are shown in the context of the various types of
instructions they can help realize as well as their use in algorithms. These devices
really are core to the field. Every reader of the text should know about them.
Chapter 13—Decoders and Register Files
Building on the development of Chap. 12, this chapter introduces more impor-
tant datapath components and shows how they are used in designs. The decoder, in
particular, is used to illustrate how logic functions may be implemented and gives
the student a strong workout in Boolean Algebra and active-high vs. active-low
logic.
viii Preface

Chapter 14—Counters
The state machine design process, core to the use of sequential networks, is
introduced in this chapter in the context of building counters. Many kinds of
counters are presented and their use in datapath design and signal generation is
discussed. As counters are of critical importance in digital design, and the state
machine design process is good to learn in its simplified form presented here first,
this is a highly recommended chapter.
Chapter 15—Datapaths
This is an important design chapter. The study of datapaths brings together all
the components from previous chapters and ties them into the algorithm concepts at
the core of the text. A successful study of this chapter will help the reader to learn to
take specifications, optimally lay out the design using digital elements, and mini-
mize the required signals for maximum efficiency.
Chapter 16—Basic Computer Datapath
A combination of sorts of Chaps. 9 and 15, in this chapter we discuss how to
construct a datapath of particular importance: that of an actual digital electronic
computer. Of definite interest to computer scientists and computer engineers, even
electrical engineers may enjoy seeing this key specialized application of digital
circuitry.
Chapter 17—State Machines
This is one of the most important chapters. No study of digital design is complete
without full coverage of the design and application of state machines. We begin
with a generalized state machine partitioned into next state logic, output logic, and
state memory. This chapter then develops state diagram, state tables, and
implementations using various flip-flops. Mealy and Moore machines are covered.
Chapter 18—Datapath Controllers
Extending the initial discussion of state machines from Chap. 17, this chapter
looks at their use specifically in conjunction with the datapaths covered in Chap. 15.
Partitioning large digital systems into state machine controller and datapath sec-
tions is common, and through detailed examples this chapter walks through the
lengthy design process. The climax of the text in a way, the design of datapath
controllers brings together everything previously studied. The student who success-
fully works through this chapter has obtained a strong intro-level knowledge of
digital design and is well-positioned for more advanced study in the field.
Chapter 19—State Machine Theory and Optimization
State reduction and assignment are covered in this chapter, and those are
reasonably standard in texts of this kind. This chapter begins, however, with a
discussion of formal languages and automata. These are topics typically reserved
for computer science theory courses, and they are included here to emphasize the
text’s unique focus on computing. The relationship between theoretical models of
computation and their applied counterparts the student has been construction in
previous chapters is made clear. Not intended even as a primer in automata theory,
Preface ix

the goal here is to give just a brief morsel to entice further thinking on the matter.
Too often, the science and engineering sides of the field are kept very far apart from
one another, and this chapter, by drawing parallels between them based on material
relevant to both and covered previously in the text, is an attempt to bridge this gap.
It is certainly not going to serve as a compete study of these topics, but the hope is
that some philosophically inclined readers may see these ideas here for the first time
and be motivated to explore them further.
Chapter 20—Instruction Processor Design
The text ends with a full-design case study of an electronic digital computer. We
take a pedagogical approach here in repeating some concepts from earlier chapters,
intentionally using slightly different language and notation, so the student can see
them really coming together in a solid whole. The idea is that if you try to read this
chapter first, it should feel overwhelming. But, if read after careful study of the rest
of the text, the successful student should be nodding along and say “Yes, I have
this!” as the actual computer is designed from the instruction set on up. The
exercises continue the design process and, if completed, the reader will have
finished the study of digital logic for computing by actually sketching the details
of a functional instruction processor. We feel this chapter is a unique feature of this
text and encourage students to take advantage of it.
Acknowledgments

This work is the result of more than 5 years of teaching digital logic at the Missouri
University of Science and Technology. I thank most of all the fine students of that
great institution whose questions, comments, and feedback shaped my course and
formed the bulk of this text. I am also grateful for the support provided by my
colleagues, in particular Joe Stanley and Donald Wunsch, who taught alongside me
and motivated me to increase my teaching ability both in the classroom and in the
preparation of this manuscript. Many excellent problem types and modes of expla-
nation found in this text are due to their insights. I also want to thank my current
department at Truman State University for their encouragement as I completed
this text.

xi
Visit https://textbookfull.com
now to explore a rich
collection of eBooks, textbook
and enjoy exciting offers!
Contents

1 The Digital Electronic Computer . . . . . . . . . . . . . . . . . . . . . . . . . . 1


Digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Electronic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Computer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2 Boolean Algebra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Digital Logic Design Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
The Mathematics of Boolean Algebra . . . . . . . . . . . . . . . . . . . . . . . . 16
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3 Logic Function Synthesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Normal Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Minterms and Maxterms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Don’t Cares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Day of the Week Detector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Building a Normal Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4 Basic Logic Function Minimization . . . . . . . . . . . . . . . . . . . . . . . . . 37
Factoring the Sum of Products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
A Visual Aid to Factoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5- and 6-variable K-maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Working with the Product of Sums . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5 Advanced Logic Function Minimization . . . . . . . . . . . . . . . . . . . . . 53
Variable Entry K-maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Implicants and Implicates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
The Quine-McCluskey Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

xiii
xiv Contents

6 Logic Gates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Programmable Logic Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
XOR, NAND, and NOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Bitwise Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
CMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Electronic Properties of Gates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
7 Unsigned Arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Unsigned Binary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Full Adder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
High-Speed Adders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Subtraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Multiplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Fractions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Hexadecimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
8 Signed Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Sign-Magnitude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Two’s Complement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Building an Adder/Subtractor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Sign Extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Signed Multiplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Ten’s Complement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
9 Other Digital Representations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Binary Coded Decimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Decimal Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Gray Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Alphanumeric Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Fixed Point Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Floating-Point Representations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Designing an Encoding: Days of the Year . . . . . . . . . . . . . . . . . . . . . 131
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
10 Encoding Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Instructions and Datapaths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Variables and Assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Conditionals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Digital Representation of Instructions . . . . . . . . . . . . . . . . . . . . . . . . 143
Hex Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Contents xv

11 Sequential Logic Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149


The SR Latch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Building a Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Other Flip Flops: D, JK, and T . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
The State Machine Design Process . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
12 Multiplexers and Comparators . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
13 Decoders and Register Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Register File Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Multi-port Register File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Decoder Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Implementing Logic Functions with Decoders . . . . . . . . . . . . . . . . . . 187
Encoders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
14 Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Binary Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Mod n Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Unit-Distance Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Ring Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
15 Datapaths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Example: Guessing Game . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Example: Minimum Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Example: Detection Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Example: GCD Calculator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Example: Fibonacci Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
16 Basic Computer Datapath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
The Instruction Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
The Fetch Stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
The Decode Stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Immediate Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
Direct Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Indirect Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
Displacement Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
The Execute Stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
xvi Contents

17 State Machines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245


Sequence Detector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
Detecting Two Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
Other Flip Flops for State Memory . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
18 Datapath Controllers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
States and Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
Example: Greatest Common Divisor . . . . . . . . . . . . . . . . . . . . . . . . . 266
Example: Compute Factorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
Example: Fibonacci Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
19 State Machine Theory and Optimization . . . . . . . . . . . . . . . . . . . . 289
Formal Languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
State Reduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
State Assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
20 Instruction Processor Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
What Is a Computer? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Design an Instruction Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
Data Movement Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Arithmetic and Logic Operations . . . . . . . . . . . . . . . . . . . . . . . . . . 306
Program Control Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
Instruction Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
The Instruction Cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
Datapath Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
Control Unit Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
Chapter 1
The Digital Electronic Computer

Welcome to the study of Computing!


Computers are the transformative technology of our times. In addition to
powering our phones, music players, and laptops, they control the operation of
our cars, maintain the safety and efficiency of power plants, enable low-cost
medical equipment to save lives in remote locations, power GPS devices, and run
nearly all home appliances and electronic toys of every type.
This book will introduce the core concepts and methods associated with the
design and physical construction of digital electronic computers.
Working through this book you will learn how to build a digital electronic
computer from the ground up. This includes understanding the digital abstraction,
seeing how we use electronics to implement our digital system, what digital circuit
elements are important for computers, learning how we relate our high-level
programming constructs and needs to the low systems level, and then bringing it
all together with an overview of basic computer organization.
Specific topics include number systems, Boolean algebra, truth tables, computer
arithmetic, logic gates, CMOS, flip-flops, instruction sets, adders, decoders, multi-
plexers, comparators, finite state machines, and datapath/controller systems.
Those with interest in electrical engineering can use this course of study as a
starting point for investigations into digital electronics while computer scientists
will see how their use of computers is affected by the underlying design of the
machines. Computer engineers will appreciate the entirety of the book as it serves
as an overall introduction to their field in all its diversity.
We conceive of a computer as seen in Fig. 1.1.
We first design the digital logic elements, from the transistor level on up, to build
the datapath component of the computer. It is in this component where the core
“computation” activity that we most associated with instruction processors occurs.
The control unit is heavily discussed in the context of state machines as an
algorithm level topic. Later chapters in the text walk through the construction of
this important component. The memory unit is covered only indirectly; it’s much
more of an intense electrical engineering topic to get into the deep details of how

© Springer International Publishing AG 2017 1


J. Seiffertt, Digital Logic for Computing, DOI 10.1007/978-3-319-56839-3_1
2 1 The Digital Electronic Computer

Fig. 1.1 Block diagram for


computer system Memory
Unit

Status signals
Control Datapath
Unit
Control signals

computer memory is constructed today. It suffices for our discussion to think of it as


a store of values accessed via labels called addresses. It is from that context that we
operate when viewing the entire computer block diagram as a functioning whole.
Advanced courses on computer architecture and organization will get into the
details of how the interface between memory and the CPU proper (understood to
be the control unit-datapath blocks taken together) is handled. Discussions of cache
memory and its associated tradeoffs and optimizations lay beyond the scope of the
current work.
While the methods and tools of digital logic design are widely applied to many
important electronics applications, and many of these are touched upon herein, we
do use the computer as the overarching motivating example in this text.
Fundamental to our approach is looking at everything from the perspective of the
abstract realities known as algorithms. At the heart of computing science is found
the study of the properties of algorithms, and it can be argued the goal of computer
engineering is the deployment and application of these algorithms. Therefore, we
look at the development of digital logic circuits as the hardware implementation of
algorithms. Our approach to motivating individual components such as multi-
plexers and decoders is through the lense of how they contribute to the overall
workings of the algorithms. Hence, the title of the book: Digital Logic for Com-
puting. We’re focusing on taking the algorithms from the world of code to the world
of metal.

Digital

We can physically compute with analog values in a number of ways. We can pour
water from two buckets into a third: the water now present represents the sum of the
previous two values. We can attach two wires together and see the total voltage
being the sum of the voltages of each. While it may seem ideal to compute in this
fashion because we can represent any number and perform calculations to arbitrary
precisions, what happens in practice is that we lose tiny bits here and there. A few
drops of water fall from a bucket and the wire degrades a bit of the voltage.
Digital 3

Fig. 1.2 High-low 5


digitized transmission
High
2.5

Low
0
D1 D2

All together, this interference, this noise, makes precise computation difficult. It is
for this reason that we consider digital systems in this book.
The word digital derives from the Latin digitum, which means finger. It was
originally used to mean ten: this is why we have digits in our base-10 number
system. In fact, early precursors to modern computers such as Charles Baggage’s
Difference Engine, were digital in this sense: they operated mechanically using
base-10 numbers. We’re going to broaden the sense of the word and refer to a
digital system as one whose values are digitized, that is, whose values are broken
into discrete chunks rather than being capable of representing every possible
number.
Due to the limitations of our underlying technologies, we’re going to digitize to
the maximum extent: we will use only two values within a given range of possible
values. Consider the graph in Fig. 1.2.
We divide our infinity of values from 0 to 5 into two and we call them High and
Low. Device D1 is transmitting a signal to device D2. In order to communicate
effectively, D1 must be assured that when it sends a signal that D2 will be able to
properly interpret it as either High or Low. We see that this system has some
resistance to noise: a signal of 4.5, for example, subject to a shock of .75 might end
up transmitting as 3.75. But that is still OK because it’s in the High range and D2
still interprets it as a High signal. If we were pouring 4.5 ounces of water from one
cup to another and lost .75 ounces along the way we’d have a wildly inaccurate
sum. But in a digital system we’re fine and the computation is not affected by the
noise.
But, what if we transmit a High signal that’s less strong, say 3.0? It’s still within
the High range so our device D1 is satisfied. What if it is hit with a disruption of .75?
Now it’s transmitting a 2.25 signal which D2 interprets as being in the Low range.
We now have a breakdown in communication and our digital system won’t func-
tion. To fix this we need to force the High signals to be really high and the low
signals to be really low. We need to ensure separation between our two values.
Consider the graph shown in Fig. 1.3. Now instead of breaking the entire range
of values 0 through 5 into two categories, we have that High signals are in the range
VH to 5 and low signals in the range 0 to VL while any signal in the range VL to VH
is in the forbidden zone and is therefore not interpreted. Provided we can get VH
close to 5 and VL close to 0, we’ve done a good job here of not confusing High and
Low signals. If we have our 3.0 signal with the .75 shock, so long as 2.25 > VL we
4 1 The Digital Electronic Computer

Fig. 1.3 Using the 5


forbidden zone to help High
digitize transmissions VH

Forbidden Zone
VL

Low
0
D1 D2

Fig. 1.4 Noise margins for 5


digitized transmissions
VOH NMH
Forbidden Zone VIH
VIL
NML
VOL

D1 D2

now can be confident that D2 will not misinterpret our noisy transmission. Instead,
D2 picks up a signal in the forbidden zone. While that’s not ideal, it’s a better case
result than D2 not even being aware a problem exists.
But, we’re not done! We can improve yet upon this configuration. We still have
an issue if we’re sending a signal that is close to VH or VL because just a small
amount of noise can disrupt it and send it into the forbidden zone. What we’d like is
for D2 to recognize signals close to these breakpoints that fall just a little bit into the
forbidden zone. This is demonstrated in Fig. 1.4.
If we make the forbidden zone smaller for the input values then the receiving
device can better understand what the transmitting device is sending even through a
bit of noise. We can now talk about VOH and VOL as the output high and low value
cutoffs and VIH and VIL as the input high and low value cutoffs. The high and low
noise margins NMH and NML can be defined:

NMH ¼ V OH  V IH
NML ¼ V IL  V OL

It’s not quite as simple to digitize our systems as we may think at first. Just
because the devices “are all 1’s and 0’s” doesn’t mean their internals are easy to
design. There are a lot of moving pieces here.
We speak of Logic Families as being devices that can work together. That is,
digital devices within a logic family have their high and low value cutoffs aligned
so that they are always assured accurate transmission. We can also look into
Electronic 5

Table 1.1 TTL and SMOS VIL VIH VOL VOH


logic values
TTL 0.80 2.00 0.40 2.40
CMOS 1.35 3.15 0.33 3.84

intra-family communication. Consider Table 1.1 which gives the details for two
logic families, TTL and CMOS.
We can ask whether a TTL device can transmit to a CMOS device? The VOL of
TTL is .40 which is less than the VIL of CMOS at 1.15 Therefore, we have a NML
in this situation of 1.15–0.40 ¼ 0.85. Looking at the high side, however, we see that
TTL’s VOH is 2.40 while CMOS’s VIH is 3.15. This means the TTL device can
transmit any value greater than 2.40, say 2.75, while the CMOS device won’t
recognize any input less than 3.15 as a high signal. Therefore, communication
fails in this case. A TTL device cannot transmit reliably to a CMOS device.
What about the opposite case? Can a CMOS device transmit to TTL? Well, on
the Low side the CMOS device has a VOL of 0.33 which is less than TTL’s VIL of
0.80 for a NML 0f 0.800.33 ¼ 0.47 which is positive and therefore compatible.
On the High side, we have CMOS with a VOH of 3.84 and TTL with a VIH of 2.00.
This gives us a NMH of 3.842.00 ¼ 1.84 which is fine. Therefore, we can indeed
have a CMOS device transmit to a TTL device.
Be sure to carefully go through these computations so you have the idea of noise
margins, High, and Low signals clear. The entirety of digital design rests upon this
foundation, so it’s a good idea to get to where it makes sense to you.
We want our digital devices to be able to effectively communicate. That is, when
a device sends a logic-1 (high voltage) we want the receiving device to read a logic-
1 and when a device sends a logic-0 (low voltage) we want the receiving device to
read a logic-0.
To this end, devices have tolerances for the voltage levels they interpret as logic-
1 and logic-0 when both sending and receiving signals. In order to build devices that
are as resistant to noise as possible, we have different tolerances for output and
input signals. The values VOH and VOL tell us the cutoff voltages for high and low
output and the values VIH and VIL tell us the cutoff voltages for high and low inputs.
A device can drive another if its VOH is less than the VIH of the receiving device
and if its VOH is less than the VIH of the receiver.
A device can receive signals from another if its VIH is less than the VOH of the
driver and if its VIL is greater than the VOL of the driver.
If devices of two families can both drive and receive signals from each other,
then the families are said to be compatible.

Electronic

We can implement digital systems using a variety of underlying technologies. The


basic electronic element we’re going to use to design our systems is the transistor,
a device that will either block or permit a signal to pass. We’ll interpret blocking the
6 1 The Digital Electronic Computer

Fig. 1.5 A MOSFET gate


Source drain

n n

SiO2

Fig. 1.6 nFets and pFets nFet pFet

strong 0 strong 1
degraded 1 degraded 0

signal as our Low digital value and allowing it to pass as our High digital value.
In particular, the MOSFET: metal oxide semiconductor field effect transistor.
In Fig. 1.5 we see a diagram outlining its construction.
The electric signal moves from the source side out the drain side if the voltage
on the gate is high enough. Chemically, to effect this transition we use two
materials, called n and p, each doped with specific metals (n material is doped
with group II metals and p with group III metals.) We end up with two kinds of
MOSFETS, depending on where we use the n and p materials. In the diagram, we
have an nFET device. If we swap the n and p materials, we would have a pFET
device.
It turns out that nFET and pFET devices have different characteristics. Transis-
tors in the nFET category transmit a Low signal very well but have a hard time
passing a High signal. They end up pulling the High voltage lower, and sometimes
this is more noise than the device can handle and we end up in the forbidden zone.
The pFET devices are the opposite: they are just fine for passing High voltage
signals but pull Low voltages up and make them harder to read.
In technical language, we say the nFET passes a degraded 1 and a strong
0 while the pFET passes a degraded 0 and a strong 1. (In later chapter’s we’ll call
the High voltage a logic-1 and the Low voltage a logic-0.)
The diagram in Fig. 1.6 shows the circuit symbol we use for nFETs and pFETS
as well as summarizes the characteristics relevant for our digital design needs.
In Chap. 6, we’ll get into great detail about how we use these transistors to build
the components necessary to implementing algorithms with our digital logic
Visit https://textbookfull.com
now to explore a rich
collection of eBooks, textbook
and enjoy exciting offers!
Computer 7

elements. For this introductory chapter, it’s sufficient to leave off here with the idea
of underlying technology merely described at a low level.

Computer

In this book we will study the design, operation, and capabilities of the digital
electronic computer, the most widely used commercial embodiment of the idea of
an instruction processor.
But what do we mean by the word computer? Students on the first day of class
often respond to the question “What is a computer?” with a variation on “something
that computes!” The natural follow-up is then “ok, so what is a computation?” That
one is harder to answer. It’s common for non-CS people to think of computation as
“coming up with fancy ways to calculate the square root of a number” and other
related numerical investigations. And while we certainly want to include the
exploration of number within our understanding of computation, we don’t want to
commit to that being the end of the story. Because, more generally, and as stated in
the beginnings of the field of computing science by Alan Turing and other pioneers,
when we think of computations in a true computer science sense we mean not the
processing of numbers only but the processing of language taken more generally.
That’s right! Computations are considered the processing of language! And, this
dovetails nicely with the approach taken in looking at digital logic from the vantage
point of algorithms broadly understood. Because, at the end of the day, some of the
most important things we can say about algorithms involve their expressibilty as
language. The code we write to configure instruction processors to do great things
is, after all, language, and we consider the computer itself as a digital electronic
circuit that responds to this language.
So, the language, more specifically the idea of programmability which involves
the processing of not just one sequence from a language but rather the ability to
handle any expression of a particular language, is central to our understanding of
what a computer is. While we may take ancient devices such as the astrolabe or
abacus as computer in the sense that they do indeed take inputs and produce outputs
based on some internal mechanized computation, they are not programmable so
they do not qualify as a computer.
We can go a step further and look at digital electronic circuits, such as those in a
simple hand calculator, that may excel at computations and, as we’ll study as we
proceed in this text, are indeed the implementation of algorithms expressed in
language. But, these are also not computers because they are not programmable!
You cannot change what they do by writing a new algorithm. These are called
application specific integrated circuits (ASICS) and are the focus of electrical
engineers when they study digital design principles. We’ll certainly talk about
them, and Chap. 18 in particular develops these in great detail, but the text caps
with a chapter on the design of an instruction processor and throughout we are
concerned with the relationship between digital logic and programmability.
8 1 The Digital Electronic Computer

Exercises

1.1 Research the Antikethera mechanism. It is sometimes referred to as the first


computer. It’s certainly not electronic, but is it digital? Also, does it satisfy our
understanding of computer as described in this chapter and pursued in this text?
1.2 In this course we focus on digital electronic computers. However, it is possible
to have computers that are neither digital nor electronic. For this problem,
research historical computers from the nineteenth or twentieth century that are
analog and mechanical. Write a few sentences about each and indicate the
source of your information.
1.3 Consider the following logic families:

VDD VIL VIH VOL VOH


TTL 5 .8 2.0 .4 2.4
CMOS 5 1.35 3.15 .33 3.84
LVTTL 3.3 .8 2.0 .4 2.4
LVCMOS 3.3 .9 1.8 .36 2.7

Answer each of the following questions YES or NO and, if NO, give a reason.
(a) Can a TTL device drive a CMOS device?
(b) Can a TTL device drive a LVTTL device?
(c) Can a TTL device drive a LVCMOS device?
(d) Can a CMOS device drive a TTL device?
(e) Can a CMOS device drive a LVTTL device?
(f) Can a CMOS device drive a LVCMOS device?
(g) Can a LVTTL device drive a TTL device?
(h) Can a LVTTL device drive a CMOS device?
(i) Can a LVTTL device drive a LVCMOS device?
(j) Can a LVCMOS device drive a TTL device?
(k) Can a LVCMOS device drive a CMOS device?
(l) Can a LVCMOS device drive a LVTTL device?
(m) What does “LV” stand for in the LVTTL and LVCMOS families?

1.4 Consider the following logic families:

Family VIL VIH VOL VOH


A 1.0 4.0 0.5 4.5
B 2.0 4.0 1.5 3.5
C 0.5 3.5 0.25 4.0
D 1.5 4.5 1.25 4.75

Which combinations of families are compatible?


Exercises 9

1.5 Consider the following logic families:

Family VIL VIH VOL VOH


A 1.0 4.0 0.5 4.5
B 2.0 4.0 1.5 3.5

(a) Can a device from family A drive a device from family B? Why or why
not?
(b) Can a device from family B drive a device from family A? Why or why
not?

1.6 Suppose a logic family has a high noise margin of NMH ¼ .3. If VIH ¼ 4.5, what
must VOH be?
1.7 There are many ways to design a device which will sequentially execute
instructions. The mathematician John von Neumann was a pioneer in the
development of digital electronic computers, consulting on the construction
of a computer called the EDVAC in the 1940’s. His early writings on computer
design and organization are still relevant today, as most computers are built
using the basic principles he laid out. Research the concept of von Neumann
architecture and write a few sentences about its features.
1.8 Is a sun dial a computer? It takes an input, sunlight, and computes an output,
time of day? So, is it a computer? This is a bit of a jokey question, but also
highlights the importance of the key elements we want in our definition of a
computer. We’re not particularly interested in exploring what a pole stuck in
the ground can do.
Chapter 2
Boolean Algebra

We need a language to discuss the design of the computer. Once upon a time,
humans looked to the stars and developed what we know as Calculus to describe
their motion. It turned out that algebra and calculus based on the real numbers work
quite well to describe systems involving energy, motion, time, and space. The real
numbers are a useful model for those quantities. Within our digital computer,
however, we only have access to two values, logic-1 and logic-0. We don’t have
an infinity of values over which our functions may vary. Therefore, the early
pioneers of computing found themselves faced with a dilemma. They could not
use the classical mathematics they knew and loved; rather, they faced the task of
developing a new mathematics capable of working with only two values.
These engineers were not amused. Developing new mathematics is for mathe-
maticians, they reasoned. So, they did the next best thing. They looked around at
what the mathematicians were doing and instead of crafting a new computer design
mathematics from scratch they happened upon something close to what they
wanted, and they stole it. (OK, they repurposed it.)
It turned out that a nineteenth century schoolteacher and philosopher named
George Boole had worked out a mathematics for how people (or at least how
mathematicians) reasoned through formal problems. Instead of representing quan-
tities such as velocity and mass and curvature, the variables in Boole’s mathematics
represented English statements. Instead of addition, subtraction, and multiplication,
Boole’s mathematics combined variables in the logical operations of and, or, and
not. So far, this isn’t really what the computer engineers were looking for, but the
last key piece of what Boole had developed sealed the deal: all the variables took on
only one of two values! That was it! The engineers needed a two-valued mathe-
matics, and Boole had one. Sure, Boole called the values True and False and the
engineers wanted to call them logic-1 and logic-0, but it was close enough (engi-
neers are all about “close enough”.)
So, here we are: Boolean Algebra is the name given to the mathematics that is
used to describe the behavior of all digital systems, computers included. Let’s check
it out.

© Springer International Publishing AG 2017 11


J. Seiffertt, Digital Logic for Computing, DOI 10.1007/978-3-319-56839-3_2
12 2 Boolean Algebra

Digital Logic Design Process

To get a sense of how Boolean Algebra differs from the algebra and calculus you’re
already familiar with, let’s consider an example. Suppose we have a cabin by a river
and staff it with a robotic sentry to keep out bears and ewoks. The house is equipped
with window, door, and chimney sensors which detect intrusion as well as an
infrared sensor which can determine size, and the sentry can sound a local alarm
or take action against the intruder.
The schematic of the setup can be seen in Fig. 2.1.
We call the door sensor D, the chimney sensor C, the window sensors w0, w1, w2,
and w3 (in the diagram w3 is overlooking the river), and the infrared sensor we’ll
call R. Let’s give names to the sentry’s actions, too: A will be sound the alarm and E
will be to engage the intruder.
Now, let’s see how Boolean Algebra can help us specify how this system works.
First, we would like the sentry to sound an alarm if any of the door or window
sensors activate. We can write this as an equation:

A ¼ D or w0 or w1 or w2 or w3

Yes, that is a Boolean Algebra equation because the logical or is considered a


mathematical operator. The logicians who work with this use the symbol _ to
indicate logical or and would write this as A ¼ D _ w0 _ w1 _ w2 _ w3. While that’s
not so bad, we’d like to avoid new symbols all together if we can. So, in the Boolean

W0 W1
W2

Fig. 2.1 Boolean Algebra Schematic: D is the door sensor, W0, W1, W2 are the window sensors,
R is the infrared sensor, and C is the chimney sensor
Random documents with unrelated
content Scribd suggests to you:
“Ha!” said the trooper. “Even a little armor is a good thing, if rightly
placed.”
The horseshoe was “a detail.”
CROQUETTES

GENERAL DIRECTIONS
(Which the housewife is particularly requested to read)
Two things are essential to the excellence of croquettes. The mixture
composing them must not be too stiff. The fat in which they are
cooked must be boiling when they go in, and deep enough to float
them. If these conditions are neglected, you will have a pasty, sticky
compound, soaked with grease and misshapen, perhaps scorched on
the under side. The hot fat should form a crust instantly which
prevents the fat from touching the interior of the croquette.
Always make out croquettes at least a couple of hours before they
are to be cooked; roll in egg, then in fine crumbs, or in cracker-dust;
arrange upon a floured dish, not touching one another, and leave
upon ice, or in a very cold place to stiffen.

Oyster croquettes

Cook twenty-five oysters in their liquor until they just begin to ruffle,
remove from the fire, drain (reserving half a cupful of the liquor),
and chop fine. Stir together over the fire two tablespoonfuls of flour
and two of butter and pour on them a half-cupful of cream with a
pinch of soda in it, and the half-cupful of oyster liquor. When beaten
to a smooth sauce add slowly the beaten yolk of two eggs, then the
chopped oysters, salt and pepper and a pinch of grated nutmeg.
Remove at once from the fire and set aside to cool. When very cold
form into croquettes.

Lobster croquettes

(Contributed)
Two cupfuls of minced lobster seasoned well with paprika, salt and a
little mace. One-fourth the quantity of bread-crumbs, i. e. about half
a cupful. Four tablespoonfuls of cream, heated (with a pinch of
soda), and thickened with a teaspoonful of butter rolled in flour.
Make a thick paste of the mixture; let it get stiff and cold; make into
croquettes, roll in egg and cracker-crumbs; set on the ice for an
hour; roll again in cracker-dust and fry in deep, hot cottolene or
other fat, which has been heated slowly. Drain, garnish with lemon
and parsley and serve.

Chicken croquettes

Cook together in a saucepan a tablespoonful of flour and one of


butter until they are blended. Pour upon this white roux a cupful of
rich milk, and when you have a smooth white sauce stir in a cupful
and a half of minced boiled or roast chicken. Season to taste with
celery salt, white pepper and a dash of nutmeg. Cook until well
heated, then add the yolks of two eggs and cook for just two
minutes before removing from the fire. Set aside until cold and stiff;
mold into croquettes, roll in cracker-dust, in beaten egg and yet
again in cracker-dust, and set on the ice for two hours before frying.

Turkey croquettes
Make in the same way, but mince more finely, as the meat is firmer
and harder.

Veal croquettes

Make a forcemeat of two cupfuls of minced veal, two tablespoonfuls


of bread-crumbs, one scant teaspoonful of salt, one-quarter
teaspoonful of paprika, one-eighth teaspoonful of mace, one
teaspoonful of onion juice, a tablespoonful of butter and the yolks of
two raw eggs. Stir in a saucepan over the fire until the mixture is
heated through, and set aside to cool. When cool, make up into
croquettes, dip in beaten egg, roll in egg and fine crumbs and fry.
Serve with tomato sauce.

Veal and spaghetti croquettes

Mix together a cupful, each, of cold cooked veal and of cold boiled
spaghetti, both minced fine. Season with salt, paprika and onion
juice. Stir into a cupful of drawn butter, well thickened; cook
together in a saucepan until smoking hot, when add the yolk of a
raw egg and a tablespoonful of Parmesan cheese (powdered). Form
into croquettes, dip into beaten egg, roll in breadcrumbs and fry in
smoking hot cottolene or other fat, or dripping until brown. Serve
with tomato sauce.

Chicken and macaroni croquettes

Make as directed in the foregoing recipe, omitting the cheese. A nice


sauce for either of these dishes is stewed and strained tomatoes,
thickened with a tablespoonful of butter rolled in flour and cooked
one minute before a large tablespoonful of grated Parmesan cheese
is stirred in.

Rice croquettes
Beat an egg light and stir it into a cupful of boiled rice; add a
teaspoonful, each, of sugar and melted butter, salt to taste, add
enough cream to form the mixture into croquettes of the right
consistency. Dip each croquette into beaten egg, then in cracker-
dust and set all for two hours in a cold place before frying in boiling
cottolene, or other fat, to a golden brown.

Croquettes of brains

Calf’s, or lamb’s or pig’s brains may be used for this dish.


Wash the brains in cold water, put them over the fire in boiling
water, cook for two minutes, drain and lay in ice-cold water until cold
and stiff.
Beat them into a paste. Have ready some thick drawn butter and
beat into the brains until the paste is smooth and stiff enough to
handle; add, then, flour to stiffen it yet more; season with pepper,
salt and a little very finely minced parsley; flour your hands, make
the paste into croquettes; roll in egg and cracker-crumbs; set on the
ice for two hours—or more—and fry in deep boiling cottolene or
other fat. Drain and serve.

Veal and ham croquettes

Mince enough cold veal to make a cupful when chopped; mix with it
half as much cold boiled ham and one-fourth as much fine crumbs.
Rub the yolk of a hard-boiled egg through a colander or vegetable
press, and add to the mixture. Season with pepper and onion juice
and moisten with thickened gravy or with drawn butter. Lastly, whip
in a raw egg to bind the mixture and make into croquettes. Roll in
egg and in crumbs, set aside to form and stiffen, and fry.

Potato croquettes
Work to a paste two cupfuls of mashed potatoes and a tablespoonful
of melted butter. Season with salt and pepper and beat light with a
raw egg. Form into balls or croquettes; roll in egg and then in
cracker-dust; let them stand on ice until stiff and fry in deep, boiling
cottolene or other fat. Drain off every drop of fat and serve hot.

Hominy croquettes

Make precisely as you would potato croquettes, beating hard until


the mixture is entirely free from lumps, hominy being more adhesive
and cohesive than potato.

Fish and potato croquettes

One cupful of cold cooked fish picked to pieces with a fork, and one-
third the quantity of mashed potato worked to a stiff cream with a
little drawn butter and seasoned with pepper, salt and a dash of
Worcestershire sauce. Make into croquettes; roll in egg, then in
cracker-crumbs; let them get cold and firm and fry in deep, hot
cottolene or other fat.

Beef croquettes

Two cups of minced cold roast beef or steak—(never corned beef).


One-quarter as much mashed potato. Season well with pepper, salt
and onion juice, with a little very finely minced parsley. Enough
gravy to moisten the mixture and a raw egg to bind it.
Work together well, mold into cones, cover with egg and cracker-
dust; let them get chilled for two hours and fry in deep, boiling
cottolene or other fat, or dripping.

Potato and nut croquettes


Blanch the kernels of two dozen English walnuts, or twice that
number of pecans, by pouring scalding water over them and leaving
them in it until the skins crack and curl. Strip them bare, spread on a
dish, sprinkle lightly with celery salt and paprika, and let them get
perfectly cold. When crisp, pound in a mortar, or chop and crush
fine. Mix with them two cupfuls of mashed potatoes, into which you
have worked a little cream, butter and salt while hot. Beat into the
mixture the raw yolk of an egg. Mold into croquettes; set aside until
stiff; roll in egg and then in cracker-crumbs, and fry. Dry in a hot
colander and serve at once.

Celery croquettes

Cook together a tablespoonful of flour and one of butter, and when


they bubble pour upon them a cupful of milk. When this is thick and
free from lumps pour it gradually upon the beaten yolks of two eggs.
Now add a cupful of celery cut (not chopped) into tiny bits, season
with celery salt and white pepper and turn out to cool. When cold
form with floured hands into small croquettes, roll these in cracker-
dust, then in beaten egg, again in cracker-dust and set aside for an
hour before frying in deep, boiling cottolene or other fat, always
brought gradually to the boil.

Oyster-plant croquettes

(Contributed)
Boil, mash and season the oyster-plant, mold into shapes, sprinkle
with bread-crumbs, dip in egg and again in crumbs and fry in hot
fat.

Sweetbread croquettes

(Contributed)
Take four sweetbreads, removing pipes and membranes soak for an
hour in cold salted water. Plunge into boiling salted water to which
has been added a tablespoonful of vinegar; cook twenty minutes.
Drop again into cold water to harden. Chop them very fine and
season with salt and pepper and a teaspoonful of grated onion. Add
the beaten yolks of three eggs, a tablespoonful of butter, one-half
cupful of cream and enough fine bread-crumbs to make soft enough
to roll into balls. Dip in egg and then in bread-crumbs and fry in hot
fat to a nice brown. Take up and drain on brown paper. Serve hot
with sliced lemon.

Mushroom croquettes

Mince fresh mushrooms fine with a keen blade; season with pepper
and salt; add a tablespoonful of fine crumbs to each cupful of the
chopped mushrooms; work in a little melted butter and the beaten
yolk of an egg. When the mixture is cold form into croquettes and
set on the ice until you are ready to cook them. Roll in egg and
cracker crumbs and fry in deep fat.
WITH THE CASSEROLE
The French name “casserole” has a certain amount of terror for the
American housewife. The foreign word startles her and awakens
visions of cooking as done by a Parisian chef, or by one who has
made the culinary art his profession. She, a plain, every-day
housekeeper, would not dare aspire to the use of a casserole.
And yet the casserole itself is no more appalling than a saucepan. It
is simply a covered dish, made of fireproof pottery, which will stand
the heat of the oven or the top of the range. And the dainty cooked
in this dish is “casserole” of chicken, rice, etc., as the case may be.
Like many another object of dread this, when once known, is
converted into a friend.

Casserole of chicken

Clean and joint a tender spring chicken. Put into a frying-pan three
tablespoonfuls of butter and fry in this a small onion and a carrot,
both cut into tiny dice. When these vegetables are lightly browned,
turn into the casserole, add to them two cupfuls of clear soup stock,
in which three bay leaves and a little thyme have been boiled and
then removed. In this consommé lay the jointed chicken, put the
closely-fitting cover on the casserole and set it in a steady oven. It
should cook for an hour. At the end of this time stir into the chicken
a dessertspoonful of tomato catsup. Recover and cook for half an
hour longer. Then add two dozen small French mushrooms which
have been previously stewed for ten minutes, lastly, a glass of
sherry. Season the whole to taste with pepper and salt and leave
uncovered in the oven long enough for the chicken to brown. Fresh
mushrooms are, of course, better than canned when you can get
them.
Casserole of rice and liver

Boil a cupful of rice in a quart of water until reduced to a soft paste.


Mash this rice paste smooth with two tablespoonfuls of butter and
salt and pepper to taste. Line a well-greased casserole with the
mixture, pressing the paste firmly against bottom and sides, and
leaving a large hollow in the center. Set in a cold place until stiff and
firm. Meanwhile boil a pound of lamb’s liver, drain and chop fine.
Heat in a saucepan two cupfuls of soup stock, season with a
teaspoonful of kitchen bouquet, thicken with browned flour and stir
into this sauce the minced liver. Fill the hollow in the center of the
rice with the liver mixture, sprinkle with breadcrumbs and set in the
oven to brown.

Casserole of potato and cheese

Boil a sufficient number of potatoes to make three cupfuls when


mashed. Return the mashed potatoes to a saucepan and stir over
the fire, as you add slowly the beaten yolks of three eggs. When the
smoking mass is hot and stiff, turn it into a greased casserole and
press firmly against the sides, leaving a hollow in the middle about
the size of a kitchen teacup. Brush the top and sides of the potato
with the white of an egg and set in the oven until glazed and firm.
Meanwhile, heat in a frying-pan or chafing-dish six tablespoonfuls of
grated Parmesan cheese in a gill of milk and when hot add to it the
yolk of an egg, a pinch of salt and a dash of paprika. When this
cheese-sauce is thick and hot, remove the casserole from the oven,
fill the hollow in the middle of the potato with the cheese mixture,
sprinkle cracker-crumbs over the top of the potato and cheese and
return to the oven to brown. Serve in the casserole and at once.

Casserole of lamb or mutton chops

Trim the chops neatly, removing every bit of fat and skin. In the
bottom of the casserole put a layer of pared and shredded tomatoes;
sprinkle with salt, pepper, a little sugar and a teaspoonful of onion
juice. Lay three or four chops upon the tomatoes; season them with
salt and pepper; arrange about them small pellets of parboiled
potato, cut with a gouge, after the manner of Parisian potatoes,—
also a dozen or so champignons (canned mushrooms). Now, more
tomato, seasoned as before, then more chops, potatoes and
mushrooms, until all are used up in this order. The upper layer
should be tomatoes. Pour in a generous cupful of stock—bouillon,
consommé, mutton broth, or whatever you have; cover and cook
steadily for two hours if the casserole be large.
When the meat is tender to the trial-fork, pour off the gravy carefully
into a saucepan, thicken with browned flour; add the juice of half a
lemon, a teaspoonful of kitchen bouquet and a glass of brown
sherry. Pour back over the contents of the casserole, set in the oven
for three minutes, covered, and serve in the dish.
An elegant dish can be made of unpromising chops by following
these directions.

Mock casseroles of chicken

Select large, smooth, tart apples of good flavor and of uniform size.
Remove core with corer. Mince cold chicken fine, season with salt, a
dash of cayenne, pinch of powdered thyme, one-half cupful of
bread-crumbs, moistened with three or four teaspoonfuls of sweet
cream. Fill each apple and bake in oven. Serve hot or cold with
mayonnaise as a salad.

Creamed chicken

Carve enough meat from a cold roast chicken to make a pint when
cut into small dice. Cook together in a saucepan a tablespoonful,
each, of butter and flour; when they are blended pour upon them a
cup of white stock, and when this is thick, a cup of milk. Stir to a
smooth sauce and add the minced chicken. Season to taste; cook
until the meat is very hot and serve.

Creamed chicken and macaroni

Cut cold boiled or roast chicken into small dice of uniform size, and
into half-inch lengths half the quantity of cold, cooked macaroni.
Make a good white sauce, season highly with paprika, salt and a
suspicion of onion juice. Beat two eggs light and stir into them four
tablespoonfuls of cream, heated, with a pinch of soda. Mix well with
the chicken and spaghetti; put over the fire in a frying-pan, or broad
saucepan, and stir and toss until smoking hot. Serve in a deep dish.

Scallops of turkey or chicken

Chop the meat fine and to two cupfuls add a tablespoonful of butter,
two tablespoonfuls of bread-crumbs, half a cupful of boiling water,
salt and pepper to taste. Put these all into a saucepan and stir while
heating. Lastly, put in two raw eggs, beaten light, and take from the
fire. Fill baking cups two-thirds full of the mixture, set in a pan of
boiling water and bake about twenty-five minutes. Turn out carefully
into a heated dish and pour white sauce around them.

Philadelphia scrapple

(Contributed)
Take a cleaned pig’s head and boil until the flesh slips easily from the
bones. Remove all the bones and chop fine. Set the liquor in which
the meat was boiled aside until cold, take the cake of fat from the
surface and return the liquor to the fire. When it boils, put in the
chopped meat and season well with pepper and salt. Let it boil again
and thicken with corn-meal as you would in making ordinary corn-
meal mush, by letting it slip slowly through the fingers to prevent
lumps.
Cook an hour, stirring constantly at first, afterward putting back on
the range in a position to boil gently. When done, pour into a long,
spare pan, not too deep, and mold. In cold weather this can be kept
several weeks. Slice and sauté in butter or dripping.
CHEESE DISHES FOR LUNCHEON
A fondu of cheese

Grate cheese and crush broken and dried bread and crusts into fine
crumbs. There should be two cupfuls of these to one of cheese. Wet
the crumbs with two cupfuls of milk in which has been dissolved a
bit of soda no larger than a Lima bean. Beat two eggs light, whites
and yolks apart; whip the yolks into the soaked crumbs with a
tablespoonful of melted butter. Season with salt and a dust of
cayenne, add the frothed whites, deftly and rapidly; bake in a
greased pudding dish in a brisk oven, keeping the dish covered until
the fondu has puffed high and is crusty on top. Then brown lightly
and serve at once, as it soon falls. Pass crackers and pickles with it.

Rice and cheese pudding

Boil a cupful of rice tender; drain dry in a hot colander; set at the
side of the range for ten minutes. Mix, then, with two beaten eggs, a
tablespoonful of butter, pepper and salt to taste. Line a well-greased
dish with this paste, leaving a hollow in the middle. The walls of rice
should be about an inch thick. Set in the hot oven for five minutes.
Have ready a cupful of hot milk; stir into it a tablespoonful of butter
rolled in flour, half a cupful of grated cheese, a generous pinch of
paprika, with salt to taste, and a pinch of baking-soda. Lastly, and
quickly, add a beaten egg. Pour this mixture into the hollowed rice,
sift fine crumbs over it, and set covered in the oven. At the end of
ten minutes uncover and brown slightly. Serve at once, as it falls into
heaviness with standing.

Cheese rice
Boil a cupful of rice in two quarts of water. When tender, turn into a
colander, drain, shake hard and stand at the side of the range ten
minutes to dry. Now stir into the rice, first, a tablespoonful of melted
butter, then four tablespoonfuls of Parmesan cheese and a dash of
cayenne pepper. Serve very hot.

Tomatoes and cheese

Cut the stem-end from large tomatoes, and with a small spoon
scoop out the insides. To two tablespoonfuls of the tomato pulp add
a teaspoonful of bread-crumbs and the same quantity of cheese
crumbled into bits. Season to taste and return this mixture to the
tomatoes. Replace the stem-ends and bake the tomatoes for twenty
minutes in a roasting-pan. Transfer to a hot platter and serve.

Cheese straws

To a half pint of prepared flour add two ounces of grated Parmesan


cheese, moisten with the yolk of an egg and enough milk to make a
paste that can be rolled out. Roll into a thin sheet and cut into
narrow “straws.” Bake to a delicate brown. While they are hot sift
grated cheese over them.

Cheese puffs

In a saucepan of boiling water melt two tablespoonfuls of butter.


When the water and butter are boiling, stir into them four
tablespoonfuls of flour, wet with a little cold water, and four
tablespoonfuls of grated cheese. Cook for three minutes, stirring all
the time. Remove from the fire, and when the mixture is cold add
two eggs and beat hard for fifteen minutes. Line a baking-pan with
greased paper and drop the mixture upon it, a spoonful at a time,
leaving ample space between each puff for the swelling caused by
baking. When puffed up and brown they are done and must be
eaten at once.
Cheese fritters

Make small sandwiches of buttered white bread (from which the


crust has been removed) sliced thin and thin slices of cheese. Press
each sandwich firmly, that the two pieces of bread may not separate
in the cooking, and drop into boiling fat. Fry to a golden brown and
remove to a colander lined with tissue paper.

Egg and cheese timbales

Beat six eggs very light and add to them a gill of warm milk, in
which a pinch of soda has been dissolved, five tablespoonfuls of
grated cheese and a pinch, each, of paprika and salt. Butter small
timbale molds, or pâté pans, fill with the egg mixture and set in a
baking-pan of boiling water until the egg is set. Turn out carefully on
a hot platter and pour hot tomato sauce about them. Serve at once,
as they soon fall. A nice luncheon entrée.

Cheese soufflé

Cook together in a saucepan two tablespoonfuls, each, of butter and


flour, and when they are blended pour upon them a half pint of milk.
Stir to a smooth white sauce and stir into this eight tablespoonfuls of
grated cheese, a saltspoonful of salt, a pinch of baking-soda and a
dash of paprika. Have ready beaten four eggs, white and yolks
separate. Remove the cheese mixture from the fire and gradually
beat into it the yolks of the eggs; last of all, fold in lightly the
stiffened whites. Turn the mixture into a greased pudding-dish and
bake in a steady oven to a golden brown. Serve immediately.

Cheese ramakins

Cut slices of bread very thick, pare off the crusts and press a round
cake-cutter half-way through the middle of each slice. Take out the
crumb enclosed in this circle. Butter the bread and set in the oven
until dry and crisp. Now fill the hollow in each slice with a mixture
made of a tablespoonful of butter, four tablespoonfuls of grated
cheese, a tablespoonful of cream and a little salt and pepper. Set for
five minutes in a hot oven.

Cheese biscuits

Cook together in a small saucepan three tablespoonfuls of butter


and four of flour. When these are blended pour upon them a half
pint of boiling water and stir until thick and smooth; add four
tablespoonfuls of grated cheese, a dash of celery salt and of
cayenne pepper. Cook, stirring constantly, until very thick; remove
from the fire and add, slowly, two beaten eggs. Beat for ten minutes
and drop by the spoonful upon a greased baking-pan. Drop these
cakes so far apart that they will not touch each other. Lay a sheet of
brown paper over the top of the pan and set in a hot oven for ten or
fifteen minutes. When the biscuits are puffed up and seem nearly
done, remove the paper and brown them. Slip a thin-bladed knife
carefully under the biscuits to loosen them from the pan and serve
at once, as they soon fall.

Cheese crackers

On buttered crackers lay slices of American cheese cut thin; arrange


in a baking-pan and set in the oven until the cheese is melted. Serve
hot. A little cayenne sprinkled upon the crackers is liked by many.

Cheese fingers

Cut puff-paste into strips as long and as wide as your middle finger,
sprinkle with a layer of cheese (grated), press upon this another
strip of pastry, sprinkle with more cheese and bake in a quick oven.

Cream cheese
To every quart of rich milk you use allow a pinch of salt and a
teaspoonful of rennet, taking care to buy that which is not flavored
in any way. When it is solid, turn into a bag and let it drip. When it is
well drained so that all the whey is taken from the curd—it may take
more than a day for this, and in that case you must change the bag
at the end of the first twelve hours—take it out, chop the curd fine,
put it into a cheese box and press two hours. Wrap in two or three
folds of tissue paper or in tinfoil, to exclude the air.

Deviled crackers and cheese

Butter thin crackers—water, butter, cream or saltine—dip each lightly


into hot milk and lay in a buttered bake-dish. Sprinkle the layers with
salt and paprika and every other layer with a spatter of French
mustard. Cover each layer with dry, grated cheese. The topmost
layer should be soaked crackers dotted with butter. Finally, pour in a
cup of milk, heated, with a pinch of soda. Cover closely for the first
half-hour of baking, then brown delicately.

Creamed cheese golden buck

This is a good way of using cream cheese which has become a little
dry after the tinfoil has been removed.
Rub three tablespoonfuls of cream cheese to a paste with a
teaspoonful of butter; salt and pepper it and work in a tablespoonful
or two of cream, enough to make it quite soft. Set in a pan of boiling
water over the fire and stir until hot, when add a beaten egg, cook
one minute and spread upon buttered crackers.

Nonpareil Welsh rarebit

Half a pound of soft grated cheese; one gill of ale; two eggs; one
tablespoonful of butter; one teaspoonful of lemon juice and the
same of Worcestershire sauce and half a spoonful of celery salt. A
pinch of cayenne and one of mustard.
Put a broad saucepan over the fire and melt the butter. When it
hisses stir in the cheese, then, still stirring, the dry seasoning. Have
ready the eggs beaten separately and very light, before you stir
them together in a bowl with a few swift strokes. Add three
spoonfuls of the hot mixture to these, rapidly, then pour the eggs
(now warmed by the hot cheese) into the saucepan, never letting
the spoon rest. In one minute more add the sauce and lemon juice
and put upon rounds of hot, buttered toast.
CHEESE AND EGG-ENTREES
CREAMED MACARONI IN PINEAPPLE CHEESE SHELL
STUFFED EGGS
FONDU OF CHEESE
COVERED CHEESE DISH FOR LIMBURGER, ETC.

Macaroni in cheese shell

Break macaroni into two-inch lengths and boil until tender in plenty
of salted water; then drain and blanch by pouring cold water over it.
After it has been blanched cut into pieces not over a half inch long.
Have ready a cheese-shell, one from which the cheese has been
thoroughly scooped out. These shells, which are frequently thrown
away, make a nice receptacle for serving macaroni. Stand the shell
on a piece of waxed paper and this in a baking-pan. Put two
tablespoonfuls of butter and two of flour in the saucepan, mix and
add a pint of milk, stir until boiling, mix in the cold macaroni and stir
over the fire until it is just heated through; add a teaspoonful of salt
and saltspoonful of pepper and pour the mixture into the shell; cover
with a piece of greased paper and leave in the oven fifteen minutes.
Lift the shell carefully, putting it on a round plate and send to the
table. This process imparts a most delicate cheese flavor and makes
a sightly dish. If baked too long, it will become soft and fall apart.
For that reason the macaroni must be hot when poured into the
shell. If the shell is carefully cleaned, it may be used several times.

Cream celery in Edam cheese shell

Cut the cleaned celery stalks into inch-lengths and cook until tender
in boiling water, slightly salted. For three cupfuls of the cut celery
allow a pint of white sauce, using the water in which the celery was
cooked, with the cream, as the liquid. Turn into the shell of an Edam
cheese, cover with half a cupful of fine cracker-crumbs, mixed with
two tablespoonfuls of melted butter and let it brown in the oven.
Send around powdered cheese with this dish.
Cheese rings

(Contributed)
Prepare a dough as for cheese straws, but cut it out with a doughnut
cutter, brown slightly in a moderate oven. Draw several cheese
straws through the opening in each ring and serve with salad.

Baked cheese

(Contributed)
Dissolve three ounces of butter in a gill of hot water. Melt three
ounces each of American and Gruyère cheese. Stir all together until
creamy, then add enough sifted flour to make a stiff paste and the
beaten yolks of two eggs. Mix the whole thoroughly. Mold with two
buttered tablespoons, slip on greased paper, and when all are
molded set in a moderate oven. When slightly brown brush them
over with the whites of the eggs beaten stiff. Return to the oven for
one minute. Take up on a hot dish, dust with pepper and fill the
center with grated cheese.

Cheese cutlets

(Contributed)
To the well-beaten yolks of three eggs add one tablespoonful of
cream and one ounce of grated Parmesan cheese and season with
mace and cayenne. Beat until very light and add one tablespoonful
of Béchamel sauce. Pour into a buttered pan and steam over hot
water until firm. When cold cut in shapes with a fancy cutter, dredge
with grated cheese and fry in boiling fat to a delicate brown. Serve
at once on fried bread.

Cheese dates
Cut large dates two-thirds around lengthwise, and extract the seeds,
leaving the back of each uncut to form a hinge. Fill them with cream
cheese rubbed soft with butter, bring the sides together to hold in
the filling, and pile upon a glass dish.
They are a nice accompaniment to afternoon tea.
THE TOAST FAMILY
Toast, pure and simple

Pare the crust from thin slices of bread, cut each slice in two and
toast to a golden brown over a clear fire; butter lightly; pile together
and throw a napkin over them. The sooner they are eaten the better.
This toast is the accompaniment to scores of breakfast and luncheon
dishes.

Brown bread toast

Is especially good and goes well with oysters and certain salads.

Deviled toast

Is best when made of stale whole wheat or of graham bread. Toast


as just directed and spread with a mixture made by creaming
together a great spoonful of butter with a quarter-teaspoonful, each,
of lemon juice, dry mustard and paprika. Sift, if you like, dry grated
cheese over each round of toast thus deviled and set for one minute
upon the upper grating of a hot oven. Eat at once.

Tomato toast

Make a pint of well-seasoned tomato sauce. Toast crustless slices of


bread; butter and dip each slice in hot, salted milk, then put the
slices in layers in a pudding dish. Put a spoonful of tomato sauce on
each layer, and when the dish is full, pour the remaining sauce over
all. Cover and set in the oven for ten minutes, then send to the
table. It will be found very good.
Celery toast

Stew inch-lengths of celery until soft; run through a vegetable press;


mix with a thin white sauce, seasoning with paprika, salt and a dash
of onion juice; boil up once and put into a pudding dish with
alternate layers of lightly toasted bread which have been dipped into
the salted water poured off from the boiled celery. Cover and set in
the oven for ten minutes, then serve in the bake-dish. A pleasant
accompaniment to chicken or veal croquettes.

Sandwiched toast

Cut bread into very thin slices and remove all the crusts. Butter
lightly, and between every two slices lay an extremely thin shaving
of chicken or cold roast veal. Press the slices of bread firmly
together, lay on a toaster and toast each to a delicate brown. Serve
at once. These are especially nice with cucumber salad.

Toasted crackers

Butter seafoam or snowflake crackers and dust with celery salt and a
little paprika. Set in the oven until very hot, then serve.

Toasted anchovy crackers

Spread crackers with anchovy paste and set in the oven until very
hot before sending to the table.

Anchovy toast

Cut thin slices of bread into rounds; toast delicately on both sides,
lay a coiled anchovy on each round and set in the oven for three
minutes to heat.
LUNCHEON VEGETABLES
Hashed potatoes, browned

Pare, wash and cut eight fine potatoes into small cubes, not more
than half an inch square. Put these over the fire with two
tablespoonfuls of minced celery and half as much grated onion. Salt
to taste, and cook until tender but not broken; drain off the water
and turn the potatoes into a buttered dish. Have ready a cupful of
hot milk, into which stir a large tablespoonful of butter rubbed into
one of flour. Do not cook them together, but add a tablespoonful of
finely-minced parsley, and pour over the potatoes. Cover and bake
fifteen minutes, then brown upon the upper grating of your oven.
Serve in the bake-dish.
The celery and onion impart a most agreeable flavor to the dish.

Potato scallop

Work gradually into your cold mashed potato a cupful of warmed


milk (in which has been dissolved a pinch of soda) until you have a
smooth mixture; season with pepper and salt, add an egg beaten
very light, and bake briskly in a well-greased pudding dish. Serve in
the dish before it has time to fall.

Potato chips

Pare, slice very thin with a sharp knife and throw into ice water for
an hour. Dry between two towels, and cook until delicately colored in
deep, boiling cottolene or the best salad oil, slightly salted. Drain
perfectly dry, toss upon hot tissue paper for an instant and serve in a
deep dish lined with a napkin, which is drawn over the potatoes.
Potato strips

Prepare in the same way, after cutting into long, thin strips, the
length of the potato.

Potatoes on the half-shell

Bake large, smooth potatoes of uniform size until they yield to the
pinching fingers. Divide each carefully in half, lengthwise; scrape out
the interior, taking care not to break the skin; mash the potato with
a little hot milk and melted butter until you can beat it to a cream;
salt and pepper, beat in two tablespoonfuls of grated cheese
(Parmesan is best) for two cupfuls of potato, and return to the
waiting shells. Set in the oven until hot through and slightly
browned. Serve in the skins.
They are very good.

Potato puff

Beat a cupful of mashed potato to a soft, creamy mass, with a


cupful of warm milk and an even tablespoonful of butter. Have ready
two eggs, whipped light, and add to the “cream.” Pepper and salt to
your liking; turn into a warmed and buttered pudding dish; set in a
quick oven and bake, covered, for half an hour, then brown. Serve at
once before it falls.

Potato drop cakes

Pare, wash and grate six good-sized raw potatoes; press out the
water, add three well-beaten eggs and a heaping tablespoonful of
flour, with salt to taste. Beat well, and drop by the great spoonful in
deep, hot cottolene or other fat. Fry to a delicate brown.

Sweet potatoes au gratin


Peel and slice cold, boiled sweet potatoes. Grease a pudding dish,
put a layer of potatoes in the bottom of it, sprinkle with salt, pepper,
sugar and bits of butter. Put in more potatoes, sprinkle these as you
did the others, and when the dish is full pour over the contents a gill
of boiling water, in which a tablespoonful of butter has been melted.
Strew with fine crumbs, sprinkle with salt and pepper, and bake,
covered, for twenty minutes. Uncover and brown.

Sweet potato puff

Into two cupfuls of boiled and mashed sweet potatoes beat three
tablespoonfuls of melted butter, a cupful of milk and four beaten
eggs. Salt to taste, beat hard and turn into a greased pudding dish.
Bake to a golden brown.

Pea pancakes

Open a can of green peas several hours before you wish to use
them, drain in a colander and cover with cold water until you are
ready to cook them. Boil tender in water slightly salted, drain, and
while hot rub through a colander or vegetable press. Work in a
teaspoonful of butter, with pepper and salt to taste. Stir for a
minute, and let the paste get cold. Beat two eggs light and add to
the cold paste, alternately with a cupful of milk. Sift half a
teaspoonful of baking powder twice with four tablespoonfuls of flour,
and stir into the mixture.
Drop upon a soapstone griddle as you would griddle cakes. Eat while
hot, as a vegetable. Peas left over from yesterday are nice made up
in this way.

Buttered rice

This, too, is a nice “made-over entrée.” Boil rice in the usual way,
and, after draining well, press while warm into a bowl or mold. Next
day turn it out carefully upon a pie plate and set in a quick oven.
When it is hot all through draw to the door of the oven and butter
abundantly. Shut the oven door and brown lightly. Butter again and
sift a thick coating of grated cheese (Parmesan, if you have it) over
all. Leave in the oven for a few minutes to melt the cheese, and
heap irregularly with a meringue of the whites of two eggs beaten
up with a pinch of celery salt. Brown very lightly, slip a spatula under
the mold and transfer carefully to a hot platter.
It is a pretty yet a simple side dish, good and easily made.

Tomatoes farcies

Carefully peel large, firm tomatoes, and scoop out the centers. In
the hollow thus left in each tomato put a layer of minced ham. Set
the tomatoes in a bake-pan, sprinkle with salt and pepper, put a bit
of butter upon the top of each and cook for ten minutes. Then drop
upon the mince in each tomato a raw egg; dust with salt and pepper
and cook until the eggs are “set.”

Tomato caps and saucers

Cut the tops from large, ripe tomatoes, and scoop out the insides
with a small spoon. Keep these insides for the sauce, to be used
later. Make a mince of cold roast beef or mutton, moisten it with a
rich gravy, season to taste and half fill the hollowed tomatoes with
this mixture. Set in a covered roasting-pan and bake for twenty
minutes in a steady oven. Meanwhile, strain the tomato pulp, heat it
and make of it a sauce thickened with two teaspoonfuls, each, of
flour and butter, rubbed to a paste. Season to taste. Toast rounds of
crustless bread, lay these on a platter and pour the tomato sauce
over and around them. Keep hot until the tomatoes are ready. When
these have cooked for twenty minutes remove the cover of the
roaster and drop into each half-filled tomato a raw egg. Replace the
cover and bake just long enough to “set” the eggs. Upon each round
of toast lay a stuffed tomato, sprinkle with pepper and salt and send
to the table.

Scallop of tomatoes and eggs

Into a pint of stewed tomatoes stir a generous cupful of fine bread


crumbs, a tablespoonful of melted butter, a half teaspoonful of sugar,
pepper and salt to taste. Mix thoroughly and turn into a greased
pudding dish. Upon the top of this scallop break as many eggs as
will lie upon it side by side. Sprinkle with salt, pepper and bits of
butter and bake until the eggs are set.

Rice and cheese pudding

Boil a cup of rice until each grain is tender and stands alone. Now
beat in gradually five whipped eggs and a cup of milk, in which have
been stirred two tablespoonfuls of grated cheese. Stir over the fire
for a minute and pour the mixture into a greased pudding dish. Bake
in a good oven for half an hour.

Pilau of green peppers

Cut green peppers lengthwise, removing the seeds with care, lest
they make the green shells too hot. Fill the halves with boiled rice,
into which has been stirred a tablespoonful of melted butter for a
cupful of the boiled rice, and two tablespoonfuls of grated Parmesan
cheese, with salt to taste. Mound the rice smoothly and high, and
after the pilau has cooked ten minutes in a covered pan brown
lightly. Serve hot.

Scallop of sweet peppers and ham

Cut each pepper lengthwise into quarters and remove the seeds
carefully, lay in iced water for fifteen minutes, then drain. Cut each
quarter in half. Butter a pudding dish and put in the bottom of it a

You might also like