VHDL 设计:表示和综合(原书第2版)
作者 : (美)James R.Armstrong F.Gail Gray
译者 : 李宗伯 王蓉晖 等
出版日期 : 2002-05-01
ISBN : 7-111-09539-1
定价 : 65.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 528
开本 : 16开
原书名 : VHDL Design Representation and Synthesis
原出版社:
属性分类: 教材
包含CD :
绝版 : 已绝版
图书简介

VHDL语言是一种主流的硬件描述语言。本书既不同于一般的VHDL语言教材,也区别于传统的关于逻辑设计的书籍,它把VHDL语言的介绍融合到了不同抽象层次的设计中,全面深入地讲述了从原始的高层模型到门级实现的各层次的设计技术,并辅以典型实例,既能使读者对有关数字系统设计的知识有一个全面了解,同时又能较好地掌握VHDL语言及其在不同设计层次中的应用方法,掌握基于VHDL的设计技术。
本书比较注重设计方法和基本概念的介绍,深入浅出,每章还配备了大量针对性很强的习题,非常适合作为电子工程、计算机等专业VLSI设计相关课程的本科生和研究生教材,也可供相关的工程技术人员参考。对于打算自学这方面内容的人来说,本书也是一本不可多得的好书。

图书特色

James R.Armstrong博士 美国弗吉尼亚工学院电子和计算机工程系教授,讲授本科生和研究生的计算机体系结构、硬件描述语言及逻辑设计课程。他是原IEEE标准化委员会的成员。著有《VHDL芯片级建模》(Chip Level Modeling With VHDL),以及与他人合著《VHDL结构化逻辑设计》(Structured Logic Design With VHDL),均由Prentice Hall公司出版。他在硬件描述语言的应用方面做了深入的研究。他的论文发表在多种IEEE杂志上,并在一些国际学术研讨会上宣读。 F. Gail Gray博士   美国弗吉尼亚工学院电子和计算机工程系教授,讲授本科生和研究生的计算机工程、逻辑设计、硬件描述语言、编码理论、容错计算、测试及微处理器系统设计课程。他的研究成果曾在“IEEE Transactions on Computer”、“Journal of VLSI Signal Processing for Signal, Image, and Video Technology”、“Design Automation Conference”、“VHDL International Users Forum”及其他核心期刊和国际研讨会上发表。

图书前言

本书主要讲述如何将硬件描述语言应用到各个抽象级别的数字电路设计中。这一过程分为两个步骤:1) 用硬件描述语言建模;2) 将模型综合成ASIC逻辑电路或者FPGA。在讲述此过程时使用了VHDL,即VHSIC硬件描述语言(VHSIC Hardware Description Language)。该语言在1983年由美国国防部(DOD)发起创建,由IEEE进一步发展并在1987年作为“IEEE标准1076”发布。从那以后,该语言进一步得以改进并在1993年推出了一个更新的标准。从此,VHDL成为硬件描述语言的业界标准。从作者的观点来看,在所有的硬件描述语言中,它具有最容易为人所理解的模型结构,因此本书选择了VHDL语言作为基本语言。本教材以一种深入、统一的方式介绍了这种语言。
当前市场上大多数介绍硬件描述语言的书,特别是介绍VHDL的书有:1) 完整介绍VHDL语言的语言类丛书,它们没有介绍如何把语言结合到数字设计过程之中;2) 介绍中把VHDL模型作为一种仿真工具来验证传统方式设计结果的逻辑设计类丛书。本教材把VHDL完整地结合到数字设计过程中,这一过程从一种高层可执行模型开始,这种模型提供可执行的规格说明,直到门级实现结束。
本教材中,综合过程被分为多个步骤。先从自然语言描述转换到VHDL语言,再从VHDL语言转换到最终的电路图。本书从两个视角来讨论综合过程:1) 映射:强调VHDL语言结构和逻辑实现电路之间的对应关系,书中有完整的一章来介绍用于综合的模型的正确格式;  2) 工具:介绍两个普遍使用的工具集,Synopsys Design Analyzer and Compiler(用于ASIC)和Xilinx Foundation Series (用于FPGA)。因为设计的目标是形成ASIC和FPGA,所以书中有一章用来介绍这两种技术。本书还有一章介绍从规格说明到逻辑综合这一“自顶而下”设计过程的整体方法。
本教材面向三个教育目标:1) 作为电子工程、计算机工程以及计算机科学本科生第二课程的逻辑设计教材;2) 作为硬件描述语言或其他设计方面的研究生课程教材;3) 作为实习工程师学习硬件描述语言的参考书。学习本书时要求读者已经掌握:1) 计算机组成和逻辑设计的基本课程;2) 高级语言,如C、C++或JAVA的某些知识。
作者在逻辑设计课程序列的第二门课程中使用了本教材。学生包括计算机工程专业的二、三年级学生(课程为必修课)和电子工程专业三、四年级的学生(课程为选修课)。在一个学期的课程里讲述了第1、2、3、4、5、9、10和11章的内容,主要强调如何产生可综合的保守算法风格的VHDL模型。实验环境包括Viewlogic公司的PC版Workview,来进行VHDL建模、仿真和原理图获取。FPGA的综合使用的是Xilinx软件和XS40/XTEND硬件板,还使用了Elanix公司的System View进行数字滤波器的高层设计。采用工作站版的Synopsys工具进行ASIC综合。因我系的所有学生都有自己的PC机,所以使用如Workview这样基于PC的系统,能够为我们在第二门数字设计课程中通常要教授的大量学生提供有效的支持。同样,我们通过telnet和dc_shell脚本来进行Synopsys综合。指定的典型作业包括:
1) 引导学生熟悉Workview的VHDL建模、仿真和原理图获取环境。
2) 开发并仿真一个单个的VHDL行为模型。
3) 设计计数器或类似电路的模型。开发出计数器触发电路和门电路的VHDL行为模型,并用Workview的原理图获取工具构造计数器的结构模型。
4) 把系统描述翻译为VHDL行为模型并进行模拟。它通常是一个状态机模型,如接口协议、售货机或交通灯控制器等。
5) 引导学生使用Xilinx Foundation Series。
6) 用Synopsys ASIC逻辑电路和FPGA电路这两种形式实现一个小电路并比较运行速度。
7) 一个相当复杂的FPGA项目,如Booth乘法器、计算器、小型处理器、数字滤波器或图形显示。对于滤波器,XTEND主板的多媒体数字信号编解码器被用于A/D和D/A转换。Xilinx滤波器代码由System View产生。图形显示实现对VGA监视器上RAM中的存储模式的显示。
如果针对研究生课程,本教材可以在一个学期完成。课程可以包括语言结构及仿真和综合的语义细节检查。在弗吉尼亚工学院的研究生课程中,使用Synopsys进行综合并验证综合后的模型。课程研究如何控制综合以获得延时和面积优化的电路,也包括了如Express VHDL、SPW和System View等高层建模工具的使用,还进行了VHDL和Verilog的比较。
在此课程里,学生的实验任务包括:
1) 产生并仿真一个简单的VHDL行为模型。
2) 产生计数器或类似电路的模型。产生计数器触发电路和门电路的VHDL行为模型,然后产生整个系统的VHDL结构模型。
3) 使用复杂数据类型,如使用数组聚合和记录类型来实现有限状态机的列表表示。
4) 使用总线判决和总线协议的系统建模。该系统使用IEEE 9值逻辑系统。例子包括第6章中的URISC处理器系统或图像处理的直方图构造系统。
5) 用VHDL和Verilog编写、仿真、综合一个模型,并比较结果。
6) 学生选择一个系统建模作为学期项目。可以选择扩展语言的项目,例如一些非典型的应用,如为并行处理系统建模或者为非数字系统建模。
本书还包括几百个VHDL模型和代码段。所有的代码都用Synopsys VHDL系统做过分析、仿真与综合(除了VHDL 93的代码)。此外,还有超过300道不同难度的课后思考题。这些习题有简答题、简单设计题,包括设计、建模和仿真的复杂系统设计问题,以及需要研究设计或设计工具的问题。有些习题可以成为非常好的论文设计项目。
本书附有一张CD-ROM。CD中的内容有:1) 书中VHDL代码的源文件;2) 支持数据命令文件的项目集合;3) 支持公共设计范例的软件包。
写作这样一本教材是一项比较重的任务。写作过程中,我们得到了很多个人和组织的帮助与支持,在此要感谢:
1) Viewlogic公司、Synopsys公司和Xilinx公司提供了书中的VHDL代码以及在硬件描述语言课程中所使用的VHDL软件。
2) Intermetrics公司的Dave Barton负责审阅本书草稿。
3) Prentice Hall出版公司的产品编辑Vincent Janoski。
4) Prentice Hall出版公司的图书编辑Bernard Goodwin对这一项目的大力支持。
也非常感谢我们的妻子Marie和Caryl,感谢她们对我们在计算机前长时间工作的鼓励和支持,以及在过去两年的旅行和休假中忍受我们与笔记本电脑相伴。

译者简介

李宗伯 王蓉晖 等:暂无简介

译者序

VHDL语言是一种主流的硬件描述语言,具有很强的描述和建模能力,能从多个层次对数字系统进行建模和描述,大大简化硬件设计任务,提高设计的可靠性。基于VHDL语言的设计方法得到了广泛的应用,VHDL语言已成为硬件描述语言的工业标准。
本书既不同于一般的VHDL语言教材,也区别于传统的关于逻辑设计的书籍,它把VHDL语言的介绍融合到了不同抽象层次的设计中,全面深入地讲述了从原始的高层模型到门级实现的各层次的设计技术,并辅以典型实例,既能使读者对有关数字系统设计知识有一个全面了解,同时又能较好掌握VHDL语言及其在不同设计层次中的应用方法,掌握基于VHDL的设计技术。
本书比较注重设计方法和基本概念的介绍,深入浅出,每章还配备了大量针对性很强的习题,非常适合作为计算机、电子、电气及控制等专业VLSI设计相关课程的本科生和研究生教材,也可供相关的工程技术人员参考。对于打算自学这方面内容的人来说,本书也是一本不可多得的好书。本书英文版已经作为本科高年级的教材使用,效果较好。
参加本书翻译工作的人员:李宗伯、王蓉晖、王蕾、刘芳、陆洪毅、宋辉、沈立、赵学秘、鲁健壮、陈虎等。限于译者水平,本书的翻译难免会有不少问题,恳请广大读者批评指正。


译  者
2002年4月

图书目录

第1章  结构化设计概念 1
1.1  抽象层次 1
1.2  文本表示与图形表示 4
1.3  行为描述的种类 4
1.4  设计过程 5
1.5  结构设计的分解 7
1.6  数字设计空间 8
习题 9
第2章  设计工具 13
2.1  CAD工具分类 13
2.1.1  编辑器 13
2.1.2  仿真程序 13
2.1.3  检查程序和分析程序 14
2.1.4  优化程序和综合程序 14
2.1.5  CAD系统 14
2.2  原理图编辑器 14
2.3  仿真程序 16
2.3.1  仿真周期 19
2.3.2  仿真程序组织 19
2.3.3  语言调度机制 19
2.3.4  仿真效率 20
2.4  仿真系统 21
2.5  仿真辅助工具 22
2.5.1  模型准备 22
2.5.2  模型测试向量的产生 22
2.5.3  模型调试 23
2.5.4  解释结果 24
2.6  仿真的应用 26
2.7  综合工具 26
习题 29
第3章  VHDL的基本特征 32
3.1  VHDL语言的基本结构 33
3.1.1  设计实体 33
3.1.2  结构体(构架) 34
3.1.3  模型测试 38
3.1.4  块语句 38
3.1.5  进程 40
3.2  词法描述 40
3.2.1  字符集 40
3.2.2  词法元素 41
3.2.3  分界符 41
3.2.4  标识符 42
3.2.5  注释 43
3.2.6  字符文字 43
3.2.7  字符串文字 43
3.2.8  位串文字 43
3.2.9  抽象文字 44
3.2.10  十进制文字 44
3.2.11  基数文字 44
3.3  VHDL源文件 45
3.4  数据类型 45
3.4.1  数据类型分类 45
3.4.2  标量数据类型 46
3.4.3  复合数据类型 51
3.4.4  存取类型 53
3.4.5  文件类型 54
3.4.6  类型标记 54
3.5  数据对象 54
3.5.1  对象的分类 54
3.5.2  数据对象的声明 55
3.6  语句 57
3.6.1  赋值语句 57
3.6.2  操作符和表达式 61
3.6.3  顺序控制语句 66
3.6.4  结构体声明和并发语句 69
3.6.5  子程序 72
3.7  VHDL的高级特征 77
3.7.1  重载 77
3.7.2  包 79
3.7.3  可见性 81
3.7.4  库 83
3.7.5  配置 84
3.7.6  文件I/O 86
3.8  VHDL的形式特征 91
3.9  VHDL93 93
3.9.1  词汇字符集 93
3.9.2  语法变化 93
3.9.3  进程和信号定时及新的信号属性 94
3.9.4  新操作符 95
3.9.5  结构化模型的改进 96
3.9.6  共享变量 96
3.9.7  改进的报告能力 97
3.9.8  通用编程特征 97
3.9.9  文件I/O 98
3.9.10  组 98
3.9.11  位串文字的扩展 99
3.9.12  对标准包的增加与修改 99
3.10  小结 99
习题 99
第4章  基本的VHDL建模方法 110
4.1  用VHDL为延时建模 110
4.1.1  传播延时 110
4.1.2  延时和并发 112
4.1.3  VHDL中的顺序语句和并发语句 114
4.1.4  VHDL仿真程序中时间延时的实现 114
4.1.5  信号传播的惯性延时和传输延时 119
4.2  VHDL调度算法 119
4.2.1  波形更新 120
4.2.2  副作用 121
4.3  组合逻辑和时序逻辑的建模 122
4.4  逻辑基本部件 123
4.4.1  组合逻辑基本部件 123
4.4.2  时序逻辑基本部件 131
4.4.3  模型测试:测试程序开发 137
习题 142
第5章  算法级设计 151
5.1  行为域的一般算法模型 151
5.1.1  进程模型图 152
5.1.2  并行到串行转换器的算法模型 153
5.1.3  带定时的算法模型 156
5.1.4  定时检查 159
5.2  系统互连的表示 161
5.2.1  综合性算法建模实例 162
5.3  系统算法建模 166
5.3.1  多值逻辑系统 166
5.3.2  综合性的系统实例 172
5.3.3  时分多路复用 179
习题 185
第6章  寄存器级设计 193
6.1  从算法到数据流描述的转换 193
6.2  定时分析 196
6.3  控制单元设计 198
6.3.1  控制单元的类型 198
6.4  终极RISC机 199
6.4.1  单条URISC指令 200
6.4.2  URISC的体系结构 200
6.4.3  URISC的控制 202
6.4.4  URISC系统 204
6.4.5  在寄存器级的URISC设计 205
6.4.6  URISC处理器的微码控制器 205
6.4.7  URISC处理器的硬连线控制器 207
习题 207
第7章  门级和ASIC库建模 212
7.1  精确门级建模 212
7.1.1  不对称定时 213
7.1.2  负载敏感延时建模 214
7.1.3  ASIC单元延时建模 218
7.1.4  延时的反向标注 222
7.1.5  VITAL:库元素的VHDL模型的
生成标准 223
7.2  检错 225
7.3  门级建模的多值逻辑 228
7.3.1  MOS设计的附加值 228
7.3.2  通用的状态/强度模型 229
7.3.3  区间逻辑 232
7.3.4  Vantage系统 233
7.3.5  多值门级模型 234
7.3.6  精确延时建模 238
7.4  门级模型的配置声明 238
7.4.1  缺省配置 241
7.4.2  配置和组件库 243
7.5  对竞争和险态建模 243
7.6  延时控制的方法 249
习题 251
第8章  基于HDL的设计技术 257
8.1  组合逻辑电路的设计 257
8.1.1  算法级的组合逻辑设计 258
8.1.2  行为域的组合逻辑数据流模型设计 263
8.1.3  门级结构域组合逻辑电路的综合 264
8.1.4  组合逻辑电路的设计活动小结 266
8.2  时序逻辑电路的设计 268
8.2.1  Moore型或Mealy型的选择 271
8.2.2  状态表的建立 272
8.2.3  创建状态图 272
8.2.4  转换表 274
8.2.5  创建状态机的VHDL模型 275
8.2.6  VHDL状态机模型的综合 279
8.3  微程序控制单元的设计 281
8.3.1  控制器和器件的接口 281
8.3.2  硬连线和微程序控制单元的比较 281
8.3.3  基本微程序控制单元 284
8.3.4  BMCU的算法级模型 285
8.3.5  状态机微程序控制器的设计 287
8.3.6  微程序控制单元的普遍性和局限性 292
8.3.7  其他的状态选择方法 294
8.3.8  其他分支方法 296
习题 299
第9章  ASIC及ASIC设计过程 309
9.1  什么是ASIC 309
9.2  ASIC电路技术 310
9.3  ASIC的类型 311
9.3.1  可编程逻辑器件 311
9.3.2  现场可编程门阵列 313
9.3.3  门阵列 321
9.3.4  标准单元 322
9.3.5  全定制芯片 326
9.3.6  ASIC和FPGA的相对成本 326
9.4  ASIC设计过程 329
9.4.1  标准单元ASIC综合 330
9.4.2  综合后仿真 341
9.5  FPGA综合 343
9.5.1  FPGA示例 344
9.5.2  与ASIC设计的比较 346
习题 346
第10章  综合建模 352
10.1  行为模型的产生过程 352
10.1.1  初始行为模型的创建 353
10.1.2  应用域工具 353
10.1.3  语言域建模 355
10.1.4  建模及模型效率 357
10.1.5  应用域和语言域建模的比较 358
10.2  仿真和综合的语义 360
10.2.1  模型中的延时 364
10.2.2  数据类型 364
10.3  为时序行为建模 365 
10.4  为组合电路综合建模 371
10.4.1  运算电路的综合 374
10.4.2  层次算术电路:
BCD到二进制的转换器 375
10.4.3  层次电路的综合 377
10.5  指定锁存及无关项 380
10.6  三态电路 383
10.7  共享资源 385
10.8  展开与结构化 388
10.9  建模风格对电路复杂性的影响 388
10.9.1  选择单独构件的影响 388
10.9.2  通用建模方法的影响 390
习题 390
第11章  VHDL与自顶向下设计
方法的结合 401
11.1  自顶向下设计方法学 401
11.2  Sobel边缘检测算法 403
11.3  系统需求级 405
11.3.1  书面规格说明 405
11.3.2  需求库 405
11.4  系统定义级 408
11.4.1  可执行规格说明 409
11.4.2  可执行规格说明的测试包的产生 416
11.5  结构设计 427
11.5.1  系统级分解 428
11.5.2  层次分解 430
11.5.3  为层次结构模型产生测试包
的方法 433
11.6  寄存器传输级详细设计 436
11.6.1  寄存器传输级设计 437
11.6.2  使用不同数据类型的组件
仿真结构模型 440
11.6.3  寄存器传输级测试包的产生 445
11.7  门级详细设计 446
11.7.1  水平过滤器的门级设计 446
11.7.2  门级电路的优化 447
11.7.3  门级测试 448
11.7.4  反向标注的方法 448
习题 448
第12章  设计自动化的综合算法 452
12.1  算法性综合的优点 452
12.2  算法性综合的任务 453
12.2.1  VHDL描述到内部格式的编译 454
12.2.2  调度 454
12.2.3  分配 454
12.2.4  调度和分配的交互 457
12.2.5  Gantt图和利用率 459
12.2.6  从分配图创建FSM VHDL 459
12.3  调度方法 461
12.3.1  转换调度 462
12.3.2  迭代/构造调度 463
12.3.3  ASAP调度 463
12.3.4  ALAP 调度 464
12.3.5  列表调度 466
12.3.6  自由调度 468
12.4  分配方法 468
12.4.1  贪心分配法 469
12.4.2  穷举搜索分配 469
12.4.3  左边界算法 469
12.4.4  分配功能部件及互连路径 471
12.4.5  分配过程的分析 475
12.4.6  近似最小簇划分算法 476
12.4.7  利益制导簇划分算法 481
12.5  高层综合的发展动态 488
12.6  VHDL结构的自动综合 490
12.6.1  包含选择的构件 490
12.6.2  case语句对多路器的映射 491
12.6.3  if...then...else语句对多路器的映射 492
12.6.4  带下标向量引用对多路器的映射 493
12.6.5  循环结构 494
12.6.6  函数和过程 498
习题 499
参考文献 509
附带光盘简介 516

教学资源推荐
作者: (美)斯蒂芬·J.查普曼(Stephen J. Chapman)著
作者: (美)Gerald Recktenwald
作者: [美]克利夫·B. 莫勒(Cleve B. Moler)著
参考读物推荐
作者: 邓湘榆 黄昭霖 黄进财 薛启宏 范家瑞 黄圣杰
作者: 张俊华 王少妮
作者: 白海波 等编著