当前位置:首页 > 工业技术
VHDL数字设计与计算机设计基础
VHDL数字设计与计算机设计基础

VHDL数字设计与计算机设计基础PDF电子书下载

工业技术

  • 电子书积分:20 积分如何计算积分?
  • 作 者:桑迪奇,桑迪奇著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2015
  • ISBN:9787302394440
  • 页数:749 页
图书介绍:本书可作为数字设计与计算机设计的导论课教材。全书使用VHDL来实现数字设计和计算机设计。本书可作为电子工程、计算机工程以及计算机科学学生的大一或大二的教材。本书的第一部分(第1~9章)重点介绍数字设计,第二部分重点介绍计算机设计与汇编语言程序设计。
《VHDL数字设计与计算机设计基础》目录

第1章 布尔代数、布尔函数、VHDL和门 1

1.1 引言 1

1.2 布尔代数基础 1

1.2.1 维恩图 2

1.2.2 布尔函数的黑盒子 3

1.2.3 基本逻辑符号 4

1.2.4 布尔代数公理 6

1.2.5 布尔代数定理 7

1.2.6 布尔代数定理的证明 8

1.3 从真值表推导出布尔函数 9

1.3.1 用函数的1值推导出布尔函数 10

1.3.2 用函数的0值推导出布尔函数 11

1.3.3 用最小项和最大项推导出布尔函数 11

1.4 简单门函数的VHDL设计 14

1.4.1 NOT函数的VHDL设计 14

1.4.2 AND函数的VHDL设计 16

1.4.3 OR函数的VHDL设计 17

1.4.4 XOR函数的VHDL设计 19

1.4.5 NAND函数的VHDL设计 20

1.4.6 NOR函数的VHDL设计 22

1.4.7 XNOR函数的VHDL设计 23

1.4.8 BUFFER函数的VHDL设计 25

1.4.9 用标准形式给出的任意布尔函数的VHDL设计 27

1.5 有关逻辑门的更多内容 29

1.5.1 等价门符号 29

1.5.2 全功能门 30

1.5.3 等价门电路 30

1.5.4 门的简化描述名称 31

1.5.5 门的国际逻辑符号 32

习题 33

第2章 数制转换、码制和函数最简化 39

2.1 引言 39

2.2 数字电路与模拟电路 39

2.2.1 人类心脏的数字化信号 39

2.2.2 离散信号与连续信号 39

2.3 二进制数制转换 40

2.3.1 十进制数、二进制数、八进制数和十六进制数 40

2.3.2 转换技术 42

2.4 二进制码制 46

2.4.1 小键盘和键盘的最少比特表示 47

2.4.2 常见码制:BCD、ASCII以及其他 47

2.4.3 二进制和反射格雷码之间的模2加法和转换 50

2.4.4 七段码 52

2.4.5 字母显示系统的VHDL设计 53

2.5 卡诺图化简方法 56

2.5.1 卡诺图资源管理器 56

2.5.2 使用两变量卡诺图 57

2.5.3 使用三变量卡诺图 59

2.5.4 使用四变量卡诺图 61

2.5.5 无关的输出 63

习题 65

第3章 逻辑电路分析和设计简介 73

3.1 引言 73

3.2 集成电路器件 73

3.3 分析和设计逻辑电路 74

3.3.1 分析和设计继电器逻辑电路 75

3.3.2 分析IC逻辑电路 76

3.3.3 设计IC逻辑电路 77

3.4 生成详细的原理图 80

3.5 用与非/与非和或非/或非形式设计电路 82

3.6 传输延时 84

3.7 译码器 86

3.7.1 用译码器和单个门设计逻辑电路 88

3.8 多路选择器 91

3.8.1 用多路选择器设计逻辑电路 93

3.9 险象 95

3.9.1 功能险象 95

3.9.2 逻辑险象 96

习题 97

第4章 用VHDL实现组合逻辑电路的设计 103

4.1 引言 103

4.2 VHDL 103

4.3 库组成 104

4.4 实体声明 105

4.5 结构体声明 106

4.5.1 数据流设计风格评价 107

4.5.2 行为设计风格评价 107

4.5.3 结构设计风格评价 107

4.6 数据流设计风格 107

4.7 行为设计风格 111

4.8 结构设计风格 116

4.9 用连线和总线实现 122

4.10 VHDL设计实例 126

4.10.1 用标量输入和输出设计 126

4.10.2 用向量输入和输出设计 128

4.10.3 通用VHDL架构 130

习题 131

第4章 双稳态存储器件的VHDL设计 138

5.1 引言 138

5.2 S-R NOR锁存器分析 138

5.2.1 简单的电灯开关 138

5.2.2 S-R NOR锁存器的电路延迟模型 140

5.2.3 S-R NOR锁存器的特性表 141

5.2.4 S-R NOR锁存器的特征方程 141

5.2.5 S-R NOR锁存器的PS/NS表 142

5.2.6 S-R NOR锁存器的时序图 143

5.3 S-R NAND锁存器分析 145

5.3.1 S-R NAND锁存器电路延迟模型 145

5.3.2 S-R NAND锁存器的特性表 146

5.3.3 S-R NAND锁存器的特征方程 146

5.3.4 S-R NAND锁存器的PS/NS表 146

5.3.5 S-R NAND锁存器的时序图 147

5.4 设计一个简单的时钟 148

5.5 设计一个D锁存器 151

5.5.1 门控S-R锁存器电路设计 151

5.5.2 用S-R锁存器设计D锁存器电路 152

5.5.3 利用D锁存器的特性表来设计D锁存器电路 153

5.5.4 D锁存器的时序图 154

5.5.5 用D锁存器构造一个时钟 156

5.5.6 构造一个8比特的D锁存器 156

5.6 设计D触发器电路 157

5.6.1 设计主从型D触发器电路 157

5.6.2 用S-R NAND设计D触发器 161

5.6.3 上升沿触发的D触发器的时序图 164

习题 166

第6章 用VHDL设计简单的有限状态机 173

6.1 引言 173

6.2 同步电路 173

6.3 用VHDL构造一个D型触发器 174

6.4 设计简单的同步电路 176

6.5 用算法公式法设计计数器 176

6.6 用算法公式法设计非传统计数器 184

6.7 用算术法设计计数器 188

6.8 分频(降低一个快时钟的频率) 189

6.9 用PS/NS表格法设计计数器 192

6.10 用PS/NS表格法设计非传统计数器 195

习题 197

第7章 计算机电路 207

7.1 引言 207

7.2 三态输出与断开状态 207

7.3 微型计算机系统的数据总线共享 210

7.4 深入了解XOR和XNOR符号及功能 213

7.4.1 奇函数和偶函数 215

7.4.2 单比特错误检测系统 216

7.4.3 比较器和大于电路 218

7.5 加法器设计 221

7.5.1 半加器模块的设计 221

7.5.2 全加器模块的设计 222

7.6 设计及使用行波进位加法器和减法器 224

7.7 行波进位加法器的传播延迟时间 227

7.8 设计超前进位加法器 227

7.9 超前进位加法器的传播延迟时间 230

习题 231

第8章 电路实现技术 236

8.1 引言 236

8.2 可编程逻辑器件 236

8.2.1 可编程只读存储器(PROM)和查找表(LUT) 238

8.2.2 可编程逻辑阵列(PLA) 239

8.2.3 可编程阵列逻辑(PAL)或者通用阵列逻辑(GAL) 240

8.2.4 使用PROM或者LUT进行电路设计 241

8.2.5 使用PLA进行电路设计 242

8.2.6 使用PAL或者GAL进行电路设计 243

8.3 正逻辑规则和直接极性标志 244

8.3.1 信号名称 244

8.3.2 PLC和DPI系统的等效电路分析 245

8.4 更多关于多路选择器和数据分路器的内容 247

8.4.1 MUX树设计 249

8.4.2 DMUX树设计 250

习题 250

第9章 复杂有限状态机的VHDL设计 255

9.1 引言 255

9.2 基于双进程PS/NS方法的设计 256

9.3 CPLD、FPGA和状态机编码风格浅析 260

9.4 有限状态机模型总结 262

9.5 利用摩尔输出设计紧凑编码状态机 264

9.6 利用摩尔输出设计单热点编码的状态机 266

9.7 利用摩尔和米利输出设计紧凑编码状态机 270

9.8 利用摩尔和米利输出设计单热点编码状态机 273

9.9 利用算法公式法设计复杂状态机 275

9.10 提高复杂状态机的可靠性 281

9.11 其他状态机设计方法 285

9.11.1 双分配PS/NS方法 285

9.11.2 混合PS/NS方法 289

习题 292

第10章 基本的计算机体系结构 311

10.1 引言 311

10.2 通用数据处理系统或计算机 311

10.3 哈佛型计算机和RISC体系结构 312

10.4 普林斯顿(冯·诺依曼)型计算机和CISC体系结构 314

10.5 VBC1概述 315

10.6 VBC1设计原理 316

10.7 VBC1编程器寄存器模型 318

10.8 VBC1指令集体系结构 319

10.9 汇编语言程序的编写格式 321

习题 322

第11章 VBC1的汇编语言编程 325

11.1 引言 325

11.2 VBC1指令集 325

11.3 IN指令 325

11.4 OUT指令 329

11.5 MOV指令 331

11.6 LOADI指令 333

11.7 ADDI指令 334

11.8 ADD指令 336

11.9 SR0指令 338

11.10 JNZ指令 339

11.11 VBC1编程实例和技术 342

11.11.1 无条件跳转 342

11.11.2 标签 342

11.11.3 循环计数器 342

11.11.4 程序“横行” 343

11.11.5 减法指令 344

11.11.6 乘法指令 345

11.11.7 除法指令 345

习题 346

第12章 设计输入输出电路 351

12.1 引言 351

12.2 设计仲裁电路 351

12.3 设计总线仲裁电路 353

12.4 设计可加载寄存器电路 354

12.5 设计输入电路 356

12.5.1 设计由4个滑动开关驱动的输入电路 358

12.6 设计输出电路 359

12.6.1 设计驱动4个LED的输出电路 360

12.6.2 设计一个可以驱动七段显示器的输出电路 362

12.6.3 仔细观察显示0的电路 364

12.7 结合输入输出电路搭建一个简单I/O系统 365

12.8 可选的VHDL设计风格 368

习题 369

第13章 设计指令存储器、加载程序计数器和去抖动电路 372

13.1 引言 372

13.2 设计一个指令存储器 372

13.2.1 指令存储器的代码变形 375

13.2.2 在启动阶段初始化VBC1的指令存储器 377

13.3 设计一个加载程序计数器 380

13.4 设计一个去抖动单脉冲电路 382

13.5 设计去抖动单脉冲电路的验证电路 385

习题 393

第14章 设计多路显示系统 396

14.1 引言 396

14.2 4个七段LED显示器构成的多路显示系统 396

14.3 用VHDL设计多路显示系统 399

14.3.1 设计模块1:四选一MUX阵列 399

14.3.2 设计模块2:十六进制显示译码器 400

14.3.3 设计模块3:2比特计数器和分频器 401

14.3.4 设计模块4:2-4线译码器 403

14.4 用平面设计方法设计多路显示系统 404

14.5 用层次化设计方法设计多路显示系统 407

14.6 利用平面设计方法设计一个字符显示系统 413

习题 418

第15章 设计指令译码器 421

15.1 引言 421

15.2 指令译码器设计目标 421

15.3 指令IN、OUT和MOV的指令译码器真值表 422

15.4 设计指令IN的指令译码器 424

15.5 设计指令OUT和MOV的指令译码器 425

15.6 指令LOADI的指令译码器真值表 426

15.7 指令ADDI的指令译码器真值表 427

15.8 指令ADD的指令译码器真值表 428

15.9 指令SR0的指令译码器真值表 428

15.10 设计指令SR0的指令译码器 429

15.11 JNZ指令译码器真值表 430

15.12 设计指令JNZ的指令译码器 433

15.13 设计VBC1的指令译码器 434

习题 435

第16章 设计算术逻辑单元 440

16.1 引言 440

16.2 算术逻辑单元的使用 440

16.3 设计ALU的LOADI指令部分 442

16.4 设计ALU的ADDI指令部分 442

16.5 设计ALU的ADD指令部分 443

16.6 设计ALU的SR0指令部分 444

16.7 设计一个用于VBC1的ALU 445

16.8 用VHDL设计的附加电路 445

16.8.1 设计额外的ALU电路 445

16.8.2 设计移位电路 448

16.8.3 设计桶形移位电路 452

16.8.4 设计移位寄存器电路 455

习题 457

第17章 完成VBC1的设计 460

17.1 引言 460

17.2 设计一个运行程序计数器 460

17.3 将载入程序计数器与运行程序计数器结合起来 463

17.4 设计运行频率电路和速度电路 465

17.5 设计VBC1的指令存储器的载入电路 467

习题 468

第18章 VBC1-E的汇编语言编程 470

18.1 引言 470

18.2 指令总结 470

18.3 输入、输出与中断指令 472

18.4 数据存储指令 477

18.5 算术指令与逻辑指令 480

18.6 移位指令与循环移位指令 482

18.7 跳转指令、相对跳转指令与暂停指令 485

18.8 关于中断与汇编器命令的更多内容 489

18.9 VBC1-E完整指令集总结 494

习题 495

第19章 设计VBC1-E的输入输出电路 506

19.1 引言 506

19.2 VBC1-E的输入电路设计 506

19.3 VBC1-E的修改后IN指令的指令译码真值表 508

19.4 VBC1-E的输出电路设计 510

19.5 VBC1-E的修改后OUT指令的指令译码真值表 512

19.6 VBC1-E的修改后IN和OUT指令的指令译码器设计 515

19.7 VBC1-E的LOADI、ADDI和JNZ指令的指令译码器设计 516

习题 517

第20章 设计VBC1-E的数据存储器电路 520

20.1 引言 520

20.2 设计VBC1-E的数据存储器 520

20.3 设计VBC1-E的寄存器和数据选择电路 524

20.4 VBC1-E的STORE和FETCH指令的指令译码器真值表 525

20.5 设计VBC1-E的STORE和FETCH指令的指令译码器 527

20.6 设计VBC1-E的MOV指令的指令译码器 528

习题 529

第21章 设计VBC1-E的算术、逻辑、移位、旋转和无条件跳转电路 531

21.1 引言 531

21.2 VBC1-E ALU的算术和逻辑指令部分设计 531

21.3 VBC1-E的算术和逻辑指令译码器设计 533

21.4 VBC1-E ALU的移位和旋转指令部分设计 534

21.5 VBC1-E的移位和旋转指令译码器设计 536

21.6 VBC1-E的JMP和JMPR电路设计 537

21.7 VBC1-E的JMP和JMPR指令译码器设计 538

习题 539

第22章 设计VBC1-E中手动载入时阻止程序执行的电路 542

22.1 引言 542

22.2 设计VBC1-E中修改手动载入的电路 542

22.3 修改手动载入时VBC1-E中的指令译码器 544

习题 544

第23章 设计VBC1-E的扩展指令存储器 545

23.1 引言 545

23.2 为VBC1-E修改指令存储器以增加扩展指令存储器 545

23.3 为VBC1-E修改运行程序计数器电路 548

23.4 为VBC1-E修改合理地址电路 550

23.5 为VBC1-E修改加载程序计数器电路 550

23.6 为VBC1-E修改JMPR电路 551

习题 551

第24章 设计VBC1-E的软件中断电路 554

24.1 引言 554

24.2 设计VBC1-E的运行程序计数器与选择电路的改进电路 554

24.3 设计VBC1-E的存储PCPLUS1的电路 558

24.4 VBC1-E的INT和IRET指令的指令译码器真值表 560

24.5 设计VBC1-E的INT和IRET指令的指令译码器 561

习题 562

第25章 完成VBC1-E的设计 566

25.1 引言 566

25.2 设计VBC1-E的去抖动单脉冲触发中断电路并修改RPC电路 566

25.3 设计VBC1-E的RETA信号的显示电路 570

25.4 设计VBC1-E的提供指令存储器的加载器功能的电路 575

习题 575

附录A 实验案例 578

实验1A:门电路的设计与仿真 578

实验1B:完成设计流程 584

实验2:键盘编码系统的设计与测试 589

实验3:门电路检验系统的设计与测试 592

实验4:自定义十进制显示译码系统的设计与测试 596

实验5A:D锁存器与带CLR输入的D触发器的设计与测试 599

实验5B:8位寄存器及带PRE输入的D触发器的设计与测试 603

实验6A:简单计数系统的设计与测试——8位单热递增计数器 607

实验6B:简单计数器系统的设计与测试——两位格雷码计数器 611

实验6C:简单非常规计数系统的设计与测试——机器眼电路 614

实验6D:简单非常规计数系统的设计与测试——笑脸电路 618

实验7A:用平面设计方法进行简单错误系统的设计与测试 621

实验7B:用层次化设计方法进行简单4位加减系统的设计与测试 626

实验8:利用平面设计方法进行LUT系统的设计与测试 628

实验9A:用平面设计方法进行单热递增/递减计数系统的设计与测试 633

实验9B:用层次化设计方法进行十状态计数系统的设计与测试 637

实验10:VBC1系统EASY1(编辑器/汇编器/仿真器)的使用 641

实验11:用EASY1编写和仿真VBC1程序 645

实验12:VBC1系统的设计与测试(数据通路单元) 648

实验13:VBC1系统的设计与测试(指令存储单元) 653

实验14:VBC1系统的设计与测试(显示系统) 656

实验15:VBC1系统的设计与测试(指令译码器) 660

实验16:VBC1系统的设计与测试(算术逻辑单元) 663

实验17:VBC1系统的设计与测试(最终设计) 668

实验17L:设计VBC1系统的指令加载器 673

实验18:在VBC1系统上编写并运行汇编程序 679

实验19:VBC1-E的设计与测试(IN、OUT和未修改的指令) 682

实验20:VBC1-E系统的设计与测试(数据转移和访存指令) 687

实验21:VBC1-E系统的设计与测试(大部分指令) 692

实验22:VBC1-E系统的设计与测试(添加手动加载电路) 697

实验23:VBC1-E系统的设计与测试(添加扩展指令存储器) 700

实验24:VBC1-E系统的设计与测试(实现INT和IRET指令) 704

实验25:VBC1-E系统的设计与测试(最终设计) 708

实验25L:VBC1-E指令加载器的设计 713

附录B 用VHDL测试平台程序进行仿真 721

B.1 简介 721

B.2 例1:组合逻辑设计(工程:AND 3) 721

B.3 例2:同步时序逻辑设计(工程:DFF) 725

附录C FPGA管脚连接关系查询手册 729

C.1 BASYS 2开发板 729

C.2 NEXYS 2开发板 730

C.3 BASYS 2及NEXYS 2开发板上FPGA存储加载器的管脚接口 731

C.4 FX2MIB(模块转接板)——NEXYS 2外加电路板 732

附录D EASY1教程 733

D.1 简介 733

D.2 EASY1用户界面 733

D.3 EASY1界面布局 733

D.4 如何使用EASY1 735

D.5 例1:简单输入输出程序 735

D.6 例2:修改后能够一直执行的输入输出程序 741

D.7 例3:简单状态机程序 742

D.8 例4:复杂状态机程序 742

D.9 例5:产生延时 744

D.10 用EASY1产生VBC1平台的机器码 746

附录E 将指令加载到存储器中的三种方法 747

E.1 手动载入存储器 747

E.2 在启动时初始化存储器内容 748

E.3 通过存储器加载程序载入存储器 749

返回顶部