- ISBN:9787121448676
- 装帧:暂无
- 册数:暂无
- 重量:暂无
- 开本:其他
- 页数:312
- 出版时间:2023-01-01
- 条形码:9787121448676 ; 978-7-121-44867-6
内容简介
本书系统讲解Verilog HDL语言规则、语法体系,以Verilog-2001和Verilog-2005两种语言标准为依据,精讲语言,全面梳理,知识点系统全面。本书立足语言本身,按照语言体系编排内容,涵盖所有常用语法规则,补充Verilog-2005中新的语言点,既适合作为推荐语法资料查询,也适合有一定设计基础的读者学习。主要内容包括Verilog HDL入门、数据类型、表达式、门级和开关级建模、数据流建模、行为级建模、层次结构、任务与函数、Test Bench测试与时序检查、面向综合的设计、有限状态机设计、Verilog HDL设计实例等,重点聚焦Verilog HDL综合和仿真,对语言、语法规则用案例进行阐释,用综合工具和仿真工具进行验证,利于读者加深理解。
目录
第1章 Verilog HDL入门 1
1.1 Verilog HDL简史 1
1.2 Verilog HDL描述的层级 2
1.3 Verilog HDL设计的流程 3
1.3.1 设计输入 3
1.3.2 综合 4
1.3.3 布局布线 4
1.3.4 时序分析 4
1.3.5 功能仿真与时序仿真 5
1.3.6 编程与配置 5
1.4 Verilog HDL文字规则 5
1.4.1 词法 5
1.4.2 空白符 5
1.4.3 注释 6
1.4.4 操作符 6
1.4.5 字符串 6
1.4.6 关键字 7
1.5 数字 7
1.5.1 整数 8
1.5.2 实数 9
1.5.3 数的转换 10
1.6 标识符 10
1.6.1 标识符简介 10
1.6.2 转义标识符 10
习题1 11
第2章 数据类型 12
2.1 值集合 12
2.2 net数据类型 12
2.2.1 wire型与tri型 13
2.2.2 其他net类型 13
2.3 variable数据类型 14
2.3.1 reg型 15
2.3.2 integer型与time型 15
2.3.3 real型与realtime型 16
2.4 向量 16
2.5 数组 17
2.5.1 数组简介 17
2.5.2 存储器 17
2.5.3 数组的赋值 17
2.6 参数 18
2.6.1 parameter参数 18
2.6.2 localparam局部参数 20
2.6.3 specparam参数 21
2.6.4 参数值修改 22
习题2 22
第3章 表达式 24
3.1 操作符 24
3.1.1 算术操作符 24
3.1.2 关系操作符 26
3.1.3 相等操作符 26
3.1.4 逻辑操作符 27
3.1.5 位操作符 27
3.1.6 缩减操作符 28
3.1.7 移位操作符 28
3.1.8 指数操作符 30
3.1.9 条件操作符 30
3.1.10 拼接操作符 30
3.1.11 操作符的优先级 31
3.2 操作数 31
3.2.1 整数 32
3.2.2 位选和段选 32
3.2.3 数组 34
3.2.4 字符串 34
3.3 表达式的符号 35
3.4 表达式的位宽 37
3.4.1 表达式位宽的规则 37
3.4.2 表达式位宽示例 38
3.5 赋值和截断 40
习题3 42
第4章 门级和开关级建模 43
4.1 Verilog HDL门元件 43
4.2 门元件的例化 45
4.2.1 门元件的例化简介 45
4.2.2 门延时 46
4.2.3 驱动强度 48
4.3 开关级元件 50
4.3.1 MOS开关 50
4.3.2 双向导通开关 51
4.4 门级结构建模 52
4.5 用户自定义元件 53
4.6 组合逻辑UDP元件 54
4.7 时序逻辑UDP元件 55
4.7.1 电平敏感时序UDP元件 55
4.7.2 边沿敏感时序UDP元件 56
4.7.3 电平敏感和边沿敏感行为的混合描述 56
4.8 时序UDP元件的初始化和例化 57
4.8.1 时序UDP元件的初始化 57
4.8.2 时序UDP元件的例化 58
习题4 59
第5章 数据流建模 60
5.1 连续赋值 60
5.1.1 连续赋值 60
5.1.2 net型变量声明时赋值 60
5.1.3 赋值延时 61
5.1.4 驱动强度 62
5.2 数据流建模 63
5.3 加法器和减法器 64
5.4 格雷码与二进制码的转换 68
5.5 三态逻辑设计 71
习题5 72
第6章 行为级建模 73
6.1 行为级建模概述 73
6.1.1 always过程语句 73
6.1.2 initial过程 75
6.2 过程时序控制 76
6.2.1 延时控制 76
6.2.2 事件控制 77
6.3 过程赋值 79
6.3.1 variable型变量声明时赋值 79
6.3.2 阻塞过程赋值 79
6.3.3 非阻塞过程赋值 80
6.3.4 阻塞赋值过程与非阻塞过程赋值的区别 81
6.4 过程连续赋值 83
6.4.1 assign和deassign 83
6.4.2 force和release 83
6.5 块语句 84
6.5.1 串行块begin-end 84
6.5.2 并行块fork-join 85
6.5.3 块命名 86
6.6 条件语句 87
6.6.1 if-else语句 88
6.6.2 case语句 90
6.6.3 casez与casex语句 92
6.7 循环语句 94
6.7.1 for语句 94
6.7.2 repeat、while和forever语句 95
习题6 97
第7章 层次结构 99
7.1 模块和模块例化 99
7.2 带参数模块例化与参数传递 101
7.2.1 带参数模块例化 101
7.2.2 用parameter进行参数传递 102
7.2.3 用defparam进行参数重载 104
7.3 层次路径名 105
7.4 generate生成语句 107
7.4.1 generate、for生成语句 107
7.4.2 generate、if生成语句 109
7.4.3 generate、case生成语句 110
7.5 属性 112
习题7 113
第8章 任务与函数 115
8.1 任务 115
8.1.1 任务 115
8.1.2 任务示例 116
8.2 函数 119
8.2.1 函数 119
8.2.2 任务和函数的区别 122
8.3 automatic任务和函数 123
8.3.1 automatic任务 123
8.3.2 automatic函数 124
8.4 系统任务与系统函数 125
8.5 显示类任务 126
8.5.1 $display与$write 126
8.5.2 $strobe与$monitor 128
8.6 文件操作类任务 129
8.6.1 $fopen与$fclose 129
8.6.2 $fgetc与$fgets 130
8.6.3 $readmemh与$readmemb 132
8.7 控制和时间类任务 133
8.7.1 $finish与$stop 133
8.7.2 $time、$stime与$realtime 134
8.7.3 $printtimescale与$timeformat 135
8.7.4 $signed与$unsigned 136
8.8 随机数及概率分布函数 137
8.8.1 $random 137
8.8.2 概率分布函数 139
8.9 编译指令 140
8.9.1 `timescale 140
8.9.2 `define和`undef 142
8.9.3 `ifdef、`else、`elsif、`endif和`ifndef 142
8.9.4 `include 144
8.9.5 `default_nettype 145
8.9.6 其他编译指令 145
习题8 146
第9章 Test Bench测试与时序检查 147
9.1 Test Bench测试 147
9.1.1 Test Bench 147
9.1.2 产生激励信号 147
9.1.3 产生时钟信号 148
9.1.4 读写文件 149
9.1.5 显示结果 151
9.2 测试实例 152
9.2.1 乘法器测试 152
9.2.2 数据选择器测试 153
9.2.3 格雷码计数器 154
9.3 specify块 156
9.3.1 specify块简介 156
9.3.2 模块路径延时 157
9.3.3 模块路径延时和分布延时混合 159
9.4 时序检查 159
9.4.1 $setup和$hold 160
9.4.2 $width和$period 161
9.5 SDF文件 162
习题9 163
第10章 面向综合的设计 164
10.1 可综合的设计 164
10.2 加法器设计 166
10.2.1 行波进位加法器 166
10.2.2 超前进位加法器 167
10.3 乘法器设计 171
10.3.1 用乘法操作符实现 171
10.3.2 布斯乘法器 172
10.3.3 查找表乘法器 176
10.4 有符号数的运算 181
10.5 ROM存储器 184
10.5.1 用数组例化存储器 184
10.5.2 例化lpm_rom实现存储器 186
10.6 RAM存储器 188
10.6.1 单口RAM 188
10.6.2 双口RAM 191
10.7 流水线设计 194
10.8 资源共享 197
习题10 199
第11章 有限状态机设计 200
11.1 有限状态机简介 200
11.2 有限状态机的Verilog HDL描述 201
11.2.1 三段式状态机描述 202
11.2.2 两段式状态机描述 203
11.2.3 单段式描述 204
11.3 状态的编码 206
11.3.1 常用的编码方式 206
11.3.2 状态编码的定义 207
11.3.3 用属性指定状态编码方式 211
11.3.4 多余状态的处理 211
11.4 用有限状态机设计除法器 211
11.5 用有限状态机控制流水灯 215
11.6 用状态机控制字符液晶 217
习题11 225
第12章 Verilog HDL设计实例 227
12.1 标准PS/2键盘 227
12.2 超声波测距 232
12.3 4×4矩阵键盘 237
12.4 汉字图形点阵液晶 243
12.4.1 LCD12864B汉字图形点阵液晶 243
12.4.2 汉字图形点阵液晶静态显示 244
12.4.3 汉字图形点阵液晶动态显示 247
12.5 VGA显示器 249
12.5.1 VGA显示原理与时序 249
12.5.2 VGA彩条信号发生器 251
12.5.3 VGA图像显示 255
12.6 TFT液晶屏 261
12.6.1 TFT液晶屏 261
12.6.2 TFT液晶屏显示彩色圆环 264
12.6.3 TFT液晶屏显示动态矩形 269
12.7 音乐演奏电路 271
12.7.1 音符演奏 272
12.7.2 乐曲演奏 276
12.8 开方运算 281
12.9 Cordic算法及其实现 286
12.9.1 Cordic算法 286
12.9.2 Cordic算法的实现 288
习题12 295
附录A Verilog HDL关键字 297
参考文献 298
作者简介
王金明,大学副教授、硕士生导师。获国家发明专利授权2项,获软件著作授权1项;发表论文80余篇,其中SCI、EI收录30余篇;主编教材多部,并入选"十一五”国家级规划教材和"十二五”国家级规划教材;2013年获军队院校育才奖银奖;2014年由国家留学基金委资助,在美国威斯康星大学麦迪逊分校访问研究1年;指导本科生参加全国大学生电子设计竞赛,共获得全国一等奖8项。
-
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥37.7¥65.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥77.4¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
UN NX 12.0多轴数控编程案例教程
¥25.8¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥84.5¥119.0 -
PREMIERE PRO 2023全面精通:视频剪辑+颜色调整+转场特效+字幕制作+案例实战
¥69.3¥99.0