Designing Digital Circuits a modern approach
Designing Digital Circuits a modern approach
Jonathan Turner
2
Contents
I First Half
5
1 Introduction to Designing Digital Circuits
7
1.1 Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Gates and Flip Flops . . . . . . . . . . . . . . . . . . . . . . . 9
1.3 How are Digital Circuits Designed? . . . . . . . . . . . . . . . 10
1.4 Programmable Processors . . . . . . . . . . . . . . . . . . . . 12
1.5 Prototyping Digital Circuits . . . . . . . . . . . . . . . . . . . 15
2 First Steps
17
2.1 A Simple Binary Calculator . . . . . . . . . . . . . . . . . . . 17
2.2 Representing Numbers in Digital Circuits . . . . . . . . . . . 21
2.3 Logic Equations and Circuits . . . . . . . . . . . . . . . . . . 24
3 Designing Combinational Circuits With VHDL
33
3.1 The entity and architecture . . . . . . . . . . . . . . . . . . . 34
3.2 Signal Assignments . . . . . . . . . . . . . . . . . . . . . . . . 39
3.3 Processes and if-then-else . . . . . . . . . . . . . . . . . . . . 43
4 Computer-Aided Design
51
4.1 Overview of CAD Design Flow . . . . . . . . . . . . . . . . . 51
4.2 Starting a New Project . . . . . . . . . . . . . . . . . . . . . . 54
4.3 Simulating a Circuit Module . . . . . . . . . . . . . . . . . . . 61
4.4 Preparing to Test on a Prototype Board . . . . . . . . . . . . 66
4.5 Simulating the Prototype Circuit . . . . . . . . . . . . . . . . 69
3
4
CONTENTS
4.6 Testing the Prototype Circuit . . . . . . . . . . . . . . . . . . 70
5 More VHDL Language Features
77
5.1 Symbolic constants . . . . . . . . . . . . . . . . . . . . . . . . 78
5.2 For and case statements . . . . . . . . . . . . . . . . . . . . . 81
5.3 Synchronous and Asynchronous Assignments . . . . . . . . . 86
5.4 Structural VHDL . . . . . . . . . . . . . . . . . . . . . . . . . 89
6 Building Blocks of Digital Circuits
93
6.1 Logic Gates as Electronic Components . . . . . . . . . . . . . 93
6.2 Storage Elements . . . . . . . . . . . . . . . . . . . . . . . . . 98
6.3 Larger Building Blocks . . . . . . . . . . . . . . . . . . . . . . 100
6.4 Lookup Tables and FPGAs . . . . . . . . . . . . . . . . . . . 105
7 Sequential Circuits
109
7.1 A Fair Arbiter Circuit . . . . . . . . . . . . . . . . . . . . . . 110
7.2 Garage Door Opener . . . . . . . . . . . . . . . . . . . . . . . 118
8 State Machines with Data
127
8.1 Pulse Counter . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
8.2 Debouncer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
8.3 Knob Interface . . . . . . . . . . . . . . . . . . . . . . . . . . 137
8.4 Two Speed Garage Door Opener . . . . . . . . . . . . . . . . 141
II Second Half
147
9 Still More VHDL
149
9.1 Making Circuit Specifications More Generic . . . . . . . . . . 149
9.2 Arrays and Records . . . . . . . . . . . . . . . . . . . . . . . 152
9.3 Using Assertions to Detect Bugs . . . . . . . . . . . . . . . . 155
9.4 VHDL Variables . . . . . . . . . . . . . . . . . . . . . . . . . 156
9.5 Functions and Procedures . . . . . . . . . . . . . . . . . . . . 159
CONTENTS
5
10 Design Studies
163
10.1 Four-way Max Finder . . . . . . . . . . . . . . . . . . . . . . 163
10.2 Binary Input Module . . . . . . . . . . . . . . . . . . . . . . . 168
10.3 LCD Display Module . . . . . . . . . . . . . . . . . . . . . . . 172
10.4 Binary Output Module . . . . . . . . . . . . . . . . . . . . . . 175
11 Verifying Circuit Operation
179
11.1 Assertion Checking in Circuit Specifications . . . . . . . . . . 180
11.2 Testing Combinational Circuits . . . . . . . . . . . . . . . . . 181
11.3 Testing State Machines . . . . . . . . . . . . . . . . . . . . . 187
11.4 Testing Larger Circuits . . . . . . . . . . . . . . . . . . . . . . 195
12 Continuing Design Studies
197
12.1 Simple Data Queue . . . . . . . . . . . . . . . . . . . . . . . . 197
12.2 Packet FIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
12.3 Priority Queue . . . . . . . . . . . . . . . . . . . . . . . . . . 212
13 Small Scale Circuit Optimization
219
13.1 Algebraic Methods . . . . . . . . . . . . . . . . . . . . . . . . 220
13.2 Algorithmic Methods . . . . . . . . . . . . . . . . . . . . . . . 224
14 Still More Design Studies
235
14.1 VGA Display Circuit . . . . . . . . . . . . . . . . . . . . . . . 235
14.2 Mine Sweeper Game . . . . . . . . . . . . . . . . . . . . . . . 245
15 Implementing Digital Circuit Elements
265
15.1 Gates and Transistors . . . . . . . . . . . . . . . . . . . . . . 265
15.2 Delays in Circuits . . . . . . . . . . . . . . . . . . . . . . . . . 272
15.3 Latches and Flip Flops . . . . . . . . . . . . . . . . . . . . . . 275
16 Timing Issues in Digital Circuits
281
16.1 Flip Flop Timing Parameters . . . . . . . . . . . . . . . . . . 281
16.2 Metastability and Synchronizers . . . . . . . . . . . . . . . . 290
6
CONTENTS
III Third Half
295
17 Introduction to Programmable Processors
297
17.1 Overview of the WASHU-2 Processor . . . . . . . . . . . . . . 297
17.2 Machine Language Programming . . . . . . . . . . . . . . . . 302
17.3 Prototyping the washu-2 . . . . . . . . . . . . . . . . . . . . 309
17.4 Using Subprograms . . . . . . . . . . . . . . . . . . . . . . . . 312
18 Implementing a Programmable Processor
321
18.1 Overview of the Implementation . . . . . . . . . . . . . . . . 321
18.2 Signal Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
18.3 VHDL Implementation . . . . . . . . . . . . . . . . . . . . . . 326
19 Supporting Components
337
19.1 Overview of the Complete System . . . . . . . . . . . . . . . 337
19.2 Implementing the Console . . . . . . . . . . . . . . . . . . . . 341
20 Memory Components
353
20.1 SRAM Organization and Operation . . . . . . . . . . . . . . 353
20.2 Alternate Memory Organizations . . . . . . . . . . . . . . . . 360
20.3 Dynamic RAMs . . . . . . . . . . . . . . . . . . . . . . . . . . 362
21 Improving Processor Performance
365
21.1 A Brief Look Back at Processor Design . . . . . . . . . . . . 365
21.2 Alternate Instruction Set Architectures . . . . . . . . . . . . . 367
21.3 Implementing the WASHU-16 . . . . . . . . . . . . . . . . . 372
22 Improving Processor Performance Even More
387
22.1 Cache Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
22.2 A Cache for the WASHU-2 . . . . . . . . . . . . . . . . . . . 391
22.3 Beyond Direct-Mapped Caches . . . . . . . . . . . . . . . . . 394
22.4 Other Ways to Boost Performance . . . . . . . . . . . . . . . 397
CONTENTS
7
23 Making Circuits Faster
399
23.1 Faster Increment Circuits . . . . . . . . . . . . . . . . . . . . 399
23.2 Faster Adder Circuits . . . . . . . . . . . . . . . . . . . . . . 403
23.3 Other Linear Circuits . . . . . . . . . . . . . . . . . . . . . . 405
23.4 Multiplication Circuits . . . . . . . . . . . . . . . . . . . . . . 408
24 Producing Better Circuits Using VHDL
413
24.1 Some Motivating Examples . . . . . . . . . . . . . . . . . . . 414
24.2 Estimating Resource Usage . . . . . . . . . . . . . . . . . . . 418
24.3 Estimating and Reducing Resource Usage . . . . . . . . . . . 421
8
CONTENTS
................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.
Related download
- graphical output devices redeemer s university
- school office catalog calculators
- high technology sales use tax deferral
- the history of calculators and high point university
- gsa fsc codes united states agency for international
- chapter 8 accounting for long term assets harper college
- m matrices and linear algebra
- sgs safeguards 11711 us senate proposes bill to mandate
- sample size calculations using sas r and nquery software
- designing digital circuits a modern approach
Related searches
- computer networking a top down approach pdf
- precalculus a graphing approach pdf
- precalculus with limits a graphing approach answers
- digital integrated circuits pdf
- digital electronic circuits pdf
- digital circuits pdf
- is digital river a scam
- computer networking a top down approach 7th
- computer networking a top down approach solutions
- a commonsense approach to psychology
- designing a newsletter
- what is a modern society