内容简介
《Verilog数字设计原理》涵盖与Verilog数字设计相关的基础知识和深入主题,全面介绍现代数字电路的设计和实现方式。
《Verilog数字设计原理》特别关注如何使用架构和时序图将设计概念转化为物理实现,总结并解决了初学者甚至经验丰富的工程师可能犯的常见错误,详细说明了几种ASIC设计,除了设计原则和技巧之外,还深入探讨了现代设计方法及其实施方式。《Verilog数字设计原理》共分10章,内容包括Verilog基础、Verilog高级话题、数的表示、组合逻辑电路、时序逻辑电路、数字系统设计、高级系统设计、I/O接口、逻辑综合等。《Verilog数字设计原理》的许多示例及RTL代码可以将初学者轻松带入数字设计领域。
目录
目录
第?1?章 导论 1
1.1 集成电路产业 2
1.2 数字时代 2
1.3 布尔代数和逻辑设计 6
1.4 计算机辅助设计 6
1.5 ASIC设计流程 8
1.6 硬件描述语言 11
1.7 基于寄存器传输级的设计 14
1.8 功能验证 17
1.9 逻辑综合 19
1.10 时序验证 20
1.11 物理设计 23
1.12 更多关于设计流程的内容 24
1.13 练习题 25
参考文献 26
第?2?章 Verilog基础 27
2 .1 Verilog HDL简介 28
2.2 模块和端口 29
2.3 Verilog中数字的表示 35
2.4 数据类型 37
2.5 连续赋值语句 41
2.6 过程语句结构 41
2.7 Verilog原语 48
2.8 表达式 50
2.9 仿真环境 60
2.10 练习题 63
参考文献 67
第?3?章 Verilog高级话题 69
3.1 抽象级别 70
3.2 if-else语句 70
3.3 case、casez和casex语句 74
3.4 for 循环语句 77
3.5 函数和任务 79
3.6 参数化设计 82
3.7 电路中的延迟 83
3.8 阻塞赋值和非阻塞赋值 94
3.9 一些有用的系统任务 99
3.10 高级Verilog仿真 102
3.11 Verilog高级功能 104
3.12 练习题 106
参考文献 115
第?4?章 数的表示 117
4.1 数的精度和分辨率 118
4.2 定点数 119
4.3 浮点数 133
4.4 其他二进制数 134
4.5 练习题 134
参考文献 136
第?5?章 组合逻辑电路 137
5.1 数据流级描述 138
5.2 行为级描述 140
5.3 结构级描述 145
5.4 组合逻辑电路 145
5.5 组合逻辑电路的基本构件:逻辑单元 147
5.6 组合电路中的基本模块:算术单元 158
5.7 练习题 183
参考文献 187
第?6?章 时序逻辑电路 189
6.1 时序逻辑电路简介 190
6.2 行为级描述 200
6.3 结构级描述 203
6.4 常用的时序逻辑电路模块 203
6.5 练习题 221
参考文献 228
第?7?章 数字系统设计 229
7.1 系统设计:从虚拟到现实 230
7.2 系统级设计:存储系统 257
7.3 设计架构和时序图 275
7.4 霍夫曼编码设计 286
7.5 练习题 301
参考文献 322
第?8?章 高级系统设计 323
8.1 DRAM 324
8.2 Flash 325
8.3 同步器设计 326
8.4 计算机组成 352
8.5 组件标签引擎的数字设计 376
8.6 练习题 389
参考文献 394
第?9?章 I/O接口 395
9.1 I/O控制器 396
9.2 总线 408
9.3 串行传输技术 410
9.4 嵌入式软件I/O接口 414
9.5 加速器 423
9.6 练习题 441
参考文献 442
第?10?章 使用Design Compiler进行逻辑综合 443
10.1 可综合设计 444
10.2 综合流程 446
10.3 设置设计约束 457
10.4 设计编译 468
10.5 自适应阈值引擎 482
10.6 练习题 485
参考文献 489
附录 491
附录A 基本逻辑门和用户定义的原语 492
附录B 不可综合结构 501
附录C 高级线网数据类型 504
附录D 有符号乘法器 505
附录E 设计规则和指南 509
参考文献 521
试读
第1章导论
本章主要介绍数字电路和模拟电路的设计方法,重点介绍专用集成电路(ASIC)的设计流程。通过本章的学习,你将清晰了解寄存器传输级(RTL)电路的设计和一款可行性芯片的需求。同时本章对建立时间和保持时间进行简要介绍,在学习的过程中,你还会了解很多ASIC设计中的专有名词,例如功能验证、逻辑综合、时序验证和物理实现等。
1.1集成电路产业
现代的集成电路(IC)技术可以将数百万半导体器件集成在很小的硅片(即芯片)上,并且不管是数字芯片还是模拟芯片都使用半导体材料制作而成。半导体产业是很多从事半导体器件设计和制造的公司的集合,其中包括IC设计、掩模、制造、封装、晶圆测试和IC测试,还包括引线框架和很多化学品等,这些环节之间的关系如图1.1所示。通过IC设计,用掩模表征芯片中组成晶体管的各种金属、氧化物以及不同的半导体层图案的平面几何形状。制造包含光刻和化学加工等多个步骤,通过掩模的引导,逐步在晶圆上创建器件。封装是半导体制造的*后阶段,用于将芯片封装在支撑壳中,以防止物理损坏或腐蚀。IC测试用来验证器件是否按照其设计规范的规定工作。
人们对高性能微处理器和手机等先进电子产品需求的日益增加,促进了半导体产业的发展。芯片表面的晶体管是通过放置不同形状的半导体材料和绝缘材料构成的。被绝缘层分隔开的金属层主要形成于晶体管上部。与此同时,伴随半导体器件尺寸的不断缩小,器件中单位面积集成的晶体管数目和布线层数也在不断增加,晶体管沟道长度、晶体管阈值电压和电源电压等都在不断减小。
1.2数字时代
1.2.1A/D和D/A转换
数字电路和模拟电路分别用于处理数字信号和模拟信号。其中典型的数字电路是基于各种逻辑门(与门、或门、非门等)设计的,而模拟电路是由有源器件(晶体管和二极管等)和无源器件(电阻、电容和电感等)组成的,这里需要注意,虽然逻辑门也是由各种晶体管组成的,但是这些逻辑门主要用于处理数字信号。在数字逻辑电路中存在对应高电平的逻辑1(用二进制数字1表示)和对应低电平的逻辑0(用二进制数字0表示)。
数字系统中的离散时间信号是对连续模拟信号在离散时间进行采样后量化得到的,如图1.2所示,其中的每个采样都表示给定时刻模拟信号的近似值。根据采样定理,在满足*小采样率的情况下,离散时间采样点完全可以重构带宽有限的连续时间模拟信号。虽然量化过程还是会引人量化误差或噪声,但是通过增加更多的离散时间采样点数可以有效减少量化误差。
应用于数字领域的数字电路一般情况下更容易进行设计。因此,数字信号处理器(DSP)成为当前的发展趋势,通过DSP可以控制模数转换器(ADC)将模拟信号转换成数字信号,反之也可以通过控制数模转换器(DAC)将数字信号转换成对应的模拟信号。在数字电路中,量化离散信号更容易操作和存储,数字信号的每一位可以被指定为两个不同的电压作为两种不同的逻辑电平,即高电平(常用Fdd表示)表示逻辑1,低电平(常用0V表示)表示逻辑0。
相比之下,模拟电路的设计要困难得多,因为模拟电路对于各种干扰非常敏感,比如噪声和信号或者电源电压的变化等。连续时间模拟信号的一个小小的变化都有可能导致电路功能的错误。在现代电路系统中,模拟电路的应用仅限于系统与外界或者与其他实现特定功能电路之间的接口,例如模拟信号到数字信号的转换、数字信号到模拟信号的转换、稳压器、锁相环(PLL)和超高速信号的处理等。
1.2.2数字系统和数字逻辑
数字系统在日常生活中扮演着如此重要的角色,以至于我们把信息和通信过程的现代化称为数字化时代。数字系统主要以数字形式存储、处理和交流信息,广泛应用于手机、计算机、在线游戏和多媒体设备等。
经过A/D转换之后,数字系统就可以实现对于信息的离散化表示和控制。一个数字系统由很多数字模块互联组成,因此一个数字系统可能包含很多组件。例如,一个计算机系统就包含了中央处理单元、硬盘驱动、键盘、鼠标和显示器等。一个典型的数字系统通常具有以下优点:
(1)性能:高精度、高***和低功耗。
(2)可靠性:受老化、噪声、温度和环境影响较小。
(3)灵活性:数字系统通常都具有存储器并且更易于设计,数据信息可以方便地在数字系统中进行存储、处理和交互,这样的特点使得数字系统更加通用并且可以实现很复杂的功能,此外,还可以通过软件控制数字系统的操作。
数字电子技术是数字化世界的基础。想要了解数字模块的功能,就必须掌握数字电路及其逻辑运算的基本知识。目前几乎所有使用晶体管作为开关的电子器件都会涉及数字技术的基本概念。**个被广泛使用的数字逻辑家族是晶体管逻辑(TTL)家族,其中的逻辑门是由双极性晶体管(BJT)组成的,由这些器件的电气特性产生的设计标准,仍然影响着现在的逻辑设计。