VHDL入门级好教材《VHDL开发精解与实例剖析》
本书在内容安排和语言叙述上都十分适合初学者的学习,确实是一本初学者入门学习的好教材。另外,书中的部分章节还探讨了VHDL语句的综合以及高级层次化设计等话题。同时,书中全面介绍了面向仿真的VHDL程序设计。可以看看。http://product.dangdang.com/product.aspx?product_id=20700354
本书结构
本书语言简洁,层次清晰,主要内容包括VHDL语言基础知识介绍和程序设计实践两部分。其中,第1部分介绍VHDL语法基础知识,这一部分主要包括以下章节内容:
VHDL语言背景知识,内容包括可编程逻辑器件(PLD)、电子设计自动化(EDA)、硬件描述语言(HDL)等基本概念,以及VHDL语言的发展历史等(第1章);
VHDL语言程序的结构(第2章);
VHDL语言基本语法要素,包括词法单元、数据对象、数据类型、运算操作符、属性等(第3章);
VHDL描述语句,主要包括并行描述语句和顺序描述语句(第4章);
有限状态机的VHDL设计(第5章);
VHDL语言程序设计重点解析,总结和分析可综合VHDL程序设计中的某些重点问题(第6章);
高级层次化VHDL程序设计,主要介绍参数化VHDL模块的设计方法(第7章);
VHDL程序的综合,介绍VHDL程序的综合流程以及某些VHDL语法成分的综合结果 (第8章);
面向仿真的VHDL程序设计(第9章)。
其中,第7章至第9章作为VHDL基础知识的高级部分,可作为进一步提高学习之用。本书第2部分强化VHDL程序设计实践过程,主要内容包括:
Xilinx公司FPGA产品简介,介绍典型的VHDL程序实现所使用的物理载体,本书所有内容均基于Xilinx公司FPGA平台进行介绍(第10章);
Xilinx ISE Design Suite 10.1使用指南,介绍Xilinx最新的FPGA开发工具ISE 10.1的使用(第11章);
基本功能模块的VHDL实现,详细叙述了常见的数字功能模块的VHDL实现,这些模块包括:分频器、同步整形电路、按键扫描电路、数码管接口电路、VGA接口电路、PS/2接口电路、SPI接口电路、LCD接口电路以及伪随机序列产生器等,同时介绍了Xilinx FPGA常用的底层硬核模块的调用(第12章);
DES算法的VHDL实现,以一个较大的数字电路为例介绍复杂数字系统的VHDL设计方法(第13章)。
本书特色
介绍VHDL语法知识与强化数字电路概念的有机结合
目前,常见的VHDL语法书籍往往忽视了数字电路设计的基本概念,而关于数字电路设计的书籍又对VHDL介绍得很简单。与上述大多数同类书籍不同的是,本书在VHDL基础知识介绍部分注重知识的实际应用,通过配以大量的程序实例加以深入说明;而在程序设计实践部分又注重程序实例所包含的基本语法知识的介绍,让读者在实践中总结语法的应用,实现了语法学习过程与程序设计实践过程的有机结合。
可综合VHDL程序设计与面向仿真VHDL程序设计的有机结合
不注重VHDL语言的可综合特性和可仿真特性区别是大多数同类书籍的又一缺点。本书至始至终强调两者具有重大区别,并单独在第9章介绍用于仿真的VHDL程序设计,因而为读者确立可综合VHDL程序设计的基本原则提供了良好的教学环境。
语言表达力求具有亲和力,通俗易懂
本书中有一大部分内容是作者自身学习过程的经验总结,对这一部分的介绍力求从初学者的角度出发,力求语言表达的亲和力与通俗性。
例题难度循序渐进,有利初学者
本书所有例子都经过作者精心挑选,每个例子都具有一定的代表性,并在难度上循序渐进,有利于初学者的学习。
具有很强的实用性
本书介绍了Xilinx最新的EDA工具软件――Xilinx ISE Design Suite10.1的使用,具有很强的实用性。
本书适用对象
本书内容丰富,讲解清楚,适合作为高等院校微电子、电子、通信等专业的教材或教学参考书,同时也可以作为广大硬件电路设计工程师必不可少的工具书或培训教材。
目录
第1章 概 述 1
1.1 可编程逻辑器件 1
1.1.1可编程逻辑器件概述 1
1.1.2可编程逻辑器件发展历史 1
1.1.3可编程逻辑器件分类 2
1.2 EDA技术与硬件描述语言 3
1.2.1EDA技术简介 4
1.2.2硬件描述语言简介 5
1.3 VHDL语言简介 5
1.3.1VHDL语言概述 5
1.3.2使用VHDL语言的优势 6
1.3.3VHDL语言程序开发流程 7
1.3.4给初学者的建议 8
1.4 本章总结 8
第2章 VHDL语言程序结构 9
2.1一个简单的VHDL程序 9
2.2 VHDL程序基本组成 12
2.2.1实体声明 12
2.2.2结构体 13
2.2.3库和程序包调用 15
2.3 本章总结 18
第3章 VHDL语言基本要素 19
3.1 词法单元 19
3.1.1关键字 19
3.1.2标识符 19
3.1.3数字 20
3.1.4字符和字符串 20
3.1.5位串 21
3.1.6注释 21
3.2 数据对象 21
3.2.1信号 21
3.2.2变量 23
3.2.3信号与变量比较 24
3.2.4常量 24
3.2.5文件 25
3.2.6数据对象小结 25
3.3 数据类型 25
3.3.1VHDL预定义数据类型 26
3.3.2用户自定义数据类型 33
3.3.3数据类型转换 36
3.3.4数据类型小结 36
3.4 运算操作符 37
3.4.1赋值运算符 37
3.4.2逻辑运算符 37
3.4.3算术运算符 39
3.4.4关系运算符 40
3.4.5移位运算符 42
3.4.6并置运算符 42
3.4.7操作符的优先级 43
3.5 属 性 43
3.5.1数组的属性 43
3.5.2信号的属性 44
3.6 本章总结 45
第4章 VHDL语言描述语句 46
4.1 VHDL语句概述 46
4.2 最简单的VHDL语句——赋值语句 47
4.2.1 信号赋值语句 47
4.2.2 变量赋值语句 47
4.3 基本的VHDL并行语句 48
4.3.1并行信号赋值语句 49
4.3.2进程 54
4.3.3元件例化语句 60
4.3.4生成语句 65
4.3.5块语句 67
4.4 基本的VHDL顺序语句 68
4.4.1顺序信号赋值语句 68
4.4.2顺序变量赋值语句 69
4.4.3IF语句 69
4.4.4CASE语句 72
4.4.5LOOP语句 74
4.4.6NULL语句 78
4.4.7WAIT语句 79
4.5 子程序与子程序调用 80
4.5.1函数与函数调用 80
4.5.2过程与过程调用语句 86
4.5.3函数和过程总结 89
4.6 本章总结 89
第5章 有限状态机的VHDL设计 90
5.1 有限状态机概述 90
5.1.1有限状态机的概念和分类 90
5.1.2有限状态机的状态转移图 91
5.1.3有限状态机设计流程 92
5.2 有限状态机设计重点解析 93
5.2.1状态编码方式 93
5.2.2状态机的容错处理 94
5.2.3有限状态机的性能指标 94
5.2.4有限状态机设计思想 95
5.3 有限状态机的VHDL描述 95
5.3.1“三进程”描述 95
5.3.2“双进程”描述 98
5.3.3“单进程”描述 100
5.3.4状态机的VHDL描述总结 103
5.4 有限状态机的VHDL设计实例 106
5.4.1交通灯控制器 106
5.4.2乒乓游戏机 110
5.5 本章总结 115
第6章 VHDL语言程序设计重点解析 116
6.1 面向硬件的设计思维 116
6.1.1硬件电路设计不是编写计算机指令 116
6.1.2模块化与层次化是硬件电路设计的基本方法 117
6.1.3硬件电路可以从不同抽象层次进行描述 118
6.1.4结构体的描述方式 119
6.2 组合电路与时序电路 120
6.2.1概述 120
6.2.2组合电路设计 121
6.2.3时序电路设计 122
6.2.4同步时序电路与异步时序电路 123
6.3 进程中的信号与变量 124
6.3.1概述 124
6.3.2信号赋值与变量赋值 124
6.3.3信号的典型应用——进程间通信 128
6.3.4变量赋值的典型应用——算法描述 130
6.4 进程中的多边沿触发问题 132
6.4.1概述 132
6.4.2不可综合的多沿触发 133
6.4.3多沿触发协同工作 134
6.5 基本算术运算的实现及其难点 136
6.5.1数字在硬件电路中的表示 136
6.5.2数据溢出及其处理 136
6.5.3数据截断 143
6.6 锁存器的避免与应用 144
6.6.1锁存器概述 144
6.6.2锁存器的产生及处理策略 145
6.6.3锁存器的应用 146
6.7 高级逻辑设计思想 147
6.7.1面积与速度互换 147
6.7.2流水线原理与应用 147
6.7.3“乒乓操作”原理与应用 147
6.8 本章总结 147
第7章 VHDL高级层次化设计 148
7.1 层次化设计概述 148
7.1.1层次化设计的优点 148
7.1.2VHDL层次化设计基础 149
7.2 基于VHDL的层次化设计 149
7.2.1元件与元件例化 149
7.2.2类属参数映射 149
7.2.3配置 152
7.2.4库和程序包 158
7.3 模块的参数化设计 162
7.3.1参数化设计概述 162
7.3.2参数的分类 162
7.3.3参数传递机制 163
7.4 参数化设计中常用的语句 165
7.4.1FOR LOOP语句 165
7.4.2FOR GENERATE语句 167
7.4.3IF GENERATE语句 168
7.4.4EXIT语句和NEXT语句 168
7.5 本章总结 168
第8章 VHDL程序的综合 169
8.1 VHDL程序的综合流程 169
8.1.1RTL级综合 170
8.1.2模块生成器 171
8.1.3门级综合 171
8.1.4器件级综合 171
8.2 VHDL基本操作符的综合 172
8.2.1逻辑运算符的综合 172
8.2.2关系运算符的综合 172
8.2.3算术运算符的综合 173
8.2.4其他运算操作符的综合 173
8.2.5带常数的操作符及其综合 173
8.3 VHDL基本数据类型的综合 175
8.3.1标准逻辑类型的综合 175
8.3.2整数类型的综合 176
8.3.3枚举类型的综合 176
8.4 参数化VHDL程序的综合 177
8.4.1类属参数映射的综合 177
8.4.2非限制数组的综合 177
8.5 本章总结 177
第9章 面向仿真的VHDL程序设计 178
9.1 VHDL的可综合与可仿真特性 178
9.1.1VHDL的可综合特性 178
9.1.2VHDL的可仿真特性 179
9.2 常用的VHDL仿真语句 179
9.2.1AFTER语句 179
9.2.2WAIT_FOR语句 180
9.2.3WAIT语句 180
9.2.4ASSERT语句 181
9.2.5其他语句 181
9.3 仿真激励的产生 181
9.3.1初始化 182
9.3.2时钟信号 182
9.3.3复位信号 183
9.3.4数据信号 184
9.4 VHDL测试平台 185
9.4.1 VHDL测试平台综述 185
9.4.2VHDL Test Bench应用举例 187
9.4.3基于TEXT IO的VHDL Test Bench 191
9.5 本章总结 198
第10章 Xilinx公司FPGA产品介绍 199
10.1 FPGA基础知识 199
10.1.1FPGA简介 199
10.1.2使用FPGA的优势 199
10.1.3FPGA的分类 200
10.1.4主要的FPGA厂商 200
10.2 Xilinx FPGA产品介绍 201
12.2.1Spartan系列 201
12.2.2Virtex系列 201
10.3 Xilinx FPGA的内部结构与工作原理 202
10.3.1内部结构简介 202
10.3.2基本工作原理 206
10.4 基于FPGA的开发与设计 207
10.4.1FPGA典型开发流程 207
10.4.2FPGA设计的性能指标 209
10.5 本章总结 209
第11章 Xilinx ISE Design Suite 10.1使用指南 210
11.1 ISE Design Suite 10.1简介与安装 210
11.1.1ISE Design Suite 10.1版本新特点 210
11.1.2ISE Design Suite 10.1的主要组件 210
11.1.3ISE Design Suite 10.1 的安装 213
11.2 基于ISE的VHDL程序开发流程 217
11.2.1软件界面与基本操作 217
11.2.2新建工程 219
11.2.3VHDL代码输入 221
11.2.4功能仿真 224
11.2.5代码综合 230
11.2.6用户约束文件 232
11.2.7设计实现 234
11.2.8器件配置 236
11.3 在线逻辑分析仪ChipScope Pro的使用 246
11.3.1ChipScope Pro工具简介 246
11.3.2在ISE中调用ChipScope Pro 249
11.4 本章总结 256
第12章基本功能模块的VHDL实现 257
12.1 分频电路设计 257
12.1.1偶数倍分频 257
12.1.2奇数倍分频 258
12.2 同步整形与按键消抖 261
12.2.1同步整形电路原理与实现 261
12.2.2按键消抖电路原理与实现 262
12.3 按键扫描电路设计 264
12.3.1矩阵式键盘简介 265
12.3.2按键扫描电路的VHDL实现 268
12.4 数码管接口电路设计 270
12.4.1七段数码管简介 270
12.4.2动态扫描数码管接口电路实现 272
12.4.3特殊显示效果的实现 275
12.5 字符型LCD接口电路设计 278
12.5.1字符型16*2 LCD简介 278
12.5.2字符型16*2 LCD接口电路实现 283
12.6 PS/2键盘接口电路设计 290
12.6.1PS/2键盘标准简介 290
12.6.2PS/2键盘接口电路实现 293
12.7 VGA接口电路设计 296
12.7.1VGA显示原理简介 296
12.7.2VGA接口电路实现 298
12.8 伪随机序列的产生 301
12.8.1伪随机序列及其性质 301
12.8.2m序列发生器实现 303
12.9 SPI同步接口及其应用 304
12.9.1SPI同步接口简介 304
12.9.2SPI同步接口应用实例 305
12.10 Xilinx FPGA常用硬核模块的调用 308
12.10.1DCM硬核模块的调用 308
12.10.2Block RAM的调用 312
12.10.3硬核乘法器的调用 318
12.11 本章总结 321
第13章 DES算法的VHDL实现 322
13.1 DES算法的原理 322
13.1.1DES概述 322
13.1.2DES算法原理 322
13.1.3DES解密方法 328
13.2 DES算法的VHDL实现 328
13.2.1总体设计 328
13.2.2子密钥产生模块 329
13.2.3组合逻辑运算模块 336
13.2.4时序控制模块——状态机 353
13.3 系统的综合与功能仿真 361
13.3.1系统综合 361
13.3.2系统功能仿真 362
13.4 本章总结 367
附录 368
附录A VHDL关键字 368
附录B VHDL预定义程序包 369
附录B1 Standard程序包 369
附录B2 Std_logic_1164程序包(Package Declearation) 371
本书有一大部分是作者自身学习过程的经验总结,对这一部分的介绍力求从初学者的角度出发,力求语言表达的亲和力与通俗性。本书在写作过程中还参考了众多国内外同类书籍,并吸收了很多新的知识。特别是两本外文参考书籍,它们在语言表述和知识介绍上有许多值得借鉴的地方。基于此,本书既可以作为初学者的入门级教材,又适合作为进一步学习的参考材料。
同类书籍比较:
(美)Kevin Skahill. 可编程逻辑器件的VHDL设计技术. 南京:东南大学出版社.1998
该书是全球第一本以CPLD、FPGA为载体介绍VHDL设计技术的正式出版物,但该书出版年代较早,很多内容已不适合现在的大规模电子设计。该书介绍的EDA软件为一个小软件,不具备通用性和实用性。
王开军,姜宇柏. 面向CPLD/FPGA的VHDL设计. 北京:机械工业出版社. 2007
该书以Altera公司的CPLD/FPGA为载体介绍VHDL设计,基于Quartus II软件,具有一定的通用性。但该书对VHDL基本语法的讲解较粗糙,只用了一个小节,不适合初学者的学习。
求是科技. CPLD/FPGA应用开发技术与工程实践. 北京:人民邮电出版社. 2005
该书以Altera公司的CPLD/FPGA为载体介绍VHDL设计,但EDA软件基于MAX+plus II,同时该书未涉及面向仿真的VHDL程序设计概念,不够实用。
黄任. VHDL入门•解惑•经典实例•经验总结. 北京:北京航空航天大学出版社.2005
该书以通俗易懂的语言向读者介绍VHDL语言程序设计与实践,且十分注重语法知识的实际应用,相应语法知识讲解透彻,且有大量实例,十分适合初学者入门学习。但该书较简略,语法知识的介绍不够全面,不利于后期的提高学习。另外,该书使用的EDA软件为MAX+plus II,已经过时,不利于读者的实践操作。
本书借鉴了该书通俗易懂,注重语法知识的实际应用等优点,并完整地介绍了VHDL的语法知识,同时使用Xilinx最新版的EDA软件ISE 10.1,具有很强的实用性。 楼主是在给自己的书作广告吧
要不然,把电子版的传上来 要PDF的,谢谢 只有书的链接 兰州不厚道! 使用PDF惯了,请在标题里写上介绍一本好书 没有下载! 就是,只介绍,没下载,不厚道 马甲够多的了
页:
[1]