查看: 1001|回复: 0
打印 上一主题 下一主题

VHDL入门级好教材《VHDL开发精解与实例剖析》

[复制链接]
跳转到指定楼层
沙发
发表于 2016-5-18 22:45:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本书在内容安排和语言叙述上都十分适合初学者的学习,确实是一本初学者入门学习的好教材。另外,书中的部分章节还探讨了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.1  EDA技术简介        4
1.2.2  硬件描述语言简介        5
1.3 VHDL语言简介        5
1.3.1  VHDL语言概述        5
1.3.2  使用VHDL语言的优势        6
1.3.3  VHDL语言程序开发流程        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.1  VHDL预定义数据类型        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.3  IF语句        69
4.4.4  CASE语句        72
4.4.5  LOOP语句        74
4.4.6  NULL语句        78
4.4.7  WAIT语句        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.2  VHDL层次化设计基础        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.1  FOR LOOP语句        165
7.4.2  FOR GENERATE语句        167
7.4.3  IF GENERATE语句        168
7.4.4  EXIT语句和NEXT语句        168
7.5 本章总结        168
第8章 VHDL程序的综合        169
8.1 VHDL程序的综合流程        169
8.1.1  RTL级综合        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.1  VHDL的可综合特性        178
9.1.2  VHDL的可仿真特性        179
9.2 常用的VHDL仿真语句        179
9.2.1  AFTER语句        179
9.2.2  WAIT_FOR语句        180
9.2.3  WAIT语句        180
9.2.4  ASSERT语句        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.2  VHDL 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.1  FPGA简介        199
10.1.2  使用FPGA的优势        199
10.1.3  FPGA的分类        200
10.1.4  主要的FPGA厂商        200
10.2 Xilinx FPGA产品介绍        201
12.2.1  Spartan系列        201
12.2.2  Virtex系列        201
10.3 Xilinx FPGA的内部结构与工作原理        202
10.3.1  内部结构简介        202
10.3.2  基本工作原理        206
10.4 基于FPGA的开发与设计        207
10.4.1  FPGA典型开发流程        207
10.4.2  FPGA设计的性能指标        209
10.5 本章总结        209
第11章 Xilinx ISE Design Suite 10.1使用指南        210
11.1 ISE Design Suite 10.1简介与安装        210
11.1.1  ISE Design Suite 10.1版本新特点        210
11.1.2  ISE Design Suite 10.1的主要组件        210
11.1.3  ISE Design Suite 10.1 的安装        213
11.2 基于ISE的VHDL程序开发流程        217
11.2.1  软件界面与基本操作        217
11.2.2  新建工程        219
11.2.3  VHDL代码输入        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.1  ChipScope 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.1  PS/2键盘标准简介        290
12.6.2  PS/2键盘接口电路实现        293
12.7 VGA接口电路设计        296
12.7.1  VGA显示原理简介        296
12.7.2  VGA接口电路实现        298
12.8 伪随机序列的产生        301
12.8.1  伪随机序列及其性质        301
12.8.2  m序列发生器实现        303
12.9 SPI同步接口及其应用        304
12.9.1  SPI同步接口简介        304
12.9.2  SPI同步接口应用实例        305
12.10 Xilinx FPGA常用硬核模块的调用        308
12.10.1  DCM硬核模块的调用        308
12.10.2  Block RAM的调用        312
12.10.3  硬核乘法器的调用        318
12.11 本章总结        321
第13章 DES算法的VHDL实现        322
13.1 DES算法的原理        322
13.1.1  DES概述        322
13.1.2  DES算法原理        322
13.1.3  DES解密方法        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



本书有一大部分是作者自身学习过程的经验总结,对这一部分的介绍力求从初学者的角度出发,力求语言表达的亲和力与通俗性。本书在写作过程中还参考了众多国内外同类书籍,并吸收了很多新的知识。特别是两本外文参考书籍,它们在语言表述和知识介绍上有许多值得借鉴的地方。基于此,本书既可以作为初学者的入门级教材,又适合作为进一步学习的参考材料。
同类书籍比较:
[1](美)Kevin Skahill. 可编程逻辑器件的VHDL设计技术. 南京:东南大学出版社.1998
该书是全球第一本以CPLD、FPGA为载体介绍VHDL设计技术的正式出版物,但该书出版年代较早,很多内容已不适合现在的大规模电子设计。该书介绍的EDA软件为一个小软件,不具备通用性和实用性。
[2] 王开军,姜宇柏. 面向CPLD/FPGA的VHDL设计. 北京:机械工业出版社. 2007
该书以Altera公司的CPLD/FPGA为载体介绍VHDL设计,基于Quartus II软件,具有一定的通用性。但该书对VHDL基本语法的讲解较粗糙,只用了一个小节,不适合初学者的学习。
[3] 求是科技. CPLD/FPGA应用开发技术与工程实践. 北京:人民邮电出版社. 2005
该书以Altera公司的CPLD/FPGA为载体介绍VHDL设计,但EDA软件基于MAX+plus II,同时该书未涉及面向仿真的VHDL程序设计概念,不够实用。
[4] 黄任. VHDL入门?解惑?经典实例?经验总结. 北京:北京航空航天大学出版社.2005
该书以通俗易懂的语言向读者介绍VHDL语言程序设计与实践,且十分注重语法知识的实际应用,相应语法知识讲解透彻,且有大量实例,十分适合初学者入门学习。但该书较简略,语法知识的介绍不够全面,不利于后期的提高学习。另外,该书使用的EDA软件为MAX+plus II,已经过时,不利于读者的实践操作。   
本书借鉴了该书通俗易懂,注重语法知识的实际应用等优点,并完整地介绍了VHDL的语法知识,同时使用Xilinx最新版的EDA软件ISE 10.1,具有很强的实用性。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入中科因仑

本版积分规则

快速回复 返回顶部 返回列表