出版时间:2012-6 出版社:电子工业出版社 作者:李俊 页数:321 字数:548000
内容概要
《EDA技术与VHDL编程》编著者李俊。
《EDA技术与VHDL编程》内容提要:本书主要讲解EDA技术和VHDL硬件描述语言的使用,共10章。内容包括EDA概述,可编程逻辑器件,VHDL硬件描述语言,Quartus
II操作指南,VHDL基本逻辑电路设计,VHDL语句进阶,VHDL的属性描述与仿真延时,VHDL层次化程序设计,VHDL的数字系统设计,以及VHDL在通信和DSP系统中的应用。通过大量数字电路和数字系统的案例,给读者演示了VHDL在数字系统设计中充当的角色,以及利用VHDL语言进行数字系统设计的基本步骤和具体方法。
本书配有大量的设计实例和实验练习,还针对目前FPGA的主流应用领域如微控制系统、通信系统和DSP系统给出了系统级别的设计实例。力求使读者理解VHDL硬件描述语言的基础知识,掌握数字系统的设计原理、方法和步骤。
本书可作为高等院校电子、通信、自动化、计算机等信息工程类相关专业学生的教学用书,也适合于立志自学成才的读者和从事EDA技术应用与研究的专业技术人员使用。
书籍目录
第1章 EDA概述 (1)
1.1 EDA工程简介 (1)
1.2 EDA技术的发展历程和未来展望 (2)
1.2.1 计算机辅助设计(CAD)阶段 (2)
1.2.2 计算机辅助工程设计(CAE)阶段 (3)
1.2.3 现代电子设计自动化(EDA)阶段 (3)
1.2.4 EDA技术的未来展望 (3)
1.3 EDA技术的应用 (4)
1.3.1 PCB设计 (5)
1.3.2 ASIC设计 (6)
1.3.3 CPLD/FPGA设计 (8)
1.4 EDA工程的设计流程 (8)
1.4.1 设计输入 (9)
1.4.2 逻辑综合和优化 (10)
1.4.3 布局布线和适配 (11)
1.4.4 工程设计的仿真 (11)
1.4.5 目标器件的编程和下载 (11)
1.4.6 硬件电路的后仿真验证和测试 (12)
1.5 EDA集成开发工具 (12)
1.5.1 Quartus II (12)
1.5.2 ISE+ModelSim (13)
1.5.3 ispLEVER (14)
1.5.4 其他开发工具 (15)
1.6 EDA技术的学习重点和学习方法 (15)
1.6.1 EDA技术的学习重点 (15)
1.6.2 EDA技术的学习方法 (16)
本章小结 (16)
思考和练习 (17)
第2章 可编程逻辑器件 (19)
2.1 可编程逻辑器件概述 (19)
2.1.1 可编程逻辑器件的发展 (19)
2.1.2 可编程逻辑器件的分类 (21)
2.2 PLD内部结构的表示方法 (23)
2.3 CPLD的基本结构和工作原理 (24)
2.3.1 CPLD的基本结构 (24)
2.3.2 Lattice公司的CPLD (25)
2.3.3 Altera公司的CPLD (28)
2.4 FPGA的结构和工作原理 (33)
2.4.1 FPGA的基本结构 (34)
2.4.2 Altera公司的FPGA (35)
2.4.3 Xilinx公司的FPGA (39)
2.5 FPGA的配置方式 (40)
2.5.1 主动串行配置 (41)
2.5.2 主动并行配置 (41)
2.5.3 菊花链配置 (42)
2.6 CPLD/FPGA的应用选型 (43)
2.6.1 器件逻辑资源的选择 (43)
2.6.2 芯片速度的选择 (43)
2.6.3 器件功耗的选择 (43)
2.6.4 器件封装的选择 (44)
2.6.5 CPLD/FPGA的选择 (44)
本章小结 (44)
思考和练习 (45)
第3章 VHDL硬件描述语言 (47)
3.1 硬件描述语言概述 (47)
3.1.1 HDL硬件描述语言 (47)
3.1.2 HDL语言的种类 (48)
3.1.3 VHDL语言的特点 (53)
3.1.4 VHDL和Verilog的比较 (54)
3.1.5 VHDL的硬件环境 (54)
3.2 VHDL程序的基本结构 (55)
3.2.1 VHDL的设计风格 (55)
3.2.2 VHDL设计简述 (57)
3.2.3 VHDL的实体说明 (61)
3.2.4 VHDL的结构体 (64)
3.3 VHDL的基本词法 (66)
3.3.1 标识符 (66)
3.3.2 数据对象 (68)
3.3.3 数据类型 (70)
3.3.4 类型转换 (74)
3.3.5 运算操作符 (75)
3.4 VHDL的基本语句 (78)
3.4.1 赋值语句 (79)
3.4.2 IF语句 (81)
3.4.3 CASE语句 (82)
3.4.4 LOOP语句 (83)
3.4.5 PROCESS进程语句 (84)
3.4.6 COMPONENT元件例化语句 (86)
3.4.7 PORT MAP端口映射语句 (88)
3.5 VHDL的描述风格 (89)
3.5.1 行为级描述 (89)
3.5.2 数据流描述 (92)
3.5.3 门级描述 (93)
3.5.4 混合描述 (94)
本章小结 (95)
思考和练习 (95)
第4章 Quartus II操作指南 (102)
4.1 Quartus II基本设计流程 (102)
4.1.1 创建工程 (102)
4.1.2 编译工程 (107)
4.1.3 时序仿真 (109)
4.1.4 Viewer工具 (114)
4.1.5 引脚锁定和下载 (116)
4.2 嵌入式逻辑分析仪SignalTap II (116)
4.2.1 SignalTap II的启动 (117)
4.2.2 调入待测信号 (118)
4.2.3 SignalTap II的参数设置 (118)
4.2.4 SignalTap II文件的保存和编译下载 (119)
4.2.5 SignalTap II的采样分析 (119)
4.3 LPM-ROM宏模块的使用 (119)
4.3.1 LPM-ROM宏模块的工作原理 (119)
4.3.2 初始化数据文件 (120)
4.3.3 定制LPM-ROM元件 (121)
4.3.4 顶层文件的仿真测试 (125)
本章小结 (126)
思考和练习 (127)
第5章 VHDL基本逻辑电路设计 (129)
5.1 组合逻辑电路设计 (129)
5.1.1 基本门电路的设计 (129)
5.1.2 三态门及总线缓冲器的设计 (131)
5.1.3 优先编码器的设计 (134)
5.1.4 译码器的设计 (137)
5.1.5 运算器的设计 (141)
5.1.6 多路选择器的设计 (143)
5.2 时序逻辑电路设计 (145)
5.2.1 触发器的设计 (145)
5.2.2 寄存器的设计 (149)
5.2.3 计数器的设计 (152)
5.3 存储器设计 (154)
5.3.1 只读存储器ROM的设计 (154)
5.3.2 静态数据存储器SRAM的设计 (156)
5.3.3 先进先出堆栈FIFO的设计 (157)
5.4 状态机设计 (161)
5.4.1 状态机概述 (161)
5.4.2 Moore状态机的设计 (162)
5.4.3 Mealy状态机的设计 (165)
5.4.4 容错状态机的设计 (167)
本章小结 (168)
思考和练习 (168)
第6章 VHDL语句进阶 (173)
6.1 并行语句 (173)
6.1.1 块语句(BLOCK) (173)
6.1.2 生成语句(GENERATE) (176)
6.1.3 报告语句(REPORT) (179)
6.1.4 并行断言语句(ASSERT) (181)
6.1.5 过程调用语句(PROCEDURE) (182)
6.2 顺序语句 (183)
6.2.1 WAIT语句 (183)
6.2.2 NEXT语句 (185)
6.2.3 EXIT语句 (186)
6.2.4 NULL语句 (187)
6.2.5 RETURN语句 (187)
本章小结 (188)
思考和练习 (189)
第7章 VHDL的属性描述和仿真延时 (192)
7.1 预定义属性 (192)
7.2 数值类属性函数 (193)
7.2.1 数值类型属性函数 (193)
7.2.2 数值数组属性函数 (194)
7.2.3 数值块属性函数 (194)
7.3 函数属性 (196)
7.3.1 函数类型属性 (196)
7.3.2 函数数组属性 (197)
7.3.3 函数信号属性 (199)
7.4 信号(SIGNAL)属性 (201)
7.4.1 带DELAYED(time)属性的信号SIGNAL (201)
7.4.2 带STABLE(time)属性的信号SIGNAL (201)
7.4.3 带QUIET(time)属性的信号SIGNAL (202)
7.4.4 带TRANSACTION属性的信号SIGNAL (203)
7.5 数据类型的属性函数 (203)
7.6 数据区间的属性函数 (204)
7.7 VHDL的设计仿真 (205)
7.7.1 仿真的概念 (205)
7.7.2 仿真延迟 (206)
7.7.3 仿真周期 (207)
7.8 时间数字转化器(TDC)的设计 (209)
7.8.1 时间数字转化器(TDC)的应用 (209)
7.8.2 TDC的工作原理 (209)
7.8.3 TDC的分类 (210)
7.8.4 延时链结构TDC在FPGA上的实现 (213)
本章小结 (218)
思考和练习 (218)
第8章 VHDL层次化程序设计 (220)
8.1 层次化程序设计方法 (220)
8.2 库和程序包 (221)
8.2.1 库 (221)
8.2.2 程序包 (222)
8.2.3 常用的程序包 (223)
8.3 文件输入/输出程序包 (227)
8.3.1 TEXTIO程序包语法 (227)
8.3.2 TEXTIO程序包的过程函数 (228)
8.3.3 TEXTIO程序包的调用 (229)
8.4 元件的配置 (229)
8.4.1 默认连接和默认配置 (230)
8.4.2 元件配置 (232)
8.5 子程序 (235)
8.6 重载 (235)
8.6.1 函数重载 (236)
8.6.2 运算符重载 (237)
8.6.3 别名(替换名) (238)
本章小结 (238)
思考和练习 (239)
第9章 VH
9.2.2 数字系统的设计流程
9.3 数字系统设计实例
9.3.1 7段数码管驱动电路的设计
9.3.2 键盘接口的设计
9.3.3 DAC接口的设计
9.3.4 AD(:接口的设计
9.3.5 八音盒的设计
9.3.6 UAllT接口的设计
本章小结
实验练习
第10章 VHDL在通信和DSP系统中的应用
10.1 通信与DSP系统概述
10.2 通信与DSP系统设计实例
10.2.1 ASK调制解调器的设计
10.2.2 快速加法器的设计
10.2.3 快速乘法器的设计
10.2.4 cORDI(:极坐标转换器的设计
10.2.5 FIR数字滤波器的设计
10.2.6 IIR数字滤波器的设计
本章小结
实验练习
章节摘录
版权页: 插图: 1.结构体引导语句 结构体引导语句主要用来引导结构体的开始,并定义结构体的名称。其中,结构体名是结构体的名称,位于引导语句和OF之间。OF之后紧跟实体名,表明该结构体隶属于哪一个实体,最后用IS来结束结构体的命名。结构体名原则上可以是任何合法的标识符,但为了保证程序的易读性,工程师常常采用结构体的描述方式对结构体进行命名,如Behavior(行为描述)、Dataflow(数据流描述)、Structure(结构描述)等。 2. 结构体说明语句 结构体说明语句在BEGIN和END之间,它定义了结构体中所用的数据对象和子程序,并说明了所引用的元件,即对前面所提到的信号(SIGNAL)、类型(TYPE)、常数(CONSTANT)、元件(COMPONENT)、函数(FUNCTION)和过程(PROCEDURE)等加以说明和定义。应当注意的是,这些定义只能用于这个结构体中,如果要将这些定义用于其他实体或者结构体,就需要将其作为程序包处理。 3.功能描述语句 功能描述语句有5种类型,这里可以将其看成结构体的5种子结构。这5种语句结构以并行方式工作,在每一语句结构的内部可能含有并行运行或顺序运行的逻辑描述语句,如进程语句。具体5种语句结构的组成和功能如下: ●块语句(BLOCK):块语句结构是由若干个并行执行语句构成的组合体,其功能是将结构体中的并行语句包装在一起,组成一个或多个模块,即子模块; ●进程语句(PROCESS):进程语句定义了顺序语句模块,其内部为顺序语句,用来将从外部获得的信号值或内部运算数据向其他信号进行赋值; ●信号赋值语句(SIGNAL):信号赋值语句用来将设计实体内的处理结果向所定义的 信号或界面端口进行赋值: ●元件例化语句(COMPONENT):元件例化语句用来调用另一个设计实体所描述的电路。调用时,元件例化语句对其他的设计实体做元件说明,并将元件的端口与其他元件信号或高层设计实体的界面端口进行连接; ●子程序调用语句:子程序调用语句由过程(PROCEDURE)和函数(FUNCTION)组成,其内不是顺序语句,用来调用过程和函数,并将结果赋值给信号。
编辑推荐
《EDA技术与VHDL编程》可作为高等院校电子、通信、自动化、计算机等信息工程类相关专业学生的教学用书,也适合于立志自学成才的读者和从事EDA技术应用与研究的专业技术人员使用。
图书封面
评论、评分、阅读与下载