Professional Documents
Culture Documents
Full download Digital Systems Design Using VHDL 3rd Edition Charles H. Roth file pdf all chapter on 2024
Full download Digital Systems Design Using VHDL 3rd Edition Charles H. Roth file pdf all chapter on 2024
https://ebookmass.com/product/digital-systems-design-using-
vhdl-3rd-edition-charles-h-roth-2/
https://ebookmass.com/product/analog-and-digital-electronics-1st-
edition-raghunandan-g-h-charles-h-roth/
https://ebookmass.com/product/fundamentals-of-logic-design-
enhanced-edition-jr-charles-h-roth/
https://ebookmass.com/product/digital-system-design-with-fpga-
implementation-using-verilog-and-vhdl-1st-edition-unsalan/
Fundamentals of Digital Logic with VHDL Design 4th
Edition Brown
https://ebookmass.com/product/fundamentals-of-digital-logic-with-
vhdl-design-4th-edition-brown/
https://ebookmass.com/product/fundamentals-of-digital-logic-with-
vhdl-design-4th-edition-stephen-brown/
https://ebookmass.com/product/design-recipes-for-fpgas-using-
verilog-and-vhdl-2nd-ed-peter-wilson/
https://ebookmass.com/product/digital-design-with-an-
introduction-to-the-verilog-hdl-vhdl-and-systemverilog-6-e-sixth-
edition-global-edition-ciletti/
https://ebookmass.com/product/instructional-design-3rd-edition/
DIGITAL SYSTEMS DESIGN
USING VHDL®
Third Edition
Preface vii
About the Authors xii
Chapter 1 Review of Logic Design Fundamentals 1
1.1 Combinational Logic 1
1.2 Boolean Algebra and Algebraic Simplification 3
1.3 Karnaugh Maps 7
1.4 Designing With NAND and NOR Gates 10
1.5 Hazards in Combinational Circuits 12
1.6 Flip-Flops and Latches 16
1.7 Mealy Sequential Circuit Design 18
1.8 Moore Sequential Circuit Design 25
1.9 Equivalent States and Reduction of State Tables 28
1.10 Sequential Circuit Timing 30
1.11 Tristate Logic and Busses 31
Problems 34
2.17 Arrays 97
2.18 Loops in VHDL 101
2.19 Assert and Report Statements 102
2.20 Tips for Debugging VHDL Code 106
Problems 114
Appendix A 596
VHDL Language Summary
Appendix B 604
IEEE Standard Libraries
Appendix C 606
TEXTIO Package
Appendix D 608
Projects
References 618
Index 622
PREFACE
This textbook is intended for a senior-level course in digital systems design. The book covers
both basic principles of digital system design and the use of a hardware description language,
VHDL, in the design process. After basic principles have been covered, students are encour-
aged to practice design by going through the design process. For this reason, many digital
system design examples, ranging in complexity from a simple binary adder to a microproces-
sor, are included in the text.
Students using this textbook should have completed a course in the fundamentals of logic
design, including both combinational and sequential circuits. Although no previous knowl-
edge of VHDL is assumed, students should have programming experience using a modern
higher-level language such as C. A course in assembly language programming and basic
computer organization is also very helpful, especially for Chapter 9.
This book is the result of many years of teaching a senior course in digital systems design
at the University of Texas at Austin. Throughout the years, the technology for hardware
implementation of digital systems has kept changing, but many of the same design principles
are still applicable. In the early years of the course, we handwired modules consisting of
discrete transistors to implement our designs. Then integrated circuits were introduced,
and we were able to implement our designs using breadboards and TTL logic. Now we are
able to use FPGAs and CPLDs to realize very complex designs. We originally used our own
hardware description language together with a simulator running on a mainframe computer.
When VHDL was adopted as an IEEE standard and became widely used in industry, we
switched to VHDL. The widespread availability of high-quality commercial CAD tools now
enables us to synthesize complex designs directly from the VHDL code.
All of the VHDL code in this textbook has been tested using the Modelsim simula-
tor. The Modelsim software is available in a student edition, and we recommend its use in
conjunction with this text. The companion website that accompanies this text provides a
link for downloading the Modelsim student edition and an introductory tutorial to help
students get started using the software. Students can access these materials by visiting
https://login.cengage.com.
Structure
Because students typically take their first course in logic design two years before this course,
most students need a review of the basics. For this reason, Chapter 1 includes a review of
logic design fundamentals. Most students can review this material on their own, so it is unnec-
essary to devote much lecture time to this chapter.
vii
viii Preface
Chapter 2 starts with an overview of modern design flow. It also summarizes various
technologies for implementation of digital designs. Then, it introduces the basics of VHDL,
and this hardware description language is used throughout the rest of the book. Additional
features of VHDL are introduced on an as-needed basis, and more advanced features are
covered in Chapter 8. From the start, we relate the constructs of VHDL to the corresponding
hardware. Some textbooks teach VHDL as a programming language and devote many pages
to teaching the language syntax. Instead, our emphasis is on how to use VHDL in the digital
design process. The language is very complex, so we do not attempt to cover all its features.
We emphasize the basic features that are necessary for digital design and omit some of the
less-used features. Use of standard IEEE VHDL libraries is introduced in this chapter and
only IEEE standard libraries are used throughout the test. Chapter 2 also provides coding tips
and strategies on how to write VHDL code that can lead to the intended hardware quickly.
VHDL is very useful in teaching top-down design. We can design a system at a high level
and express the algorithms in VHDL. We can then simulate and debug the designs at this
level before proceeding with the detailed logic design. However, no design is complete until
it has actually been implemented in hardware and the hardware has been tested. For this
reason, we recommend that the course include some lab exercises in which designs are imple-
mented in hardware. We introduce simple programmable logic devices (PLDs) in Chapter 3
so that real hardware can be used early in the course if desired. Chapter 3 starts with an
overview of programmable logic devices and presents simple programmable logic devices
first, followed by an introduction to complex programmable logic devices (CPLDs) and
Field Programmable Gate Arrays (FPGAs). There are many products in the market, and it
is useful for students to learn about commercial products. However, it is more important for
them to understand the basic principles in the construction of these programmable devices.
Hence we present the material in a generalized fashion, with references to specific products
as examples. The material in this chapter also serves as an introduction to the more detailed
treatment of FPGAs in Chapter 6.
Chapter 4 presents a variety of design examples, including both arithmetic and non-
arithmetic examples. Simple examples such as a BCD to 7-segment display decoder to more
complex examples such as game scoreboards, keypad scanners, and binary dividers are pre-
sented. The chapter presents common techniques used for computer arithmetic, including
carry look-ahead addition and binary multiplication and division. Use of a state machine for
sequencing the operations in a digital system is an important concept presented in this chap-
ter. Synthesizable VHDL code is presented for the various designs. A variety of examples are
presented so that instructors can select their favorite designs for teaching.
Use of sequential machine charts (SM charts) as an alternative to state graphs is covered
in Chapter 5. We show how to write VHDL code based on SM charts and how to realize hard-
ware to implement the SM charts. Then, the technique of microprogramming is presented.
Transformation of SM charts for different types of microprogramming is discussed. Then, we
show how the use of linked state machines facilitates the decomposition of complex systems
into simpler ones. The design of a dice-game simulator is used to illustrate these techniques.
Chapter 6 presents issues related to implementing digital systems in Field Programmable
Gate Arrays. A few simple designs are first hand-mapped into FPGA building blocks to illus-
trate the mapping process. Shannon’s expansion for decomposition of functions with several
variables into smaller functions is presented. Features of modern FPGAs like carry chains,
cascade chains, dedicated memory, dedicated multipliers, etc., are then presented. Instead
of describing all features in a selected commercial product, the features are described in a
general fashion. Once students understand the fundamental general principles, they will be
able to understand and use any commercial product they have to work with. This chapter
also introduces the processes and algorithms in the software design flow. Synthesis, mapping,
Preface ix
placement, and routing processes are briefly described. Optimizations during synthesis are
illustrated.
Basic techniques for floating-point arithmetic are described in Chapter 7. We present a
simple floating-point format with 2’s complement numbers and then the IEEE standard float-
ing-point formats. A floating-point multiplier example is presented starting with development
of the basic algorithm, then simulating the system using VHDL, and finally synthesizing and
implementing the system using an FPGA. Some instructors may prefer to cover Chapters 8
and 9 before teaching Chapter 7. Chapter 7 can be omitted without loss of any continuity.
By the time students reach Chapter 8, they should be thoroughly familiar with the basics
of VHDL. At this point we introduce some of the more advanced features of VHDL and
illustrate their use. The use of multi-valued logic, including the IEEE-1164 standard logic, is
one of the important topics covered. A memory model with tri-state output busses illustrates
the use of the multi-valued logic.
Chapter 9 presents the design of a microprocessor, starting from the description of the
instruction set architecture (ISA). The processor is an early RISC processor, the MIPS
R2000. The important instructions in the MIPS ISA are described and a subset is then imple-
mented. The design of the various components of the processor, such as the instruction mem-
ory module, data memory module, and register file are illustrated module by module. These
components are then integrated together, and a complete processor design is presented.
The model can be tested with a test bench, or it can be synthesized and implemented on an
FPGA. In order to test the design on an FPGA, one will need to write input-output mod-
ules for the design. This example requires understanding of the basics of assembly language
programming and computer organization. After presenting the MIPS design, the chapter
progresses to a design with the ARM ISA. A simplified introduction to the ARM ISA is first
presented, followed by an implementation of a subset of the ISA. This is a significant addition
to the previous MIPS design. The coverage is augmented with relevant example questions,
solutions, and exercise problems on the ARM ISA.
Chapter 10 is a new chapter, presenting new material on verification, a concept central to
the design of complex systems. A good understanding of timing in sequential circuits and the
principles of synchronous design is essential to the digital system design process. Functional
verification is introduced, explaining jargon in verification, validation, emulation, and distinc-
tion with testing. Self-testing test benches are explained. Concept of coverage is introduced.
Timing verification is presented with static timing analysis of circuits. Clock skew, clock
gating, power gating, and asynchronous design are introduced.
The important topics of hardware testing and design for testability are covered in
Chapter 11. This chapter introduces the basic techniques for testing combinational and
sequential logic. Then scan design and boundary-scan techniques, which facilitate the testing
of digital systems, are described. The chapter concludes with a discussion of built-in self-test
(BIST). VHDL code for a boundary-scan example and for a BIST example is included. The
topics in this chapter play an important role in digital system design, and we recommend that
they be included in any course on this subject. Chapter 11 can be covered any time after the
completion of Chapter 8.
Chapter 12, available only online via https://login.cengage.com, presents three complete
design examples that illustrate the use of VHDL synthesis tools. First, a wristwatch design
shows the progress of a design from a textual description to a state diagram and then a
VHDL model. This example illustrates modular design. The test bench for the wristwatch
illustrates the use of multiple procedure calls to facilitate the testing. The second example
describes the use of VHDL to model RAM memories. The third example, a serial communi-
cations receiver-transmitter, should easily be understood by any student who has completed
the material through Chapter 8.
x Preface
Chapter 1 Logic hazard description is improved. More detailed examples on static haz-
ards are added. Students are introduced to memristors. The sequential circuit
timing section is kept to an introductory level because more elaborate static
timing analysis is presented in a new chapter on verification, Chapter 10.
Chapter 2 Coding examples to improve test bench creation are introduced in Chapter 2.
Coding tips and strategies for synthesizable code are presented. Multiple
debugging examples are presented towards the end of the chapter.
Chapter 3 Information on commercial chips updated to reflect state of the art. Added
introduction to programmable System on a Chip (SoC).
Chapter 4 General introduction to parallel prefix adders with details of Kogge Stone
adder. New exercise problems including those on Kogge Stone and Brent-
Kung adders.
Chapter 5 Added historical perspective on microprogramming. New example problems
and new exercise problems.
Chapter 6 Information on commercial chips updated to reflect state of the art. Xilinx
Kintex chips described. New problems added to make use of the new types
of FPGA architectures.
Chapter 7 Several new example problems on IEEE floating point standards illustrated
in detail. Rounding modes in IEEE standard and Microsoft Excel illustrated
with examples. Several new exercise problems.
Chapter 8 Functions and procedures from the prior edition’s Chapter 2 moved to here.
Many sections from old Chapter 8 are still here. A memory model previously
in old Chapter 9 presented as example of multi-valued logic design in new
Chapter 8.
New examples on functions and procedures added. VHDL function NOW is
introduced. New exercise questions on Kogge-Stone and Brent-Kung adder
to utilize advanced VHDL features such as generate are added.
Chapter 9 This chapter covers ARM processor design. A simplified introduction to the
ARM ISA is first presented followed by an implementation of a subset of
the ISA. This is a significant addition to the MIPS design that was previously
presented. Several example questions and solutions on the ARM ISA are
presented. Several exercise problems are added.
Chapter 10 This is a new chapter on verification. It covers functional verification as
introduced, explaining terminology in verification, validation, emulation,
and distinction with testing. Self-checking test benches are explained. Con-
cept of coverage is introduced. Timing verification is presented with static
timing analysis of circuits. Clock skew, clock gating, power gating, and asyn-
chronous design are briefly presented. Exercise problems cover functional
and timing verification.
Preface xi
Instructor Resources
A detailed Instructor’s Solutions Manual containing solutions to all the exercises from the
text, VHDL code used in the book, and Lecture Note PowerPoint slides are available via a
secure, password-protected Instructor Resource Center at https://login.cengage.com.
Acknowledgments
We would like to thank the many individuals who have contributed their time and effort
to the development of this textbook. Over many years we have received valuable feedback
from the students in our digital systems design courses. We would especially like to thank
the faculty members who reviewed the previous edition and offered many suggestions for its
improvement. These faculty include:
Lee Belfore, Old Dominion University
Gang Feng, University of Wisconsin, Platteville
K. Gopalan, Purdue University, Calumet
Miriam Leeser, Northeastern University
Melissa C. Smith, Clemson University
Aaron Striegel, University of Notre Dame
Don Thomas, Carnegie Mellon University
We also wish to acknowledge Dr. Nur Touba’s comments on various parts of the book.
Dr. Earl Swartzlander provided comments on the parallel prefix adder section.
We thank ARM Limited for providing the permission to include an example design
based on the ARM ISA in Chapter 9. Special thanks go to Ian Burgess at Mentor Graphics
for his work on the ModelSim code. We also take this opportunity to express our gratitude
to the student assistants who helped with the word processing, VHDL code testing, and
illustrations: Arif Mondal, Kevin Johns, Jae-Min Jo, Di Xie, Poulami Das, and Kangjoo Lee,
who helped on this version, and Roger Chen, William Earle, Manish Kapadia, Matt Morgan,
Elizabeth Norris, and Raman Suri, who helped on the previous edition.
We wish to acknowledge and thank our Global Engineering team at Cengage Learning for
their dedication to this new book: Timothy Anderson, Product Director; Ashley Kaupert, Asso-
ciate Media Content Developer; Jana Lewis, Content Project Manager; Kristin Stine, Market-
ing Manager; Elizabeth Brown and Brittany Burden, Learning Solutions Specialists; Alexander
Sham, Product Assistant; and Rose Kernan of RPK Editorial Services, Inc. They have skillfully
guided every aspect of this text’s development and production to successful completion.
Charles. H. Roth, Jr.
Lizy K. John
ABOUT THE AUTHORS
xii
CHAPTER
This chapter reviews many of the logic design topics normally taught in a first course in logic
design. First, combinational logic and then sequential logic are reviewed. Combinational
logic has no memory, so the present output depends only on the present input. Sequential
logic has memory, so the present output depends not only on the present input but also on
the past sequence of inputs. Various types of flip-flops and their state tables are presented.
Example designs for Mealy and Moore sequential circuits are illustrated, followed by tech-
niques to reduce the number of states in sequential designs. Circuit timing and synchronous
design are particularly important, since a good understanding of timing issues is essential to
the successful design of digital systems. A detailed treatment of sequential circuit timing is
presented in Chapter 10 in a section on timing verification. For more details on any of the
topics discussed in this chapter, the reader should refer to a standard logic design textbook
such as Roth and Kinney, Fundamentals of Logic Design, 7th Edition (Cengage Learning,
2014). Some of the review examples that follow are referenced in later chapters of this text.
C A
A C
B
NOT: C = A9 Exclusive OR: C = A % B
1
2 Chapter 1 Review of Logic Design Fundamentals
complement (NOT) operation, so C 5 NOT A 5 Ar. The exclusive-OR (XOR) gate has an
output C 5 1 if A 5 1 and B 5 0 or if A 5 0 and B 5 1. The symbol ! represents exclusive
OR, so write
The behavior of a combinational logic circuit can be specified by a truth table that gives the
circuit outputs for each combination of input values. As an example, consider the full adder of
Figure 1-2, which adds two binary digits (X and Y) and a carry 1 Cin 2 to give a sum (Sum) and a
carry out 1 Cout 2 . The truth table specifies the adder outputs as a function of the adder inputs.
For example, when the inputs are X 5 0, Y 5 0, and Cin 5 1, adding the three inputs gives
0 1 0 1 1 5 01, so the sum is 1 and the carry out is 0. When the inputs are 011, 0 1 1 1 1 5 10,
so Sum 5 0 and Cout 5 1. When the inputs are X 5 Y 5 Cin 5 1, 1 1 1 1 1 5 11, so
Sum 5 1 and Cout 5 1.
Derive algebraic expressions for Sum and Cout from the truth table. From the table,
Sum 5 1 when X 5 0, Y 5 0, and Cin 5 1. The term XrYrCin equals 1 only for this com-
bination of inputs. The term XrYCin r 5 1 only when X 5 0, Y 5 1, and Cin 5 0. The term
XYrCinr is 1 only for the input combination X 5 1, Y 5 0, and Cin 5 0. The term XYCin is 1
only when X 5 Y 5 Cin 5 1. Therefore, Sum is formed by ORing these four terms together:
r 1 XYrCinr 1 XYCin
Sum 5 XrYrCin 1 XrYCin (1-2)
Each of the terms in this sum of products (SOP) expression is 1 for exactly one combina-
tion of input values. In a similar manner, Cout is formed by ORing four terms together:
r 1 XYCin
Cout 5 XrYCin 1 XYrCin 1 XYCin (1-3)
Each term in Equations (1-2) and (1-3) is referred to as a minterm, and these equations
are referred to as minterm expansions. These minterm expansions can also be written in
m-notation or decimal notation as follows:
Sum 5 m1 1 m2 1 m4 1 m7 5 Sm 1 1, 2, 4, 7 2
Cout 5 m3 1 m5 1 m6 1 m7 5 Sm 1 3, 5, 6, 7 2
The decimal numbers designate the rows of the truth table for which the corresponding func-
tion is 1. Thus Sum 5 1 in rows 001, 010, 100, and 111 (rows 1, 2, 4, 7).
1.2 Boolean Algebra and Algebraic Simplification 3
A logic function can also be represented in terms of the inputs for which the function
value is 0. Referring to the truth table for the full adder, Cout 5 0 when X 5 Y 5 Cin 5 0.
r 2 is
The term 1 X 1 Y 1 Cin 2 is 0 only for this combination of inputs. The term 1 X 1 Y 1 Cin
0 only when X 5 Y 5 0 and Cin 5 1. The term 1 X 1 Yr 1 Cin 2 is 0 only when X 5 Cin 5 0
and Y 5 1. The term 1 Xr 1 Y 1 Cin 2 is 0 only when X 5 1 and Y 5 Cin 5 0. Cout is formed
by ANDing these four terms together:
r 2 1 X 1 Yr 1 Cin 2 1 Xr 1 Y 1 Cin 2
Cout 5 1 X 1 Y 1 Cin 2 1 X 1 Y 1 Cin (1-4)
Cout is 0 only for the 000, 001, 010, and 100 rows of the truth table and, therefore, must
be 1 for the remaining four rows. Each of the terms in the Product of Sums (POS) expression
in Equation (1-4) is referred to as a maxterm, and (1-4) is called a maxterm expansion. This
maxterm expansion can also be written in decimal notation as
Cout 5 M0 # M1 # M2 # M4 5 PM 1 0, 1, 2, 4 2
where the decimal numbers correspond to the truth table rows for which Cout 5 0.
EXAMPLE
Find the complement of F if
F 5 X 1 ErK 1 C 1 AB 1 Dr 2 # 1 1 WZr 1 GrH 1 0 2 2
Fr 5 Xr 1 E 1 Kr 1 1 Cr 1 1 Ar 1 Br 2 D 1 0 2 1 Wr 1 Z 1 1 G 1 Hr 2 # 1 2 2
Additional parentheses in Fr were added when an AND operation in F was replaced with an OR. The dual of an expres-
sion is the same as its complement, except that the variables are not complemented.
4 Chapter 1 Review of Logic Design Fundamentals
Duality:
1 X 1 Y 1 Z 1 c2 D 5 XYZ c (1-18) 1 XYZ c2 D 5 X 1 Y 1 Z 1 c (1-18D)
Four ways of simplifying a logic expression using the theorems in Table 1-1 are as follows:
1. Combining terms. Use the theorem XY 1 XYr 5 X to combine two terms. For example,
When combining terms by this theorem, the two terms to be combined should contain
exactly the same variables, and exactly one of the variables should appear complemented
in one term and not in the other. Since X 1 X 5 X, a given term may be duplicated and
combined with two or more other terms. For example, the expression for Cout in Equa-
tion (1-3) can be simplified by combining the first and fourth terms, the second and fourth
terms, and the third and fourth terms:
r 1 XYCin 2
Cout 5 1 XrYCin 1 XYCin 2 1 1 XYrCin 1 XYCin 2 1 1 XYCin
5 YCin 1 XCin 1 XY (1-22)
Note that the fourth term in Equation (1-3) was used three times.
The theorem can still be used, of course, when X and Y are replaced with more compli-
cated expressions. For example,
1 A 1 BC 2 1 D 1 Er 2 1 Ar 1 Br 1 Cr 2 1 D 1 Er 2 5 D 1 Er
3 X 5 D 1 Er, Y 5 A 1 BC, Yr 5 Ar 1 Br 1 Cr 2 4
The expression obtained after applying 1, 2, and 3 will not necessarily have a minimum
number of terms or a minimum number of literals. If it does not and no further simplifi-
cation can be made using 1, 2, and 3, deliberate introduction of redundant terms may be
necessary before further simplification can be made.
4. Adding redundant terms. Redundant terms can be introduced in several ways, such as
adding XXr, multiplying by 1 X 1 Xr 2 , adding YZ to XY 1 XrZ (consensus theorem),
6 Chapter 1 Review of Logic Design Fundamentals
or adding XY to X. When possible, the terms added should be chosen so that they will
combine with or eliminate other terms. For example,
1 A 1 B 1 D 2 1 A 1 Br 1 Cr 2 1 Ar 1 B 1 Dr 2 1 Ar 1 B 1 Cr 2
5 1 A 1 1 B 1 D 2 1 Br 1 Cr 2 2 1 Ar 1 B 1 CrDr 2 (by (1-12D))
5 1 A 1 BCr 1 BrD 2 1 Ar 1 B 1 CrDr 2 (by (1-20))
5 A 1 B 1 CrDr 2 1 Ar 1 BCr 1 BrD 2 (by (1-20))
5 AB 1 ACrDr 1 ArBCr 1 ArBrD (by (1-12))
Note that the second distributive law (1-12D) and theorem (1-20) were applied before
the ordinary distributive law. Any Boolean expression can be factored by using the two
distributive laws (1-12 and 1-12D) and theorem (1-20). As an example of factoring, read
the steps in the preceding example in the reverse order.
The following theorems apply to exclusive-OR:
X!05X (1-23)
X ! 1 5 Xr (1-24)
X!X50 (1-25)
X ! Xr 5 1 (1-26)
X!Y5Y!X 1 commutative law 2 (1-27)
1X ! Y2 ! Z 5 X ! 1Y ! Z2 5 X ! Y ! Z 1 associative law 2 (1-28)
X 1 Y ! Z 2 5 XY ! XZ 1 distributive law 2 (1-29)
1 X ! Y 2 r 5 X ! Yr 5 Xr ! Y 5 XY 1 XrYr (1-30)
The expression for Sum in Equation (1-2) can be rewritten in terms of exclusive-OR by
using Equations (1-1) and (1-30):
The simplification rules that you studied in this section are important when a circuit has
to be optimized to use a smaller number of gates. The existence of equivalent forms also
helps when mapping circuits into particular target devices where only certain types of logic
(e.g., NAND only or NOR only) are available.
FIGURE 1-3: AB AB
Four-Variable CD 00 01 11 10 CD 00 01 11 10 Four corner terms
Karnaugh Maps combine to give B9 D9
00 0 4 12 8 00 1 0 0 1
01 1 5 13 9 C 01 0 1 0 0
A9BD
11 3 7 15 11 11 1 1 X 1
10 2 6 14 10 10 1 1 X 1
The variable values along the edge of the map are ordered so that adjacent squares on
the map differ in only one variable. The first and last columns and the top and bottom rows
of the map are considered to be adjacent. Two 1’s in adjacent squares can be combined by
eliminating one variable using xy 1 xyr 5 x. Figure 1-3 shows a four-variable function with
nine minterms and two don’t cares. Minterms ArBCrD and ArBCD differ only in the vari-
able C, so they can be combined to form ArBD, as indicated by a loop on the map. Four 1’s in
a symmetrical pattern can be combined to eliminate two variables. The 1’s in the four corners
of the map can be combined as follows:
as indicated by the loop. Similarly, the six 1’s and two X’s in the bottom half of the map
combine to eliminate three variables and form the term C. The resulting simplified function is
F 5 ArBD 1 BrDr 1 C
Language: English
BY EDMOND HAMILTON
2
It is in the account of young Rowan that one finds, now, the clearest
picture of the coming of the terror to Brinton. There are other
accounts, for though the survivors of that terror were but few most of
them have recorded their experiences; yet for the most part their
narratives are too horror-stricken and incoherent to be of any real
value. Rowan, on the other hand, not only saw the thing as well or
better than any other single man, but set down his impressions of it
in vivid style.
His narrative begins with the events already detailed, the
disappearance of Dr. Morton and his own coming to Brinton. It had
been some time after nightfall that he had arrived, and after making
arrangements to accompany the posse into the swamp on the next
morning he had ventured out into the streets of the town, which were
still filled with the shuffling throngs discussing the sensation of the
day. Along the streets the windows of stores were still brilliant, their
proprietors taking advantage of the unaccustomed throngs, while a
few raucous-voiced newsboys were selling late editions of a Chicago
daily which had featured the sensation. For an hour or more Rowan
strolled on through the streets and then, yawning, began to move
back toward his hotel, through the thinning crowds. He had just
reached the building's door when he suddenly halted.
From away toward the street's eastern end had come a sudden,
high-pitched cry, a thrilling scream which was repeated in the
distance by a score of voices, and then succeeded by a dull roar.
Rowan stepped out into the street, gazing down its length, lit by the
suspended brilliance of the street-lights. A few of the groups on the
sidewalks near by had stepped out beside him, and with these he
stared down the long street's length toward the source of the
shouting cries.
He glimpsed, in a moment, a horde of figures running up the street
toward him, a disorganized little mob which was giving utterance to a
medley of hoarse shouts and screams. The mob parted, for a
moment, and there roared through it a crowded automobile, racing
up the street with immense speed, and past the wondering Rowan
and those around him. And now he heard, simultaneously, a wild
ringing of bells toward the south and a far-away crash which
murmured faintly to his ears from the east. With every moment the
clamor around him was increasing, the whole city awakening, and
lights flashing out in windows on every side.
By then the people around him had caught the contagion of panic
and were hastening away toward the west also, but Rowan held his
ground until the first running figures of the mob farther down the
street were racing past him. Then he reached out and seized one of
these, a shabby, middle-aged man whose face was contorted with
panic.
"What's the matter?" he cried, striving to make himself heard over
the thunderous, increasing clamor about him. "What's happening?"
The man he held bawled something indistinguishable in his ear, and
at the same time wrenched frantically loose from his grasp, hurrying
on. Some hundreds of feet down the street the main body of the mob
was now racing toward Rowan, and then, beyond that mob, Rowan
saw by the brilliant street-lamps the cause of their panic flight.
Far down the street there was thundering toward him a gigantic
creature which his eyes refused for the moment to credit, a titanic,
dark thing whose tremendous, rumbling tread shook the very ground
on which he himself stood. A hundred feet in length and a third of
that in height it loomed, a colossal dark bulk upheld by four massive
legs, tapering into a huge tail behind and carrying before it a long,
sinuous neck which ended in a small, reptilian head. High up on the
great thing's mighty, curving back clung some smaller creature which
he could but vaguely glimpse, and down the street behind it were
thundering a half-dozen more like itself, vast, incredible, charging
down the street upon the madly screaming mob which fled before
them. For one mad, whirling moment Rowan stared, and then he
shouted aloud.
"Brontosaurs!" he cried, standing there for the moment quite
unconscious of his own peril from the onward-thundering monsters.
Brontosaurs! Monsters out of earth's dawn, thundering through a
Twentieth Century city! Mighty dinosaurs of the Mesozoic age, the
most terrible creatures ever to appear on this planet, bridging the
gap of millions of years to crash through the little town! Rowan stood
rigid as they thundered on toward him, heard their mighty, throaty
bellows as they overtook the fleeing mob, and then saw them
trampling over that mob as bulls might trample ants, smashing them
beneath gigantic feet, annihilating them with sweeps of the huge
tails, thundering, crashing on.
And now they were within yards of him and he found himself
staggering back from the street into a crevice between two buildings
at its side. The next moment the great monsters had thundered past
him, their gigantic tread shaking the earth beneath him, and in that
moment he glimpsed clearly the creatures who rode upon their
backs. Small and manlike shapes were these, but lizardlike, too,
their limbs and bodies green-scaled, their extremities armed with
sharp talons, their heads thick and conical and featureless, except
for the big, dark, disklike eyes and the wide-fanged mouths. And as
they thundered past on their gigantic mounts he saw one raise an
arm with a white globe in its grasp, saw a beam of pale and feeble
light which flickered out from that globe and struck buildings to right
and left, buildings which burst into great masses of flame as the pale
beam touched them.
And now the great creatures had swept past him and from farther up
the street came their bellowing clamor, pierced by sharp, agonized
screams from the tiny running figures there. Around Rowan flames
were shooting up in great roaring bursts, and beyond he saw one of
the great brontosaurs rearing up against the side of a building, saw
that building's walls collapse and crash beneath the huge beast's
weight. From right and left came other mighty crashes throughout
the city, and an unceasing, thunderous clamor of sounds, the deep
and terrible bellowing of the dinosaurs as they crashed across the
town, the screams of their victims trampled beneath giant feet, the
hiss of the flickering beams, the roar of bursting flames. Down the
street, too, was the rumbling of more of the great brontosaurs, racing
up the street and past the spot where Rowan crouched, galloping
gigantically to the attack.
After them came a single dark, great shape, almost as huge, a great
reptilian form whose huge paws gleamed with mighty claws, whose
broad-gaping mouth showed immense fangs, leaping forward in
quick, gigantic hops like some giant toad, its small eyes glittering in
the flame-light of the burning buildings. In a moment it had whirled
past Rowan in a series of mighty hops and he glimpsed it farther up
the street, pouncing upon the few surviving little figures who ran
screaming for shelter, inconceivably swift and catlike in its resistless
rushes. And as Rowan saw it leaping on he felt reason deserting
him.
"God!" he whispered. "A tyrannosaurus!"
Crouched there at the street's edge he huddled, the buildings around
him a storm of leaping flame, while down through that lane of fire
there thundered into the town from the east the creatures of a long-
dead age, the mighty beasts of earth's youth extinct for millions of
years. Rowan was never afterward able to recall all that he saw and
heard in the minutes that he crouched there. He knew that other
brontosaurs rumbled past, bellowing, ridden by the lizard-creatures
whose pale rays swept and stabbed in great circles of fiery
destruction; that other tyrannosaurs swept by with swift and mighty
leaps, pawing human victims from the wreckage at the street's sides,
pouncing and whirling like gigantic cats; that other colossal reptilian
shapes, their mighty, curving backs armored by great, upstanding
plates, rushed past like great battering-rams of flesh and bone,
crashing into buildings and through walls as though of paper, great
stegosaurs that thundered on after the others who carried
annihilation and death across the town; that still other huge
rhinoceroslike shapes galloped past, triceratops who crashed
resistlessly on with lowered heads, impaling all before them on their
three terrible horns.
All of these Rowan saw, dimly, as though from a great distance,
while in his ears beat all the vast roar of sound from the stricken
town around him, screams and shouts and hissing cries and vast
bellows, roar of flame and crash of falling walls. The great wave of
destruction, the mass of the attacking monsters, had swept past and
was rolling now over the town toward the west, but still Rowan
crouched, motionless. Then behind him was a mounting roar of
swiftly catching flame, and out toward him crept little tongues of red
fire as the walls between which he crouched began to burn. Then, at
last, Rowan rose to his feet and staggered out into the street.
The street-lights had vanished with the bursting of their poles and
cables by the rush of the great dinosaurs, but all around him was
illumined brilliantly by the light of the flaming buildings. North and
south and west the city was burning, vast sheets of murky flame
roaring up from it in scores of places, and by the light of those distant
fires Rowan glimpsed the scores of titanic dark shapes that crashed
still through streets and walls, glimpsed the play of the livid rays and
heard the thin cries of those who still fled before the mighty,
bellowing dinosaurs. A moment he stood at the street's center,
motionless, and then above him was a whirring and flapping of
colossal wings, and he looked up to see a vast, dark shape
swooping swiftly down upon him.
In a single moment he glimpsed the thing, the forty-foot spread of its
huge, batlike wings, the great reptilian head thrust down toward him
as it swooped, white fangs gleaming and red eyes shining in the
firelight, and in that flashing moment recognized the thing for what it
was, a pterodactyl, a flying monster out of the dead ages. Then he
saw that upon it rode one of the sealed, dark-eyed lizard-creatures,
whose arm was coming up with a white globe in its grasp as its
dragon-mount dove down toward Rowan.
The next moment Rowan had thrown himself suddenly aside, and as
he did so felt the great pterodactyl sweep over him by a few feet,
glimpsed a beam of pale light that flickered down from the upheld
globe and struck the street beside him, cracking and rending the
pavement there with its intense heat and scorching his own shoulder
as it grazed it. Then the giant thing had passed and was flapping on
to the west, while behind and above it flew others of its kind, mighty
flying reptiles ridden by the lizard-creatures, whose pallid rays struck
down with fire and death as they swooped on with whirring wings.
And then suddenly Rowan was running, dazed and blind with terror,
down the street toward the east, between the flaming lines of
buildings and over the crushed fragments of humanity which lay
there. Down the street's length he ran, and out between its last
buildings, and on and on into the night, crazedly, aimlessly. The roar
of flames and thunderous din of the town behind him dwindled as he
ran, but he did not look back, throwing himself blindly forward
through the darkness, weeping and wringing his hands, stumbling,
staggering on.
3
How long it was before the mists of terror that clouded his brain
finally cleared and lifted, how long he stumbled blindly through the
night, Rowan could never guess. When he finally came back to
realization of his surroundings he found himself standing knee-deep
in water and mud, standing in a thick forest whose dark trees formed
over him a great canopy of twisted foliage, and whose floor was a
swampy expanse of shallow pools and yielding sands. Far behind
him there glowed feebly in the sky a glare of ruddy light, half
glimpsed through the rifts in the foliage overhead, and as his eyes
took in that crimson glare sudden memory came to his dazed brain.
"God!" he whispered. And again, the single syllable: "God!"
For minutes he stood there, paying no attention to his own
surroundings, his mind on that tremendous and unthinkable attack
which had crashed upon Brinton from the outside night, of the
terrible dinosaurs and their strange riders who had descended upon
the town. Whence had they come, those gigantic reptilian monsters
whose like earth had not seen for hundreds of millions of years? And
who, what, were those lizard-shapes who had ridden and directed
them, whose pale rays had swept fiery death across the town?
Abruptly Rowan's mind snapped back to consideration of his own
predicament, and swiftly he looked about him. The thick forest
around him, the mud and stagnant water in which he stood, the odor
of rotting vegetation in his nostrils—in a moment he recognized
them.
"The swamp!" he whispered. "I came eastward from the town, and
this——"
A moment he paused, glancing around and back toward the glare of
red light in the sky behind, then turned and began to move forward.
Through stagnant, scummy pools he splashed, feeling himself
sinking once into treacherous sands but jerking out of them in swift
panic, clambering over fallen trees and across ridges and mounds of
solid ground, through thick tangles of shrubs and briars. Once he lay
for moments on one of the mounds, panting for breath, and staring
up through the twisted branches above to where the shining,
unchanging constellations marched serenely across the heavens.
Then he rose and pressed on, conscious only of the desire to put
more and more distance between himself and the inferno of terror
which Brinton had become.
Abruptly he stepped out of the close forest into a wide clear space, a
broad pathway cut through that forest by some great force, in which
the trees and bushes had been ground down into crushed and
splintered masses. Rowan stepped into this broad lane of
destruction, wonderingly, and saw that it ran east and west,
apparently across the swamp. Then into his mind leapt
remembrance of those great pathways of smashed trees which the
searchers for Morton had found near the swamp's edge. Could it be
that——?
Before he could complete the thought there came a sudden dull
reverberation from the swamp to eastward, a quivering of the ground
beneath him, a rumbling thunder rapidly nearing him. In sudden
panic he shrank back into the forest at the broad path's edge, and
the next moment their appeared in the east along that path a mighty
shape, thundering down the path toward him and dimly visible in the
starlight. It was a brontosaur, he saw, bearing one of the dark lizard-
shapes which rode at the base of its great neck, thundering down the
path toward the west in giant, earth-shaking strides. Another
followed it, and another, until four had passed, and then the thunder
of their great tread died away in the west, as they galloped on toward
Brinton. Rowan stared after them and then, as a sudden thought
flared in his brain, he crept again from the sheltering trees and
moved steadily eastward into the swamp, following the great path by
which the brontosaurs had come.
The path was beaten hard and flat, he found, and seemed to lead
due eastward into the heart of the swamp. And as he followed it, as
he crept onward, light came to his eyes from far ahead, a white
brilliance which filtered faintly through the ranks of close-packed
trees. Steadily Rowan crept on toward it, and then as its radiance
began to strengthen he left the broad path and slipped again into the
shelter of the forest, creeping forward ever more cautiously between
the close-ranked trees and over the rotting, stagnant slime toward
the source of the pallid light ahead.
A dull roar of sound came to his ears as he went on, a whistling,
shrieking clamor as of some great wind which raged ceaselessly,
louder and louder as he neared it. Through the trees ahead he
glimpsed a broad open space lit by the white radiance, and dropped
to his knees, crawling silently on. At last he had crept to the very
edge of the open space and lay crouched in the slime behind a great
tree, peering tensely forward.
Before him lay a great, flat mound of solid ground, elevated a few
feet above the ooze of the swamp, roughly square in shape and fully
one thousand feet across. It was quite bare and treeless, all
vegetation upon it having apparently been sheared away, and was lit
by a single globe of radiant white light suspended by a slender shaft
of metal high above the great mound's surface. At the center of the
broad, flat surface there yawned a tremendous pit which occupied
half the mound's expanse, a vast circular shaft some hundreds of
feet across whose smooth, perpendicular sides gleamed dully as
though coated with metal. From where he crouched at the great
mound's edge he could glimpse only the round mouth of the great
shaft and a few feet of its downward-sinking sides, but he perceived
that it was from this mighty pit that there roared upward the
thunderous torrent of unceasing winds. Then his attention shifted
from the great pit to the creatures grouped near its rim.
At the far edge of the great shaft there rose from the ground a
strange, three-pillared structure of gleaming metal, bearing on an
upheld plate a number of shining studs and a single large dial or
wheel of metal. And beside this structure stood a knot of unearthly
creatures, green-scaled, dark-eyed lizard-shapes like those he had
glimpsed in the attack on Brinton. These were standing across the
pit from him, at the very rim of the great shaft, and one or two of
them were apparently staring down into the darkness of the shaft
itself.
And now, over the raging shriek of winds from the pit, came another
sound to the crouching Rowan's ears, a faint but deep bellowing
which grew swiftly louder. He saw the lizard-men at the pit's edge
stir, look downward, and then suddenly there rose up out of the great
shaft's depths a great, round platform of metal, a mighty, disklike
platform fully four hundred feet across which all but filled the mouth
of the great pit as it rose, separated from that pit's edge by a tiny
circular gap of a yard or less. Up from the dark depths of the shaft
floated this great platform, slower and slower, and he saw that upon
it were standing two of the gigantic, bellowing brontosaurs and some
half-dozen more of the lizard-men. Smoothly the vast disk and its
great burden drifted upward, until it hung level with the edges of the
pit, its vast weight and the weight it bore suspended incredibly above
the abyss. A moment it hung there, and in that moment the lizard-
men on it stepped swiftly out onto the mound, prodding the two
brontosaurs on before them. The empty platform hovered a moment
longer at the pit's edge, and then began to sink slowly downward,
gathering speed swiftly and dropping smoothly out of sight into the
dark depths of the giant shaft.
Rowan gasped. That mighty platform, moving up the great shaft and
down it, with upon it the great brontosaurs—from what unguessed
depths below had it come? He saw that the lizard-men now were
swinging up into curious, saddle-like seats affixed upon the backs of
the giant beasts, and then heard them utter rasping cries, at which
the two dinosaurs moved obediently forward, off the mound and onto
the broad, beaten path which led from its edge westward through the
swamp toward Brinton. In a moment the two great beasts and their
riders had thundered down that path and disappeared, while on the
mound were left only three of the lizard-creatures, who conversed in
low, rasping tones.