国外数字书籍第5期-FPGA新闻资讯论坛-FPGA CPLD-ChipDebug

国外数字书籍第5期

 

01

Combinational Logic Circuits

本书致力于数字电路的分析和设计,其中信号只能假设两种可能的逻辑电平。它涉及数字电子的基本原理和概念。它涉及组合逻辑的各个方面,并提供了对逻辑门的详细了解,逻辑门是用于执行布尔代数功能和运算的电路实现中的基本组件。组合逻辑电路的特点是输出仅取决于实际输入值。

图片[1]-国外数字书籍第5期-FPGA新闻资讯论坛-FPGA CPLD-ChipDebug

图1 Volume 1 Combinational Logic Circuits

提出了推导逻辑方程的有效技术以及组合逻辑电路的分析和综合方法。每一章都结构合理,目录如下:

Chapter 1. Number Systems … 1

1.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2. Decimal numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.3. Binary numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.4. Octal numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.5. Hexadecimal numeration . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.6. Representation in a radix B . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.7. Binary-coded decimal numbers . . . . . . . . . . . . . . . . . . . . . . 7

1.8. Representations of signed integers . . . . . . . . . . . . . . . . . . . . . 8

1.8.1. Sign-magnitude representation . . . . . . . . . . . . . . . . . . . . . 9

1.8.2. Two’s complement representation . . . . . . . . . . . . . . . . . . . 10

1.8.3. Excess-E representation . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.9. Representation of the fractional part of a number . . . . . . . . 13

1.10. Arithmetic operations on binary numbers . . . . . . . . . . .  . . 16

1.10.1. Addition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

1.10.2. Subtraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

1.10.3. Multiplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

1.10.4. Division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

1.11. Representation of real numbers . . . . . . . . . . . . . . . . . . . . . . 20

1.11.1. Fixed-point representation . . . . . . . . . . . . . . . . . . . . . . . 20

1.11.2. Floating-point representation . . . . . . . . . . . . . . . . . . . . . 22

1.12. Data representation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

1.12.1. Gray code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

1.12.2. p-out-of-n code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

1.12.3. ASCII code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

1.12.4. Other codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

1.13. Codes to protect against errors . . . . . . . . . . . . . . . . . . . . . . 31

1.13.1. Parity bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

1.13.2. Error correcting codes . . . . . . . . . . . . . . . . . . . . . . . . . 33

1.14. Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

1.15. Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

Chapter 2. Logic Gates . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

2.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

2.2. Logic gates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

2.2.1. NOT gate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

2.2.2. AND gate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

2.2.3. OR gate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

2.2.4. XOR gate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

2.2.5. Complementary logic gates . . . . . . . . . . . . . . . . . . . . . . . 53

2.3. Three-state buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

2.4. Logic function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

2.5. The correspondence between a truth table and a logic function . 55

2.6. Boolean algebra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

2.6.1. Boolean algebra theorems . . . . . . . . . . . . . . . . . . . . . . . 59

2.6.2. Karnaugh maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

2.6.3. Simplifification of logic functions with multiple outputs . . . . . 73

2.6.4. Factorization of logic functions . . . . . . . . . . . . . . . . . . . . 74

2.7. Multi-level logic circuit implementation . . . . . . . . . . . . . . . . . 76

2.7.1. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

2.7.2. NAND gate logic circuit . . . . . . . . . . . . . . . . . . . . . . . . 78

2.7.3. NOR gate based logic circuit . . . . . . . . . . . . . . . . . . . . . . 80

2.7.4. Representation based on XOR and AND operators . . . . . . . . . 82

2.8. Practical considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

2.8.1. Timing diagram for a logic circuit . . . . . . . . . . . . . . . . . . . 90

2.8.2. Static hazard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

2.8.3. Dynamic hazard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

2.9. Demonstration of some Boolean algebra identities . . . . . . . . . 93

2.10. Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

2.11. Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

Chapter 3. Function Blocks of Combinational Logic . . . . . . . 115

3.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

3.2. Multiplexer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

3.3. Demultiplexer and decoder . . . . . . . . . . . . . . . . . . . . . . . . . 121

3.4. Implementation of logic functions using multiplexers or decoders . . . 127

3.4.1. Multiplexer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

3.4.2. Decoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

3.5. Encoders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

3.5.1. 4:2 encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

3.5.2. 8:3 encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

3.5.3. Priority encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

3.6. Transcoders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

3.6.1. Binary code and Gray code . . . . . . . . . . . . . . . . . . . . . . . 143

3.6.2. BCD and excess-3 code . . . . . . . . . . . . . . . . . . . . . . . . . 149

3.7. Parity check generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

3.8. Barrel shifter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

3.9. Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

3.10. Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

Chapter 4. Systematic Methods for the Simplifification of

Logic Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203

4.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203

4.2. Defifinitions and reminders . . . . . . . . . . . . . . . . . . . . . . . . . . 203

4.2.1. Defifinitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204

4.2.2. Minimization principle of a logic function . . . . . . . . . . . . . . 204

4.3. Karnaugh maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

4.3.1. Function of fifive variables . . . . . . . . . . . . . . . . . . . . . . . . 205

4.3.2. Function of six variables . . . . . . . . . . . . . . . . . . . . . . . . 207

4.3.3. Karnaugh map with entered variable . . . . . . . . . . . . . . . . . 208

4.3.4. Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215

4.3.5. Representation based on the XOR and AND operators . .. . 220

4.4. Systematic methods for simplifification . . . . . . . . . . . . . . . . . . . 220

4.4.1. Determination of prime implicants . . . . . . . . . . . . . . . . . . 221

4.4.2. Finding the constitutive terms of a minimal expression . .  . 224

4.4.3. Quine–McCluskey technique: simplifification of incompletely

defifined functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235

4.4.4. Simplifification of functions with multiple outputs . . . . . . . . . . 235

4.5. Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241

4.6. Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243

Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257

02

Sequential and Arithmetic Logic Circuits

二卷侧重于时序和算术逻辑电路。它涵盖了与以下主题相关的各个方面:触发器、二进制计数器、移位寄存器、算术和逻辑电路、数字集成电路技术、半导体存储器、可编程逻辑电路。

图片[2]-国外数字书籍第5期-FPGA新闻资讯论坛-FPGA CPLD-ChipDebug

图2 Volume 2 Sequential and Arithmetic Logic Circuits

目录如下:

Chapter 1. Latch and Flip-Flop… 1

1.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2. General overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2.1. SR latch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.2.2. S R latch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.2.3. Application: switch debouncing . . . . . . . . . . . . . . . . . . . . 11

1.3. Gated SR latch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.3.1. Implementation based on an SR latch . . . . . . . . . . . . . . . . . 12

1.3.2. Implementation based on an S R latch . . . . . . . . . . . . . . . . 14

1.4. Gated D latch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

1.5. Basic JK flflip-flflop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

1.6. T flflip-flflop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

1.7. Master-slave and edge-triggered flflip-flflop . . . . . . . . . . . 20

1.7.1. Master-slave flflip-flflop . . . . . . . . . . . . . . . . . . . . . . . . . . 20

1.7.2. Edge-triggered flflip-flflop . . . . . . . . . . . . . . . . . . . . . . . . . 24

1.8. Flip-flflops with asynchronous inputs . . . . . . . . . . . . . . . . . . . . 30

1.9. Operational characteristics of flflip-flflops . . . . . . . . . . .  . . . 33

1.10. Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

1.11. Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

Chapter 2. Binary Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

2.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

2.2. Modulo 4 counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

2.3. Modulo 8 counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

2.4. Modulo 16 counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

2.4.1. Modulo 10 counter . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

2.5. Counter with parallel load . . . . . . . . . . . . . . . . . . . . . . . . . 60

2.6. Down counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

2.7. Synchronous reversible counter . . . . . . . . . . . . . . . . . . . . . . 64

2.8. Decoding a down counter . . . . . . . . . . . . . . . . . . . . . . . . . . 65

2.9. Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

2.10. Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

Chapter 3. Shift Register. . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

3.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

3.2. Serial-in shift register . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

3.3. Parallel-in shift register . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

3.4. Bidirectional shift register . . . . . . . . . . . . . . . . . . . . . . . . . 88

3.5. Register fifile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

3.6. Shift register based counter . . . . . . . . . . . . . . . . . . . . . . . . . 91

3.6.1. Ring counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

3.6.2. Johnson counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

3.6.3. Linear feedback counter . . . . . . . . . . . . . . . . . . . . . . . . 94

3.7. Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

3.8. Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

Chapter 4. Arithmetic and Logic Circuits . . . . . . . . . . . . . 117

4.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

4.2. Adder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

4.2.1. Half adder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

4.2.2. Full adder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

4.2.3. Ripple-carry adder . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

4.2.4. Carry-lookahead adder . . . . . . . . . . . . . . . . . . . . . . . . . 122

4.2.5. Carry-select adder . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

4.2.6. Carry-skip adder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

4.3. Comparator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

4.4. Arithmetic and logic unit . . . . . . . . . . . . . . . . . . . . . . . . . . 129

4.5. Multiplier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

4.5.1. Multiplier of 2-bit unsigned numbers . . . . . . . . . . . . . . . . . 136

4.5.2. Multiplier of 4-bit unsigned numbers . . . . . . . . . . . . . . . . . 137

4.5.3. Multiplier for signed numbers . . . . . . . . . . . . . . . . . . . . . 138

4.6. Divider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

4.7. Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

4.8. Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

Chapter 5. Digital Integrated Circuit Technology . . . . . . . 177

5.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

5.2. Characteristics of the technologies . . . . . . . . . . . . .. . . . 177

5.2.1. Supply voltage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

5.2.2. Logic levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

5.2.3. Immunity to noise . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

5.2.4. Propagation delay . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

5.2.5. Electric power consumption . . . . . . . . . . . . . . . . . . . . . . 179

5.2.6. Fan-out or load factor . . . . . . . . . . . . . . . . . . . . . . . . . . 179

5.3. TTL logic family . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180

5.3.1. Bipolar junction transistor . . . . . . . . . . . . . . . . . . . . . . . 180

5.3.2. TTL NAND gate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181

5.3.3. Integrated TTL circuit . . . . . . . . . . . . . . . . . . . . . . . . . . 182

5.4. CMOS logic family . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183

5.4.1. MOSFET transistor . . . . . . . . . . . . . . . . . . . . . . . . . . . 183

5.4.2. CMOS logic gates . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184

5.5. Open drain logic gates . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185

5.5.1. Three-state buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187

5.5.2. CMOS integrated circuit . . . . . . . . . . . . . . . . . . . . . . . . 188

5.6. Other logic families . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

5.7. Interfacing circuits of different technologies . . . . . . .. . . 189

5.8. Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190

5.9. Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193

Chapter 6. Semiconductor Memory. . . . . . . . . . . . . . . . . . . . . 195

6.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195

6.2. Memory organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195

6.3. Operation of a memory . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

6.4. Types of memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

6.4.1. Non-volatile memory . . . . . . . . . . . . . . . . . . . . . . . . . . 199

6.4.2. Volatile memories . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202

6.4.3. Characteristics of the different memory types . . . . . . 207

6.5. Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207

6.5.1. Memory organization . . . . . . . . . . . . . . . . . . . . . . . . . . 208

6.5.2. Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

6.6. Other types of memory . . . . . . . . . . . . . . . . . . . . . . . . . . . 218

6.6.1. Ferromagnetic RAM . . . . . . . . . . . . . . . . . . . . . . . . . . 220

6.6.2. Content-addressable memory . . . . . . . . . . . . . . . . . . . . . . 222

6.6.3. Sequential access memory . . . . . . . . . . . . . . . . . . . . . . . 223

6.7. Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226

6.8. Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230

Chapter 7. Programmable Logic Circuits . . . . . . . . . . . . 245

7.1. General overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245

7.2. Programmable logic device . . . . . . . . . . . . . . . . . . . . . . . . . 246

7.3. Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255

7.3.1. Implementation of logic functions . . . . . . . . . . . . . . . . . . . 255

7.3.2. Two-bit adder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257

7.3.3. Binary-to-BCD and BCD-to-binary converters . . . . .. . . 263

7.4. Programmable logic circuits (CPLD and FPGA) . . . . . . 263

7.4.1. Principle and technology . . . . . . . . . . . . . . . . . . . . . . . . 264

7.4.2. CPLD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268

7.4.3. FPGA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270

7.5. References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274

7.6. Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275

7.7. Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284

Appendix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307

03

Finite-state Machines

探讨了数字电路的基本原理和概念,重点是有限状态机。这些机器的特征是行为由有限和定义的状态数量、每个状态的保持条件以及从一个状态到另一个状态的分支条件决定。它们一次只允许一个转换,并且可以分为两个组件:组合逻辑电路和时序逻辑电路。

图片[3]-国外数字书籍第5期-FPGA新闻资讯论坛-FPGA CPLD-ChipDebug

图3 Finite-state Machines

这种方法是渐进的,并且相对独立于其他章节。为了便于各种概念的吸收和实际实施,本书还辅以一系列实践练习,目录如下:

Chapter 1. Synchronous Finite State Machines… 1

1.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2. State diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.3. Design of synchronous fifinite state machines . . . . . . . . 6

1.4. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.4.1. Flip-flflops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.4.2. Binary sequence detector . . . . . . . . . . . . . . . . . . . . . . . . 12

1.4.3. State machine implementation based on a state table .. . 21

1.4.4. Variable width pulse generator . . . . . . . . . . . . . . . . . . . . . 22

1.5. Equivalent states and minimization of the number of states . . 27

1.5.1. Implication table method . . . . . . . . . . . . . . . . . . . . . . . . 28

1.5.2. Partitioning method . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

1.5.3. Simplifification of incompletely specifified machines .. 42

1.6. State encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

1.7. Transformation of Moore and Mealy state machines  . . . 61

1.8. Splitting fifinite state machines . . . . . . . . . . . . . . . . . . . . . . . 63

1.8.1. Rules for splitting . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

1.8.2. Example 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

1.8.3. Example 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

1.9. Sequence detector implementation based on a programmable circuit . 68

1.10. Practical considerations . . . . . . . . . . . . . . . . . . . . . . . . . . 70

1.10.1. Propagation delays and race conditions . . . . . . . . . . . 72

1.10.2. Timing specififications . . . . . . . . . . . . . . . . . . . . . . . . . 74

1.11. Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

1.12. Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

Chapter 2. Algorithmic State Machines . . . . . . . . . . . . 169

2.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

2.2. Structure of an ASM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

2.3. ASM chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

2.4. Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

2.4.1. Serial adder/subtracter . . . . . . . . . . . . . . . . . . . . . . . . . 175

2.4.2. Multiplier based on addition and shift operations . .  . . 183

2.4.3. Divider based on subtraction and shift operations .. . 187

2.4.4. Controller for an automatic vending machine . . . .. . . 189

2.4.5. Traffific light controller . . . . . . . . . . . . . . . . . . . . . . . . . . 193

2.5. Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200

2.6. Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

Chapter 3. Asynchronous Finite State Machines .  . 213

3.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213

3.2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214

3.3. Gated D latch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214

3.4. Muller C-element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218

3.5. Self-timed circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220

3.6. Encoding the states of an asynchronous state machine . . . 224

3.7. Synthesis of asynchronous circuits . . . . . . . . .  . . . . 227

3.7.1. Oscillatory cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227

3.7.2. Essential and d-trio hazards . . . . . . . . . . . . . . . . . . . . . . 228

3.7.3. Design of asynchronous state machines . . . . . . . . 239

3.8. Application examples of asynchronous state machines . 240

3.8.1. Pulse synchronizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240

3.8.2. Asynchronous counter . . . . . . . . . . . . . . . . . . . . . . . . . 243

3.9. Implementation of asynchronous machines using SR latches or

C-elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247

3.10. Asynchronous state machine operating in pulse mode . . 251

3.11. Asynchronous state machine operating in burst mode  . . 256

3.12. Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258

3.13. Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266

Appendix. Overview of VHDL Language . . . . . . . . . . . . . . . . . . 287

A.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287

A.2. Principles of VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287

A.2.1. Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288

A.2.2. Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288

A.2.3. Library and packages . . . . . . . . . . . . . . . . . . . . . . . . . . 289

A.2.4. Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289

A.2.5. Signal and variable . . . . . . . . . . . . . . . . . . . . . . . . . . . 289

A.2.6. Data types and objects . . . . . . . . . . . . . . . . . . . . . . . . . 289

A.2.7. Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290

A.2.8. Entity and architecture . . . . . . . . . . . . . . . . . . . . . . . . . 291

A.3. Concurrent instructions . . . . . . . . . . . . . . . .  . . . . 292

A.3.1. Concurrent instructions with selective assignment .. 293

A.3.2. Concurrent instructions with conditional assignment .  293

A.4. Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294

A.4.1. Generics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296

A.4.2. The GENERATE Instruction . . . . . . . . . . . . . . . . . . . . . 296

A.4.3. Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297

A.5. Sequential structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298

A.5.1. The IF instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298

A.5.2. CASE instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303

A.6. Testbench . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306

Bibliography. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311

 

END

 

请登录后发表评论

    没有回复内容