图书目录

第1章逻辑器件简介1

1.1逻辑器件概述1

1.1.1固定逻辑芯片1

1.1.2简单PLD器件2

1.1.3CPLD器件5

1.1.4FPGA器件5

1.1.5专用集成电路9

1.2Cyclone Ⅱ系列FPGA10

1.2.1概述10

1.2.2逻辑单元12

1.2.3片内存储器12

1.2.4片内乘法器16

1.2.5输入输出模块17

1.3DE70开发平台19

1.3.1外观和组件19

1.3.2USBBlaster的驱动安装22

1.3.3DE270开发板的使用25

第2章EDA技术基础知识27

2.1数字逻辑系统设计过程27

2.2Quartus Ⅱ使用入门29

2.2.1问题分析和设计29

2.2.2利用Quartus Ⅱ完成电路仿真31

2.2.3尝试自己设计一个实验56

2.3Verilog HDL语言简介56

2.3.1Verilog HDL语言程序的结构56

2.3.2逻辑系统、变量和常量582.3.3操作符和表达式60

2.3.4电路设计的三种不同形式61

第3章组合逻辑电路设计64

3.1选择器实验64

3.1.1二选一多路选择器64

3.1.2四选一多路选择器65

3.1.3实现一个多路选择器66

3.1.4实验内容73

3.2译码器的设计78

3.2.124译码器78

3.2.238译码器81

3.2.3实验内容85

3.3编码器的设计88

3.3.142编码器88

3.3.2实验内容92

3.4三态缓冲器和多路复用器93

3.4.1一位三态缓冲器94

3.4.2实验内容94

3.5简单加法器和乘法器96

3.5.11位加法器96

3.5.2实现一个8位加法器97

3.5.3实验内容104

第4章时序逻辑电路设计106

4.1触发器和锁存器实验106

4.1.1RS锁存器106

4.1.2时钟触发的RS锁存器107

4.1.3D锁存器107

4.1.4时钟边沿触发的D触发器108

4.1.5触发器设计中的非阻塞赋值语句109

4.1.6实验内容111

4.2寄存器实验111

4.2.1寄存器112

4.2.2移位寄存器113

4.2.3实验内容113

4.3计数器实验115

4.3.1加法计数器115

4.3.2减法计数器115

4.3.3实验内容116

4.4定时器118

4.4.1开发板上的时钟信号118

4.4.2实验内容118

4.5存储器实验119

4.5.1DE270实验平台上的M4K119

4.5.2单时钟简单双口RAM119

4.5.3实验内容122

第5章状态机和简单数字系统设计124

5.1状态机实验124

5.1.1有限状态机124

5.1.2简单状态机FSM125

5.1.3状态机的编码方式129

5.1.4实验内容129

5.2雷鸟车尾灯控制器*130

5.2.1实验目的130

5.2.2实验内容130

5.2.3问题分析130

5.3交通控制灯实验132

5.3.1实验目的132

5.3.2实验内容132

第6章简单接口控制器设计133

6.1PS/2接口原理及实现133

6.1.1PS/2接口简介133

6.1.2PS/2接口与FPGA的连接135

6.1.3PS/2键盘控制器的设计136

6.2LCD接口原理及实现138

6.2.1LCD简介138

6.2.2LCD与FPGA的连接139

6.2.3LCD的控制器HD44780141

6.2.4LCD显示控制器的设计147

6.3VGA接口原理及实现154

6.3.1VGA简介154

6.3.2VGA和FPGA的连接155

6.3.3VGA显示控制器的设计157

附录竞争、冒险和毛刺160

附.1竞争、冒险和毛刺现象160

附.2毛刺的消除方法161

附.2.1利用冗余项法161

附.2.2吸收法162

附.2.3锁存法162

附.2.4信号延时法163

参考文献164

第1章逻辑器件简介1

1.1逻辑器件概述1

1.1.1固定逻辑芯片1

1.1.2简单PLD器件2

1.1.3CPLD器件5

1.1.4FPGA器件5

1.1.5专用集成电路9

1.2Cyclone Ⅱ系列FPGA10

1.2.1概述10

1.2.2逻辑单元12

1.2.3片内存储器12

1.2.4片内乘法器16

1.2.5输入输出模块17

1.3DE70开发平台19

1.3.1外观和组件19

1.3.2USBBlaster的驱动安装22

1.3.3DE270开发板的使用25

第2章EDA技术基础知识27

2.1数字逻辑系统设计过程27

2.2Quartus Ⅱ使用入门29

2.2.1问题分析和设计29

2.2.2利用Quartus Ⅱ完成电路仿真31

2.2.3尝试自己设计一个实验56

2.3Verilog HDL语言简介56

2.3.1Verilog HDL语言程序的结构57

2.3.2逻辑系统、变量和常量58

2.3.3操作符和表达式60

2.3.4电路设计的三种不同形式61

第3章组合逻辑电路设计65

3.1选择器实验65

3.1.1二选一多路选择器65

3.1.2四选一多路选择器66

3.1.3实现一个多路选择器67

3.1.4实验内容74

3.2译码器的设计79

3.2.124译码器79

3.2.238译码器82

3.2.3实验内容86

3.3编码器的设计89

3.3.142编码器89

3.3.2实验内容93

3.4三态缓冲器和多路复用器94

3.4.1一位三态缓冲器95

3.4.2实验内容95

3.5简单加法器和乘法器97

3.5.11位加法器97

3.5.2实现一个8位加法器98

3.5.3实验内容105

第4章时序逻辑电路设计107

4.1触发器和锁存器实验107

4.1.1RS锁存器107

4.1.2RS时钟触发的RS锁存器108

4.1.3D锁存器108

4.1.4时钟边沿触发的D触发器108

4.1.5触发器设计中的非阻塞赋值语句111

4.1.6实验内容112

4.2寄存器实验113

4.2.1寄存器113

4.2.2移位寄存器114

4.2.3实验内容115

4.3计数器实验116

4.3.1加法计数器116

4.3.2减法计数器117

4.3.3实验内容117

4.4定时器119

4.4.1开发板上的时钟信号119

4.4.2实验内容119

4.5存储器实验120

4.5.1DE270实验平台上的M4K120

4.5.2单时钟简单双口RAM121

4.5.3实验内容124

第5章状态机和简单数字系统设计125

5.1状态机实验125

5.1.1有限状态机125

5.1.2简单状态机FSM126

5.1.3状态机的编码方式129

5.1.4实验内容130

5.2雷鸟车尾灯控制器131

5.2.1实验目的131

5.2.2实验内容131

5.2.3问题分析131

5.3交通控制灯实验132

5.3.1实验目的132

5.3.2实验内容132

第6章简单数字系统设计134

6.1PS/2接口原理及实现134

6.1.1PS/2接口简介134

6.1.2PS/2接口与FPGA的连接136

6.1.3PS/2键盘控制器的设计137

6.2LCD接口原理及实现139

6.2.1LCD简介139

6.2.2LCD与FPGA的连接140

6.2.3LCD的控制器HD44780142

6.2.4LCD显示控制器的设计148

6.3VGA接口原理及实现155

6.3.1VGA简介155

6.3.2VGA和FPGA的连接156

6.3.3VGA显示控制器的设计158

附录竞争、冒险和毛刺161

附1竞争、冒险和毛刺现象161

附2毛刺的消除方法162

附2.1利用冗余项法162

附2.2吸收法163

附2.3锁存法163

附2.4信号延时法164

参考文献165

第1章数在计算机中的表示形式1

1.1机器数与真值1

1.2常见的机器数表示形式2

1.2.1原码2

1.2.2补码3

1.2.3反码4

1.2.4原码、补码和反码之间的转换4

1.2.5移码表示法5

1.2.64种机器数表示形式的比较和小结6

1.3数的定点表示与浮点表示6

1.3.1定点表示法6

1.3.2浮点表示法7

1.4二十进制编码10

1.4.1二十进制编码特点10

1.4.28421码10

1.5二进制信息的计量单位11

习题112

第2章计算机的基本结构与工作过程13

2.1计算机的基本结构13

2.1.1冯·诺依曼计算机基本结构13

2.1.2计算机的基本组成框图及功能部件简介14

2.2计算机的工作流程17

2.2.1指令与程序17

2.2.2计算机的基本工作流程18

2.3计算机系统的组成21

2.3.1硬件与软件21

2.3.2计算机系统的基本组成21

2.4微型计算机的产生和发展22

2.4.1世界上第一个微处理器和微型计算机的诞生22

2.4.2微型计算机的发展阶段22

2.5微型计算机的分类及主要技术指标24

2.5.1微型计算机的分类24

2.5.2微型计算机的主要技术指标25

2.6微型计算机的基本结构及系统组成26

2.6.1微型计算机基本结构27

2.6.2微型计算机的系统组成28

习题228

目录微机原理与接口技术第3章微处理器的编程结构30

3.1微处理器的工作模式30

3.1.1实模式31

3.1.2保护模式31

3.1.3虚拟8086模式31

3.2微处理器的编程结构32

3.2.1程序可见寄存器32

3.2.280x86/Pentium处理器的寄存器模型32

3.3实模式下的存储器寻址37

3.3.1实模式下的存储器地址空间37

3.3.2存储器分段技术37

3.3.3实模式下的存储器寻址38

3.3.4堆栈42

3.4实模式I/O地址空间43

习题344

第4章寻址方式与指令系统45

4.1寻址方式45

4.1.1数据寻址方式46

4.1.2转移地址寻址方式52

4.2指令编码54

4.2.1指令编码格式54

4.2.2指令编码举例57

4.38086指令系统57

4.3.1数据传送指令58

4.3.2算术运算指令64

4.3.3逻辑运算与移位指令76

4.3.4串操作指令79

4.3.5转移指令83

4.3.6处理器控制指令90

4.480286~Pentium指令系统91

习题491

第5章汇编语言的基本语法93

5.1汇编语言的特点93

5.2汇编语言程序结构和基本语法94

5.2.1示例程序94

5.2.2基本概念95

5.2.3指令语句101

5.2.4伪指令语句104

5.2.5结构与记录111

5.2.6宏指令113

5.2.7简化段定义116

5.3ROM BIOS中断调用和DOS系统功能调用117

5.3.1ROM BIOS中断调用117

5.3.2DOS系统功能调用118

5.4汇编语言程序的上机过程118

5.4.1.exe文件的上机过程118

5.4.2.com文件及其上机过程126

习题5128

第6章汇编语言程序设计及应用132

6.1汇编语言程序设计的基本方法132

6.1.1程序设计的基本步骤132

6.1.2程序的基本结构形式133

6.1.3子程序设计135

6.2汇编语言的编程应用137

6.2.1I/O与通信137

6.2.2声音与时钟138

6.2.3乐曲程序139

6.2.4键盘I/O143

6.2.5鼠标器编程145

6.2.6图形显示148

6.3Windows汇编语言程序设计简介152

6.3.1Windows API函数152

6.3.2动态链接库153

6.3.3指令集选择153

6.3.4工作模式选择153

6.3.5函数的原型定义154

6.3.6Windows应用程序的基本结构框架154

6.3.7Win32汇编语言应用程序实例154

6.3.8MASM 32汇编与连接命令156

6.4高级汇编语言技术156

6.4.1条件汇编156

6.4.2库的使用157

6.4.3汇编语言与高级语言的混合编程158

习题6163

第7章微处理器的内部结构及外部功能特性164

7.1微处理器的内部结构164

7.1.1总线接口单元BIU164

7.1.2指令Cache与数据Cache165

7.1.3超标量流水线结构165

7.1.4动态转移预测及转移目标缓冲器BTB166

7.1.5指令预取器和预取缓冲器168

7.1.6指令译码器169

7.1.7执行单元EU169

7.1.8浮点处理单元FPU169

7.1.9控制单元CU170

7.2微处理器的外部功能特性170

7.2.1微处理器的外部引脚信号170

7.2.2微处理器的总线时序175

习题7179

第8章I/O接口与DMA技术181

8.1I/O接口概述181

8.1.1I/O接口的基本功能181

8.1.2I/O接口的基本结构182

8.1.3I/O端口的编址方式183

8.1.4I/O接口的地址分配184

8.1.5I/O接口的地址译码及片选信号的产生185

8.1.6I/O指令186

8.2I/O控制方式186

8.2.1程序控制方式187

8.2.2中断控制方式188

8.2.3DMA方式189

8.3DMA接口技术190

8.3.1DMA控制器的基本功能190

8.3.2DMA控制器的一般结构191

8.3.3DMA控制器的工作方式192

8.3.4DMA工作过程193

8.3.5可编程DMA控制器8237194

习题8195

第9章中断系统196

9.1基本概念1969.1.1中断1969.1.2中断响应和处理的一般过程1979.1.3中断优先级和中断嵌套198

9.280x86实模式的中断系统2009.2.1中断的分类2009.2.2中断向量表2009.2.3外部中断2039.2.4内部中断2049.2.5中断响应和中断处理过程206

9.3可编程中断控制器8259A2099.3.18259A的引脚功能2109.3.28259A的内部结构2109.3.38259A的工作过程2119.3.48259A的工作方式2129.3.58259A的级联使用2149.3.68259A的控制字及编程使用2169.3.78259A应用举例221

9.4中断服务程序设计2229.4.1中断服务程序的一般结构2229.4.2在中断向量表中置入中断向量2239.4.3中断服务程序设计225

习题9226第10章并行通信及其接口电路228

10.1可编程并行接口的组成及工作过程22810.1.1可编程并行接口的组成及其与CPU和外设的连接22810.1.2可编程并行接口的数据输入输出过程229

10.2可编程并行通信接口8255A23010.2.18255A的性能概要23010.2.28255A芯片引脚分配及引脚信号说明23010.2.38255A内部结构方块图23110.2.48255A的控制字23210.2.58255A的工作方式23410.2.68255A的状态字24010.2.78255A应用举例241

习题10244第11章串行通信及其接口电路247

11.1串行通信24711.1.1串行通信的特点24711.1.2串行通信涉及的常用术语和基本概念248

11.2串行通信接口标准25311.2.1RS232C25311.2.2RS485254

11.3串行接口的基本结构与功能25411.3.1串行异步接口的基本结构与功能25511.3.2串行同步接口的基本结构与功能256

11.4可编程串行通信接口8251A25711.4.1USART25711.4.28251A的基本功能和工作原理25811.4.38251A对外接口信号26011.4.48251A的编程26311.4.58251A应用举例267

习题11269第12章计数/定时技术271

12.1概述271

12.2可编程计数器/定时器825327212.2.18253的主要功能27212.2.28253的结构框图27212.2.38253的引脚27412.2.48253的工作方式27412.2.58253的初始化编程27912.2.68253的读出操作283

12.38253的应用284

习题12286第13章存储器及其接口288

13.1概述28813.1.1存储器的分类28813.1.2存储器的性能指标28913.1.3存储系统的层次结构29013.1.4内存储器的基本结构及其数据组织292

13.2半导体存储器及其典型芯片29313.2.1可读写存储器RAM29413.2.2只读存储器ROM306

13.3存储器接口技术31313.3.1存储器与CPU连接时应考虑的问题31313.3.2存储器接口中的片选控制31413.3.3存储器扩展31713.3.4存储器接口分析与设计举例31813.3.516位、32位、64位存储器接口320

13.4改进存储器性能的相关技术32313.4.1双端口存储器32313.4.2并行主存系统324

13.5高速缓存(Cache)32613.5.1Cache基本原理32613.5.2Cache的组织方式32813.5.3Cache控制器8238532913.5.4Cache的更新方式及替换算法333

13.6虚拟存储器33513.6.1虚拟存储器的工作原理33513.6.280x86的虚拟存储技术337

习题13338第14章模拟接口340

14.1模拟接口概述340

14.2D/A转换器34114.2.1D/A转换器的工作原理34114.2.2D/A转换器的主要技术指标34414.2.3D/A转换器芯片34514.2.4D/A转换器芯片与微处理器的接口34714.2.5D/A转换器的应用348

14.3A/D转换器34914.3.1基本概念34914.3.2A/D转换器的工作原理35114.3.3A/D转换器的主要技术指标35214.3.4A/D转换器芯片35314.3.5A/D转换器芯片与微处理器的接口354

习题14357第15章总线技术359

15.1概述35915.1.1总线35915.1.2总线的分类36015.1.3总线标准36115.1.4总线仲裁362

15.2PCI总线36315.2.1概述36315.2.2PCI总线的系统结构及特点36315.2.3PCI总线的引脚信号365

15.3USB总线36715.3.1USB概述36715.3.2USB的拓扑结构36815.3.3USB协议简介369

15.4高速总线接口IEEE 1394373

15.5高速图形端口AGP374

习题15376第16章80x86/Pentium保护模式的概念与技术377

16.1保护模式概述377

16.2保护模式的主要数据结构37816.2.1段描述符37816.2.2描述符表37816.2.3段选择符379

16.3保护模式的存储器管理和地址转换38016.3.1物理地址、线性地址与逻辑地址38016.3.2虚拟地址和虚拟地址空间38116.3.3虚拟地址空间的分段38116.3.4物理地址空间和虚实地址转换38216.3.5段式地址转换38316.3.6页式地址转换38616.3.7转换旁视缓冲器TLB(快表)389

16.4多任务和保护39016.4.1保护和特权级39016.4.2保护模式的中断和异常392

16.5虚拟8086模式394

习题16394第17章高性能微处理器的先进技术及典型结构396

17.1高性能微处理器所采用的先进技术39617.1.1指令级并行39617.1.2超标量技术39717.1.3超长指令字结构39817.1.4超级流水线技术39817.1.5RISC技术399

17.2高性能微处理器举例40117.2.164位处理器Alpha 2106440117.2.2Itanium处理器——IA64架构的开放硬件平台403

17.3多核处理器简介40517.3.1复杂单处理器结构所遇到的挑战40517.3.2多核处理器的出现40517.3.3多核处理器结构的主要特点406

17.4现代PC主板典型结构40717.4.1芯片组、桥芯片及接口插座40717.4.2Pentium PC主板结构40817.4.3Pentium 4 PC主板的I/O组织结构409

习题17410附录A8086/8088指令编码格式411附录BDOS功能调用(INT 21H)416附录CBIOS中断调用421附录D调试程序DEBUG的使用425部分习题参考答案429参考文献444