Preface |
|
xv | |
About the Author |
|
xix | |
|
Designing Microprocessors |
|
|
1 | (16) |
|
Overview of a Microprocessor |
|
|
3 | (2) |
|
Design Abstraction Levels |
|
|
5 | (2) |
|
Examples of a 2-to-1 Multiplexer |
|
|
7 | (3) |
|
|
7 | (1) |
|
|
8 | (2) |
|
|
10 | (1) |
|
|
10 | (3) |
|
|
13 | (1) |
|
|
14 | (1) |
|
|
14 | (2) |
|
|
16 | (1) |
|
|
17 | (37) |
|
|
18 | (4) |
|
|
22 | (1) |
|
Basic Logic Operators and Logic Expressions |
|
|
23 | (1) |
|
|
24 | (1) |
|
Boolean Algebra and Boolean Functions |
|
|
25 | (8) |
|
|
25 | (3) |
|
|
28 | (1) |
|
Boolean Functions and their Inverses |
|
|
29 | (4) |
|
|
33 | (5) |
|
|
33 | (3) |
|
|
36 | (2) |
|
Canonical, Standard, and Non-Standard Forms |
|
|
38 | (1) |
|
Logic Gates and Circuit Diagrams |
|
|
39 | (4) |
|
Designing a Car Security System |
|
|
43 | (2) |
|
VHDL for Digital Circuits |
|
|
45 | (4) |
|
VHDL Code for a 2-Input NAND Gate |
|
|
46 | (1) |
|
VHDL Code for a 3-Input NOR Gate |
|
|
47 | (1) |
|
|
48 | (1) |
|
|
49 | (1) |
|
|
50 | (4) |
|
|
54 | (44) |
|
Analysis of Combinational Circuits |
|
|
55 | (5) |
|
|
56 | (3) |
|
|
59 | (1) |
|
Synthesis of Combinational Circuits |
|
|
60 | (3) |
|
|
63 | (4) |
|
Minimization of Combinational Circuits |
|
|
67 | (10) |
|
|
67 | (7) |
|
|
74 | (1) |
|
|
75 | (2) |
|
Timing Hazards and Glitches |
|
|
77 | (3) |
|
|
79 | (1) |
|
|
80 | (2) |
|
VHDL for Combinational Circuits |
|
|
82 | (9) |
|
Structural BCD to 7-Segment Decoder |
|
|
83 | (5) |
|
Dataflow BCD to 7-Segment Decoder |
|
|
88 | (1) |
|
Behavioral BCD to 7-Segment Decoder |
|
|
89 | (2) |
|
|
91 | (1) |
|
|
92 | (6) |
|
Standard Combinational Components |
|
|
98 | (47) |
|
Signal Naming Conventions |
|
|
99 | (1) |
|
|
100 | (5) |
|
|
100 | (1) |
|
|
101 | (1) |
|
|
102 | (3) |
|
Two's Complement Binary Numbers |
|
|
105 | (3) |
|
|
108 | (1) |
|
Adder-Subtractor Combination |
|
|
109 | (5) |
|
|
114 | (3) |
|
|
117 | (5) |
|
|
122 | (2) |
|
|
123 | (1) |
|
|
124 | (4) |
|
Using Multiplexers to Implement a Function |
|
|
128 | (1) |
|
|
128 | (2) |
|
|
130 | (4) |
|
|
134 | (2) |
|
|
135 | (1) |
|
|
136 | (3) |
|
|
139 | (1) |
|
|
139 | (6) |
|
Implementation Technologies |
|
|
145 | (33) |
|
|
146 | (1) |
|
Metal-Oxide-Semiconductor Field-Effect Transistor (MOSFET) |
|
|
147 | (1) |
|
|
148 | (2) |
|
|
150 | (9) |
|
|
151 | (1) |
|
|
152 | (2) |
|
|
154 | (1) |
|
|
155 | (1) |
|
|
155 | (1) |
|
2-Input Multiplexer CMOS Circuit |
|
|
156 | (2) |
|
|
158 | (1) |
|
Analysis of CMOS Circuits |
|
|
159 | (2) |
|
Using ROMs to Implement a Function |
|
|
161 | (3) |
|
Using PLAs to Implement a Function |
|
|
164 | (4) |
|
Using PALs to Implement a Function |
|
|
168 | (2) |
|
Complex Programmable Logic Device (CPLD) |
|
|
170 | (3) |
|
Field Programmable Gate Array (FPGA) |
|
|
173 | (2) |
|
|
175 | (1) |
|
|
175 | (3) |
|
|
178 | (35) |
|
|
180 | (1) |
|
|
181 | (3) |
|
|
184 | (1) |
|
|
185 | (1) |
|
|
186 | (1) |
|
|
187 | (1) |
|
|
188 | (5) |
|
Alternative Smaller Circuit |
|
|
191 | (2) |
|
|
193 | (1) |
|
|
193 | (2) |
|
Description of a Flip-Flop |
|
|
195 | (2) |
|
|
195 | (1) |
|
|
195 | (1) |
|
|
196 | (1) |
|
|
196 | (1) |
|
|
197 | (1) |
|
Designing a Car Security System---Version 2 |
|
|
198 | (1) |
|
VHDL for Latches and Flip-Flops |
|
|
199 | (7) |
|
|
199 | (2) |
|
VHDL Code for a D Latch with Enable |
|
|
201 | (1) |
|
VHDL Code for a D Flip-Flop |
|
|
201 | (4) |
|
VHDL Code for a D Flip-Flop with Enable and Asynchronous Set and Clear |
|
|
205 | (1) |
|
|
206 | (4) |
|
|
206 | (2) |
|
|
208 | (1) |
|
|
208 | (2) |
|
|
210 | (1) |
|
|
211 | (2) |
|
|
213 | (61) |
|
Finite State Machine (FSM) Models |
|
|
215 | (3) |
|
|
218 | (3) |
|
Analysis of Sequential Circuits |
|
|
221 | (9) |
|
|
222 | (1) |
|
|
222 | (1) |
|
|
222 | (2) |
|
|
224 | (1) |
|
|
224 | (1) |
|
|
224 | (1) |
|
|
225 | (3) |
|
|
228 | (2) |
|
Synthesis of Sequential Circuits |
|
|
230 | (16) |
|
|
231 | (1) |
|
|
232 | (2) |
|
|
234 | (1) |
|
Excitation Equation and Next-State Circuit |
|
|
235 | (1) |
|
Output Table and Equation |
|
|
235 | (1) |
|
|
235 | (1) |
|
|
236 | (6) |
|
|
242 | (4) |
|
Unused State Encodings and the Encoding of States |
|
|
246 | (3) |
|
Designing a Car Security System---Version 3 |
|
|
249 | (1) |
|
VHDL for Sequential Circuits |
|
|
249 | (9) |
|
Optimization for Sequential Circuits |
|
|
258 | (6) |
|
|
258 | (1) |
|
|
259 | (1) |
|
|
260 | (4) |
|
|
264 | (1) |
|
|
265 | (9) |
|
Standard Sequential Components |
|
|
274 | (36) |
|
|
275 | (2) |
|
|
277 | (6) |
|
Serial-to-Parallel Shift Register |
|
|
278 | (2) |
|
Serial-to-Parallel and Parallel-to-Serial Shift Register |
|
|
280 | (3) |
|
|
283 | (11) |
|
|
283 | (3) |
|
|
286 | (3) |
|
Binary Up-Down Counter with Parallel Load |
|
|
289 | (1) |
|
|
290 | (2) |
|
|
292 | (2) |
|
|
294 | (5) |
|
Static Random Access Memory |
|
|
299 | (4) |
|
|
303 | (4) |
|
|
304 | (1) |
|
|
305 | (2) |
|
|
307 | (1) |
|
|
308 | (2) |
|
|
310 | (49) |
|
Designing Dedicated Datapaths |
|
|
313 | (8) |
|
|
317 | (1) |
|
Selecting Functional Units |
|
|
318 | (1) |
|
|
319 | (1) |
|
Generating Status Signals |
|
|
320 | (1) |
|
Using Dedicated Datapaths |
|
|
321 | (1) |
|
Examples of Dedicated Datapaths |
|
|
322 | (12) |
|
|
323 | (2) |
|
|
325 | (2) |
|
|
327 | (1) |
|
|
328 | (3) |
|
|
331 | (3) |
|
|
334 | (2) |
|
|
336 | (3) |
|
A More Complex General Datapath |
|
|
339 | (5) |
|
|
344 | (3) |
|
|
347 | (7) |
|
|
347 | (2) |
|
|
349 | (5) |
|
|
354 | (1) |
|
|
355 | (4) |
|
|
359 | (58) |
|
Constructing the Control Unit |
|
|
361 | (13) |
|
|
362 | (5) |
|
|
367 | (7) |
|
Generating Status Signals |
|
|
374 | (10) |
|
|
384 | (20) |
|
|
384 | (4) |
|
|
388 | (5) |
|
|
393 | (11) |
|
ASM Charts and State Action Tables |
|
|
404 | (8) |
|
|
406 | (4) |
|
|
410 | (2) |
|
|
412 | (2) |
|
|
414 | (1) |
|
|
415 | (2) |
|
Dedicated Microprocessors |
|
|
417 | (50) |
|
Manual Construction of a Dedicated Microprocessor |
|
|
420 | (3) |
|
Examples of Manual Designs of Dedicated Microprocessors |
|
|
423 | (29) |
|
|
424 | (7) |
|
|
431 | (7) |
|
|
438 | (7) |
|
Finding the Largest Number |
|
|
445 | (7) |
|
VHDL for Dedicated Microprocessors |
|
|
452 | (12) |
|
|
452 | (7) |
|
|
459 | (3) |
|
|
462 | (2) |
|
|
464 | (1) |
|
|
464 | (3) |
|
General-Purpose Microprocessors |
|
|
467 | (44) |
|
Overview of the CPU Design |
|
|
468 | (2) |
|
The EC-1 General-Purpose Microprocessor |
|
|
470 | (12) |
|
|
470 | (2) |
|
|
472 | (1) |
|
|
473 | (4) |
|
|
477 | (1) |
|
|
477 | (2) |
|
|
479 | (1) |
|
|
480 | (2) |
|
The EC-2 General-Purpose Microprocessor |
|
|
482 | (12) |
|
|
482 | (1) |
|
|
483 | (2) |
|
|
485 | (5) |
|
|
490 | (1) |
|
|
490 | (3) |
|
|
493 | (1) |
|
VHDL for General-Purpose Microprocessors |
|
|
494 | (13) |
|
|
494 | (10) |
|
|
504 | (3) |
|
|
507 | (1) |
|
|
508 | (3) |
|
A Schematic Entry---Tutorial 1 |
|
|
511 | (14) |
|
|
512 | (1) |
|
Preparing a Folder for the Project |
|
|
512 | (1) |
|
|
512 | (1) |
|
Starting the Graphic Editor |
|
|
513 | (1) |
|
|
513 | (5) |
|
|
513 | (1) |
|
|
514 | (2) |
|
Selecting, Moving, Copying, and Deleting Logic Symbols |
|
|
516 | (1) |
|
Making and Naming Connections |
|
|
516 | (2) |
|
Selecting, Moving and Deleting Connection Lines |
|
|
518 | (1) |
|
Specifying the Top-Level File and Project |
|
|
518 | (1) |
|
Saving the Schematic Drawing |
|
|
518 | (1) |
|
|
519 | (1) |
|
Synthesis for Functional Simulation |
|
|
519 | (1) |
|
|
520 | (4) |
|
Selecting Input Test Signals |
|
|
520 | (1) |
|
Customizing the Waveform Editor |
|
|
521 | (1) |
|
Assigning Values to the Input Signals |
|
|
522 | (1) |
|
|
523 | (1) |
|
|
523 | (1) |
|
Creating and Using the Logic Symbol |
|
|
524 | (1) |
|
B VHDL Entry---Tutorial 2 |
|
|
525 | (9) |
|
|
525 | (3) |
|
Preparing a Folder for the Project |
|
|
525 | (1) |
|
|
526 | (1) |
|
|
527 | (1) |
|
Editing the VHDL Source Code |
|
|
528 | (1) |
|
Synthesis for Functional Simulation |
|
|
528 | (1) |
|
|
529 | (5) |
|
Selecting Input Test Signals |
|
|
529 | (1) |
|
Customizing the Waveform Editor |
|
|
530 | (1) |
|
Assigning Values to the Input Signals |
|
|
531 | (1) |
|
|
532 | (1) |
|
|
532 | (2) |
|
C UP2 Programming---Tutorial 3 |
|
|
534 | (23) |
|
|
535 | (1) |
|
Preparing a Folder for the Project |
|
|
535 | (1) |
|
|
536 | (1) |
|
|
536 | (1) |
|
Synthesis for Programming the PLD |
|
|
536 | (2) |
|
Selecting the Target Device |
|
|
536 | (1) |
|
|
537 | (1) |
|
|
538 | (2) |
|
Mapping the I/O Pins with the Floorplan Editor |
|
|
540 | (3) |
|
Fitting the Netlist and Pins to the PLD |
|
|
543 | (1) |
|
|
544 | (2) |
|
Installing the ByteBlaster Driver |
|
|
544 | (1) |
|
|
544 | (1) |
|
|
545 | (1) |
|
|
546 | (1) |
|
|
547 | (1) |
|
MAX7000S EPM7128SLC84-7 Summary |
|
|
548 | (5) |
|
|
548 | (1) |
|
Prototyping Resources for Use |
|
|
548 | (2) |
|
|
550 | (1) |
|
|
550 | (1) |
|
|
551 | (1) |
|
|
552 | (1) |
|
|
552 | (1) |
|
|
553 | (1) |
|
FLEX10K EPF10K70RC240--4 Summary |
|
|
553 | (4) |
|
|
553 | (1) |
|
Prototyping Resources for Use |
|
|
553 | (1) |
|
|
553 | (1) |
|
|
554 | (1) |
|
|
554 | (1) |
|
|
555 | (1) |
|
|
555 | (1) |
|
|
556 | (1) |
|
|
557 | (24) |
|
|
557 | (10) |
|
|
557 | (1) |
|
|
557 | (1) |
|
|
558 | (1) |
|
|
558 | (3) |
|
|
561 | (1) |
|
|
562 | (1) |
|
|
562 | (2) |
|
|
564 | (1) |
|
|
565 | (2) |
|
Dataflow Model---Concurrent Statements |
|
|
567 | (2) |
|
Concurrent Signal Assignment |
|
|
567 | (1) |
|
Conditional Signal Assignment |
|
|
567 | (1) |
|
Selected Signal Assignment |
|
|
568 | (1) |
|
|
568 | (1) |
|
Behavioral Model---Sequential Statements |
|
|
569 | (6) |
|
|
569 | (1) |
|
Sequential Signal Assignment |
|
|
569 | (1) |
|
|
570 | (1) |
|
|
570 | (1) |
|
|
570 | (1) |
|
|
571 | (1) |
|
|
571 | (1) |
|
|
571 | (1) |
|
|
572 | (1) |
|
|
572 | (1) |
|
|
572 | (1) |
|
|
572 | (1) |
|
|
573 | (1) |
|
|
574 | (1) |
|
|
575 | (1) |
|
Structural Model---Concurrent Statements |
|
|
575 | (4) |
|
|
576 | (1) |
|
|
576 | (1) |
|
|
577 | (1) |
|
|
577 | (1) |
|
|
578 | (1) |
|
|
579 | (2) |
|
|
579 | (1) |
|
|
580 | (1) |
Index |
|
581 | |