首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 图书频道 > 计算机与网络 > 程序设计 >

Verilog HDL与数字系统设计简明教程

2010-03-14 
基本信息·出版社:人民邮电出版社 ·页码:292 页 ·出版日期:2009年02月 ·ISBN:7115193665/9787115193667 ·条形码:9787115193667 ·版本:第1版 · ...
商家名称 信用等级 购买信息 订购本书
Verilog HDL与数字系统设计简明教程 去商家看看
Verilog HDL与数字系统设计简明教程 去商家看看

 Verilog HDL与数字系统设计简明教程


基本信息·出版社:人民邮电出版社
·页码:292 页
·出版日期:2009年02月
·ISBN:7115193665/9787115193667
·条形码:9787115193667
·版本:第1版
·装帧:平装
·开本:16
·正文语种:中文

内容简介 《Verilog HDL与数字系统设计简明教程》分3部分,第1部分(第1~6章)是语法部分,详细讲解Verilog HDL语法知识和基本应用;第2部分(第7~9章)是实例部分,通过从已公布的成熟源代码中精选的50多个最具代表性的建模实例,辅以框图和详细注释帮助读者理解程序,从而学习典型电路单元的建模方法;第3部分(第10章)是系统设计实战,为初学者展示了一个小型系统的详细设计流程。
  《Verilog HDL与数字系统设计简明教程》内容丰富、实用性强,适合高等院校相关专业高年级学生和研究生学习和阅读,对参加相关工作的工程技术人员也有很强的参考价值。
编辑推荐 VerilogHDL发展至今20多年中积累的文档、书籍和各种资料可谓不计其数,《Verilog HDL与数字系统设计简明教程》力图从这些资料中,找到适合初学者学习的内容,用一种更好的组织方式,将之呈现给读者。
以语法讲解和程序分析为主,告诉读者VerilogHDL是什么、如何写、如何用,面对一段写好的程序如何做出正确分析,并最终掌握设计流程和建模方法。
实例丰富、注释和分析详尽,可以在设计阶段直接使用书上的程序,从而节省时间。
建议读者在学习之余尽量多动手编程并做仿真。如果能把《Verilog HDL与数字系统设计简明教程》给出的实例全都调试一次,一定可以事半功倍。
《Verilog HDL与数字系统设计简明教程》配有课件可以在hittp://wwwptpreess.com,cn/Resourcesaspx处下载。
目录
第1章 初识Verilog HDL 1
1.1 什么是Verilog HDL 1
1.2 主要功能 1
1.3 设计流程 2
1.4 基本结构 2
1.4.1 模块的概念 3
1.4.2 模块调用 4
1.4.3 测试模块 5
1.5 程序设计基础 6
1.5.1 程序格式 7
1.5.2 注释语句 7
1.5.3 标识符和关键词 8
1.5.4 参数声明 8
1.5.5 预处理指令 8

第2章 数据类型与表达式 12
2.1 数据类型 12
2.1.1 常量 12
2.1.2 变量 14
2.2 表达式 21
2.2.1 操作数 21
2.2.2 操作符 24

第3章 行为建模方法 32
3.1 数据流行为建模 32
3.1.1 连续赋值语句 32
3.1.2 线网声明赋值 33
3.1.3 时延的概念 34
3.1.4 线网时延 35
3.1.5 用数据流建模方式实现1位全加器 36
3.2 顺序行为建模 36
3.2.1 过程结构语句 36
3.2.2 时序控制 42
3.2.3 语句块 45
3.2.4 过程性赋值 48
3.2.5 if语句 55
3.2.6 case语句 58
3.2.7 循环语句 60
3.2.8 握手协议实例 63

第4章 结构建模方法 65
4.1 Verilog HDL内置基元 66
4.1.1 内置基本门 66
4.1.2 上拉、下拉电阻 70
4.1.3 MOS开关 71
4.1.4 双向开关 73
4.1.5 给基元定义时延 74
4.1.6 描述实例数组 74
4.1.7 内置基元建模实例 74
4.2 用户定义基元 76
4.2.1 UDP的定义 76
4.2.2 组合电路UDP 77
4.2.3 时序电路UDP 78
4.2.4 Verilog HDL速记符号 80
4.2.5 电平触发和边沿触发混合的UDP 81
4.3 模块实例化 83
4.3.1 端口关联方式 83
4.3.2 悬空端口 85
4.3.3 端口匹配 85
4.3.4 模块参数值 86
4.3.5 建模实例 88
4.4 行为描述和结构描述的混合使用 90

第5章 任务、函数及其他 91
5.1 任务 91
5.1.1 任务定义 91
5.1.2 任务调用 92
5.2 函数 94
5.2.1 函数定义 94
5.2.2 函数调用 95
5.3 系统任务和函数 96
5.3.1 显示任务 96
5.3.2 文件输入/输出任务 99
5.3.3 时间标度任务 101
5.3.4 仿真控制任务 102
5.3.5 时序验证任务 102
5.3.6 仿真时间函数 102
5.3.7 实数变换函数 103
5.3.8 随机函数 103
5.4 其他重要概念 104
5.4.1 禁止语句 104
5.4.2 命名事件 105
5.4.3 层次路径名 107
5.4.4 共享任务和函数 109
5.4.5 VCD文件 111
5.4.6 指定块 117
5.4.7 强度 117

第6章 编写测试程序 120
6.1 测试模块 120
6.2 产生输入信号 121
6.2.1 特定值序列 121
6.2.2 重复模式 123
6.3 从文本文件中读取向量 127
6.4 向文本文件中写入向量 129
6.5 测试程序实例 130
6.5.1 半加器 130
6.5.2 5位计数器 131
6.5.3 2选1选择器 133
6.5.4 2-4解码器 134
6.5.5 D触发器 135

第7章 初级建模实例 138
7.1 触发器 138
7.1.1 上升沿触发器 138
7.1.2 带异步复位端的上升沿触发器 139
7.1.3 带异步置位端的上升沿触发器 140
7.1.4 带异步复位端和异步置位端的上升沿触发器 140
7.1.5 带同步复位端的上升沿触发器 141
7.1.6 带同步置位端的上升沿触发器 142
7.1.7 带异步复位端和输出使能端的上升沿触发器 142
7.2 锁存器 143
7.2.1 带使能端的锁存器 143
7.2.2 可异步选通数据的锁存器 143
7.2.3 可选通使能端的锁存器 144
7.2.4 带异步复位端的锁存器 145
7.3 编码器 145
7.4 解码器 146
7.5 多路数据选择器 147
7.5.1 用if-else构造的4选1选择器 147
7.5.2 用case构造的4选1选择器 148
7.5.3 用case构造的12选1选择器 149
7.5.4 带忽略位的多路选择器 150
7.6 计数器 151
7.6.1 带计数使能端和异步复位端的8位计数器 151
7.6.2 可设定计数输出并带异步复位端的8位计数器 152
7.6.3 可设定计数输出并带使能端、进位端和复位端的8位计数器 153
7.7 输入输出缓冲器 154
7.7.1 三态缓冲器 154
7.7.2 双向缓冲器 155
7.8 加法器 156
7.8.1 半加器 156
7.8.2 全加器 157
7.8.3 串行进位加法器 159
7.8.4 超前进位加法器 160
7.9 移位寄存器 165
7.10 频率转换器 166
7.11 模数转换器 169

第8章 高级建模实例 172
8.1 状态机建模 172
8.1.1 乘法器状态机 172
8.1.2 交互状态机 174
8.1.3 Moore型有限状态机 178
8.1.4 Mealy型有限状态机 180
8.2 序列检测器 182
8.3 FIFO(先入先出电路) 185
8.3.1 16×16FIFO 185
8.3.2 4×16FIFO 187
8.4 UART(通用异步收发器) 196

第9章 程序综合实例 208
9.1 可综合设计 208
9.1.1 综合的概念 208
9.1.2 可综合 209
9.1.3 可综合及不可综合的结构 209
9.2 综合实例 210
9.2.1 组合逻辑电路 210
9.2.2 时序逻辑电路 211
9.2.3 存储器 224
9.2.4 布尔方程 225
9.2.5 有限状态机 226
9.2.6 通用移位寄存器 232
9.2.7 算术逻辑单元(ALU) 233
9.2.8 二进制计数器 236
9.2.9 加法器 237
9.2.10 数值比较器 237
9.2.11 解码器 238
9.2.12 三态门 240
9.2.13 序列检测器 241

第10章 系统设计实战 244
10.1 系统功能分析 244
10.1.1 计算机的基本结构 245
10.1.2 典型微处理器系统结构及工作原理 245
10.1.3 普通计算器的基本结构 247
10.2 系统设计规划 247
10.2.1 系统功能模块划分 247
10.2.2 键盘输入模块 249
10.2.3 寄存器组 251
10.2.4 算术逻辑单元 252
10.2.5 显示部分 255
10.2.6 系统结构 257
10.3 程序设计与仿真 258
10.3.1 键盘输入模块程序与仿真 258
10.3.2 ALU模块程序与仿真 263
10.3.3 显示部分程序与仿真 283
10.3.4 顶层模块程序设计 292
10.4 逻辑综合 292
……
序言 HDL(HardwareDescriptionLanguage,硬件描述语言)是伴随着集成电路设计复杂度和集成度的急剧上升而出现的。
硬件工程师们总要画电路图,用一个个小元件搭出或大或小的系统原理图。当电路图中的元件多达百个以上时,无论是画图还是分析都会有一定的难度。同样的情形也发生在集成电路设计中,当一个芯片内必须包含上万个甚至几十万、几百万个晶体管时(目前面市的频率最高的CPU芯片内已经集成了近2亿个晶体管),用原理图的方式来设计和管理显然是“不可能的任务”。于是出现了HDL设计方法,就像20世纪70年代高级编程语言迅速取代汇编语言一样,从20世纪90年代以来,HDL逐渐取代了门级原理图设计方法。
VerilogHDL是1983年由位于英格兰阿克顿市的GDA公司开发出来的。VerilogHDL的具体物理建模能力强,语法类似c语言,容易学习。Verilog在工业界被应用广泛,美国大多数公司的RTL级代码都是用Verilog写的。
本书主要针对初学者,在内容安排上主要以语法讲解和程序分析为主,并没有介绍复杂系统的设计方法。初学者应当从本书的基本结构和方法出发,打好基础,一旦成为一个熟练的设计师,就会发现Verilog只是一个工具,而对系统功能的考虑和时序的精细设计才是最需要设计人员考虑的。
本书的写作目标是让初学者顺利入门,希望您在阅读本书的过程中逐渐了解到VerilogHDL,是什么、如何写、如何用,面对一段写好的程序能够做出正确分析,最终掌握设计流程和建模方法。
VerilogHDL发展至今20多年积累的文档、书籍和各种资料可谓不计其数,本书作者试图从这些资料中,找到更好的也是更适合初学者学习的内容,用一种更好的组织方式,呈现给读者,让读者从中受益。
大量使用实例并带有详细的注释和分析是本书的最大特点。书中提供大量程序实例,目的不仅仅是让读者在学习阶段理解它们的建模方法和技巧,而且可以在设计阶段把其中很多程序片段直接拿来使用,从而节省时间。
实践是学好编程语言的最佳途径,所以建议读者在学习之余尽量能多动手编程并做仿真。如果您能把本书给出的实例全都调试一次,一定可以事半功倍。
本书由吴戈编写,参加资料整理的还有何伟、张兵、刘兆宏、季建华、刘福刚、赵文革、黄弦、邓玉春、曾庆华、石昀、朱元斌、钱文杰、陈功杰、汪洪、刘超、钟晓媛等,在此一并表示感谢!
文摘 VeiilogHDL是一种硬件描述语言,可以在算法级、门级到开关级的多种抽象设计层次上对数字系统建模。
VerilogHDL可以描述设计的行为特性、数据流特性、结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。此外,VerilogHDL提供了编程语言接口,通过该接口用户可以在模拟、验证期间从外部访问设计,包括模拟的具体控制和运行。
VeillogHDL不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。因此,用这种语言编写的模型能够使用VerilogHDL仿真器进行验证。VetilogHDL从C语言中继承了多种操作符和结构,所以从形式上看VerilogHDL和C语言有很多相似之处。虽然VeillogHDL有一些不太容易理解的扩展功能,但是VerilogHDL的核心子集非常易于学习和使用,而且对大多数建模应用来说核心子集已经足够用了。完整的VeillogHDL足以对最复杂的芯片和完整的电子系统进行描述。
1.2主要功能
作为一种硬件描述语言,VerilogHDL可以直接描述硬件结构,也可以通过描述系统行为实现建模。VerilogHDL的主要特点和功能有:描述基本逻辑门,如and、or和nand等基本逻辑门都内置在语言中,可以直接调用。描述基本开关模型,如nlrlos、pmos和cmos等基本开关都可以直接调用。允许用户定义基元(uDP),这种方式灵活而有效,用户定义的基元既可以是组合逻
辑也可以是时序逻辑。可以指定设计中的端口到端口的时延、路径时延和设计的时序检查。可采用多种方式进行建模。这些方式包括顺序行为描述方式——使用过程化结构建
模,数据流行为方式——使用连续赋值语句方式建模,结构化方式——使用门和模块
实例语句描述建模。

插图:

热点排行