Verilog HDL程序设计教程(第2版) Verilog编程艺术电路设计FPGA芯片开发
¥59.90
运费: | ¥ 0.00-20.00 |
商品详情
书名:Verilog HDL程序设计教程(第2版)
定价:79.8
ISBN:9787115635846
作者:王金明 王婧菡
版次:第2版
出版时间:2024-09
内容提要:
本书系统讲解Verilog HDL的语言规则、语法体系,以Verilog-2001和Verilog-2005两个语言标准为依据,知识点*、*。本书主要内容包括Verilog HDL入门、数据类型、表达式、门级和开关级建模、数据流建模、行为级建模、层次结构、任务与函数、Test Bench测试与时序检查、Verilog设计进阶、Verilog有限状态机设计、Verilog HDL驱动I/O外设、Verilog信号处理实例等。 本书可作为电工电子相关专业本科生和研究生的教学用书,也可供从事电路设计和系统开发的工程技术人员参考。
作者简介:
王金明,博士,解放军陆军工程大学教授、硕士生导师。曾获军队科技进步一等奖1项,军队科技进步二等奖3项,军队科技进步三等奖5项,获军队级教学成果二等奖1项;获国家发明专利授权2项,软件授权1项;发表论文80余篇,其中SCI、EI收录30余篇;主编教材多部,并入选“十一五”国家规划教材和“十二五”国家规划教材;2013年获军队院校育才奖银奖;2014年由国家留学基金委资助,在美国威斯康星大学麦迪逊分校访问研究1年;指导学生参加*大学生电子设计竞赛,获*一等奖、二等奖多项。
目录:
目 录
第 1章 Verilog HDL入门 1
1.1 Verilog HDL的发展简史 1
1.2 Verilog HDL描述的层级和方式 2
1.3 Verilog设计的目标器件 3
1.4 Verilog设计的流程 4
1.4.1 设计输入 4
1.4.2 综合 5
1.4.3 布局布线 5
1.4.4 时序分析 5
1.4.5 功能仿真与时序仿真 6
1.4.6 编程与配置 6
1.5 Verilog HDL的文字规则 6
1.5.1 词法 6
1.5.2 空白符 7
1.5.3 注释 7
1.5.4 操作符 7
1.5.5 字符串 7
1.5.6 关键字 9
1.6 数字 9
1.6.1 整数 9
1.6.2 实数 10
1.6.3 数的转换 11
1.7 标识符 11
练习 13
第 2章 数据类型 14
2.1 值集合 14
2.2 net数据类型 14
2.2.1 wire型与tri型 15
2.2.2 其他net类型 16
2.3 variable数据类型 17
2.3.1 reg型 17
2.3.2 integer型与time型 18
2.3.3 real型与realtime型 19
2.4 向量 19
2.5 数组 20
2.5.1 数组简介 20
2.5.2 存储器 20
2.5.3 数组的赋值 20
2.6 参数 21
2.6.1 parameter参数 21
2.6.2 localparam参数 23
2.6.3 specparam参数 24
2.6.4 参数值修改 24
练习 25
第3章 表达式 26
3.1 操作符 26
3.1.1 算术操作符 26
3.1.2 关系操作符 28
3.1.3 等式操作符 28
3.1.4 逻辑操作符 29
3.1.5 位操作符 29
3.1.6 缩减操作符 31
3.1.7 移位操作符 31
3.1.8 指数操作符 33
3.1.9 条件操作符 33
3.1.10 拼接操作符 33
3.1.11 操作符的优先级 34
3.2 操作数 35
3.2.1 整数 35
3.2.2 位选和段选 35
3.2.3 数组 37
3.2.4 字符串 38
3.3 表达式的符号 38
3.4 表达式的位宽 41
3.4.1 表达式位宽的规则 41
3.4.2 表达式位宽示例 41
3.5 赋值和截断 44
练习 45
第4章 门级和开关级建模 46
4.1 Verilog HDL门元件 46
4.2 门元件的例化 49
4.2.1 门元件的例化简介 49
4.2.2 门延时 50
4.2.3 驱动强度 52
4.3 开关级元件 54
4.3.1 MOS开关 54
4.3.2 双向导通开关 55
4.4 门级结构建模 56
4.5 用户自定义元件 57
4.6 组合逻辑UDP元件 58
4.7 时序逻辑UDP元件 59
4.7.1 电平敏感时序UDP元件 59
4.7.2 边沿敏感时序UDP元件 60
4.7.3 电平敏感和边沿敏感行为的
混合描述 60
4.8 时序UDP元件的初始化和例化 61
4.8.1 时序UDP元件的初始化 61
4.8.2 时序UDP元件的例化 62
练习 63
第5章 数据流建模 64
5.1 连续赋值 64
5.1.1 net型变量声明时赋值 65
5.1.2 赋值延时和线网延时 66
5.1.3 驱动强度 66
5.2 数据流建模 67
5.3 加法器和减法器 69
5.4 格雷码与二进制码的转换 73
5.5 三态逻辑设计 75
练习 77
第6章 行为级建模 78
6.1 行为级建模概述 78
6.1.1 always过程 79
6.1.2 initial过程 80
6.2 过程时序控制 81
6.2.1 延时控制 81
6.2.2 事件控制 81
6.3 过程赋值 83
6.3.1 variable型变量声明时赋值 84
6.3.2 阻塞过程赋值 84
6.3.3 非阻塞过程赋值 84
6.3.4 阻塞过程赋值与非阻塞过程
赋值的区别 85
6.4 过程连续赋值 87
6.4.1 assign和deassign 87
6.4.2 force和release 88
6.5 块语句 89
6.5.1 串行块begin-end 89
6.5.2 并行块fork-join 90
6.5.3 块命名 90
6.6 条件语句 92
6.6.1 if-else语句 92
6.6.2 case语句 94
6.6.3 casez与casex语句 97
6.7 循环语句 98
6.7.1 for语句 98
6.7.2 repeat、while和forever
语句 99
练习 101
第7章 层次结构 103
7.1 模块和模块例化 103
7.2 带参数模块例化与参数传递 105
7.2.1 带参数模块例化 105
7.2.2 用parameter进行参数
传递 106
7.2.3 用defparam进行参数
重载 108
7.3 层次路径名 109
7.4 generate生成语句 110
7.4.1 generate、for生成语句 110
7.4.2 generate、if生成语句 113
7.4.3 generate、case生成语句 113
7.5 属性 115
练习 117
第8章 任务与函数 118
8.1 任务 118
8.1.1 任务的定义和调用 118
8.1.2 任务示例 119
8.2 函数 122
8.2.1 函数简介 122
8.2.2 任务和函数的区别 125
8.3 automatic任务和函数 125
8.3.1 automatic任务 126
8.3.2 automatic函数 127
8.4 系统任务与系统函数 128
8.5 显示类任务 129
8.5.1 $display与$write 129
8.5.2 $strobe与$monitor 131
8.6 文件操作类任务 132
8.6.1 $fopen与$fclose 132
8.6.2 $fgetc与$fgets 133
8.6.3 $readmemh与$readmemb 135
8.7 控制和时间类任务 135
8.7.1 $finish与$stop 135
8.7.2 $time、$stime与$realtime 137
8.7.3 $printtimescale与
$timeformat 137
8.7.4 $signed与$unsigned 139
8.8 随机数及概率分布系统函数 140
8.8.1 $random 140
8.8.2 概率分布系统函数 141
8.9 编译指令 142
8.9.1 'timescale 143
8.9.2 'define和'undef 144
8.9.3 'ifdef、'else、'elsif、
'endif和'ifndef 145
8.9.4 'include 147
8.9.5 'default_nettype 147
8.9.6 其他编译指令 148
练习 149
第9章 Test Bench测试与时序检查 150
9.1 Test Bench测试 150
9.1.1 Test Bench 150
9.1.2 产生复位信号和激励
信号 151
9.1.3 产生时钟信号 152
9.1.4 读写文件 152
9.1.5 显示结果 154
9.2 测试示例 154
9.3 Verilog中的延时定义 158
9.3.1 specify块 158
9.3.2 模块路径 159
9.3.3 路径延时和分布延时
混合 161
9.4 时序检查 162
9.4.1 $setup和$hold 162
9.4.2 $width和$period 163
9.5 SDF文件 164
练习 165
第 10章 Verilog设计进阶 166
10.1 面向综合的设计 166
10.2 加法器设计 168
10.2.1 行波进位加法器 169
10.2.2 *前进位加法器 170
10.3 乘法器设计 173
10.3.1 用乘法操作符实现 173
10.3.2 用布斯乘法器实现 174
10.3.3 查找表乘法器 177
10.4 有符号数的运算 182
10.4.1 有符号数的加法运算 182
10.4.2 有符号数的乘法运算 183
10.4.3 *值运算 184
10.5 ROM 185
10.5.1 用数组例化存储器 186
10.5.2 通过例化lpm_rom实现
存储器 188
10.6 RAM 189
10.6.1 单口RAM 190
10.6.2 异步FIFO缓存器 191
10.7 流水线设计 195
10.8 资源共享 199
练习 201
第 11章 Verilog有限状态机设计 202
11.1 引言 202
11.2 有限状态机的Verilog描述 203
11.2.1 三段式状态机描述 203
11.2.2 两段式状态机描述 205
11.2.3 单段式状态机描述 205
11.3 状态编码 207
11.3.1 常用的状态编码方式 207
11.3.2 状态编码的定义 208
11.3.3 用属性指定状态编码
方式 211
11.4 用有限状态机设计除法器 212
11.5 用有限状态机控制流水灯 215
11.6 用状态机控制字符液晶显示器 216
练习 223
第 12章 Verilog HDL驱动I/O外设 225
12.1 标准PS/2键盘 225
12.2 4×4矩阵键盘 230
12.3 汉字图形点阵液晶显示模块 234
12.3.1 LCD12864B汉字图形点阵
液晶显示模块 234
12.3.2 汉字图形点阵液晶静态
显示 235
12.3.3 汉字图形点阵液晶动态
显示 237
12.4 VGA显示器 238
12.4.1 VGA显示原理与时序 238
12.4.2 VGA彩条信号发生器 241
12.4.3 VGA图像显示 244
12.5 TFT液晶屏 248
12.5.1 TFT液晶屏 248
12.5.2 TFT液晶屏显示彩色
圆环 251
12.5.3 TFT液晶屏显示动态
矩形 255
12.6 音符、乐曲演奏 256
12.6.1 音符演奏 256
12.6.2 乐曲演奏 261
练习 265
第 13章 Verilog信号处理实例 267
13.1 *声波测距 267
13.2 整数开方运算 272
13.3 FIR滤波器 275
13.3.1 FIR滤波器的参数设计 276
13.3.2 FIR滤波器的FPGA
实现 280
13.4 Cordic算法及实现 283
13.4.1 Cordic算法 284
13.4.2 Cordic算法的Verilog
实现 286
练习 292
附录 Verilog HDL关键字 293
定价:79.8
ISBN:9787115635846
作者:王金明 王婧菡
版次:第2版
出版时间:2024-09
内容提要:
本书系统讲解Verilog HDL的语言规则、语法体系,以Verilog-2001和Verilog-2005两个语言标准为依据,知识点*、*。本书主要内容包括Verilog HDL入门、数据类型、表达式、门级和开关级建模、数据流建模、行为级建模、层次结构、任务与函数、Test Bench测试与时序检查、Verilog设计进阶、Verilog有限状态机设计、Verilog HDL驱动I/O外设、Verilog信号处理实例等。 本书可作为电工电子相关专业本科生和研究生的教学用书,也可供从事电路设计和系统开发的工程技术人员参考。
作者简介:
王金明,博士,解放军陆军工程大学教授、硕士生导师。曾获军队科技进步一等奖1项,军队科技进步二等奖3项,军队科技进步三等奖5项,获军队级教学成果二等奖1项;获国家发明专利授权2项,软件授权1项;发表论文80余篇,其中SCI、EI收录30余篇;主编教材多部,并入选“十一五”国家规划教材和“十二五”国家规划教材;2013年获军队院校育才奖银奖;2014年由国家留学基金委资助,在美国威斯康星大学麦迪逊分校访问研究1年;指导学生参加*大学生电子设计竞赛,获*一等奖、二等奖多项。
目录:
目 录
第 1章 Verilog HDL入门 1
1.1 Verilog HDL的发展简史 1
1.2 Verilog HDL描述的层级和方式 2
1.3 Verilog设计的目标器件 3
1.4 Verilog设计的流程 4
1.4.1 设计输入 4
1.4.2 综合 5
1.4.3 布局布线 5
1.4.4 时序分析 5
1.4.5 功能仿真与时序仿真 6
1.4.6 编程与配置 6
1.5 Verilog HDL的文字规则 6
1.5.1 词法 6
1.5.2 空白符 7
1.5.3 注释 7
1.5.4 操作符 7
1.5.5 字符串 7
1.5.6 关键字 9
1.6 数字 9
1.6.1 整数 9
1.6.2 实数 10
1.6.3 数的转换 11
1.7 标识符 11
练习 13
第 2章 数据类型 14
2.1 值集合 14
2.2 net数据类型 14
2.2.1 wire型与tri型 15
2.2.2 其他net类型 16
2.3 variable数据类型 17
2.3.1 reg型 17
2.3.2 integer型与time型 18
2.3.3 real型与realtime型 19
2.4 向量 19
2.5 数组 20
2.5.1 数组简介 20
2.5.2 存储器 20
2.5.3 数组的赋值 20
2.6 参数 21
2.6.1 parameter参数 21
2.6.2 localparam参数 23
2.6.3 specparam参数 24
2.6.4 参数值修改 24
练习 25
第3章 表达式 26
3.1 操作符 26
3.1.1 算术操作符 26
3.1.2 关系操作符 28
3.1.3 等式操作符 28
3.1.4 逻辑操作符 29
3.1.5 位操作符 29
3.1.6 缩减操作符 31
3.1.7 移位操作符 31
3.1.8 指数操作符 33
3.1.9 条件操作符 33
3.1.10 拼接操作符 33
3.1.11 操作符的优先级 34
3.2 操作数 35
3.2.1 整数 35
3.2.2 位选和段选 35
3.2.3 数组 37
3.2.4 字符串 38
3.3 表达式的符号 38
3.4 表达式的位宽 41
3.4.1 表达式位宽的规则 41
3.4.2 表达式位宽示例 41
3.5 赋值和截断 44
练习 45
第4章 门级和开关级建模 46
4.1 Verilog HDL门元件 46
4.2 门元件的例化 49
4.2.1 门元件的例化简介 49
4.2.2 门延时 50
4.2.3 驱动强度 52
4.3 开关级元件 54
4.3.1 MOS开关 54
4.3.2 双向导通开关 55
4.4 门级结构建模 56
4.5 用户自定义元件 57
4.6 组合逻辑UDP元件 58
4.7 时序逻辑UDP元件 59
4.7.1 电平敏感时序UDP元件 59
4.7.2 边沿敏感时序UDP元件 60
4.7.3 电平敏感和边沿敏感行为的
混合描述 60
4.8 时序UDP元件的初始化和例化 61
4.8.1 时序UDP元件的初始化 61
4.8.2 时序UDP元件的例化 62
练习 63
第5章 数据流建模 64
5.1 连续赋值 64
5.1.1 net型变量声明时赋值 65
5.1.2 赋值延时和线网延时 66
5.1.3 驱动强度 66
5.2 数据流建模 67
5.3 加法器和减法器 69
5.4 格雷码与二进制码的转换 73
5.5 三态逻辑设计 75
练习 77
第6章 行为级建模 78
6.1 行为级建模概述 78
6.1.1 always过程 79
6.1.2 initial过程 80
6.2 过程时序控制 81
6.2.1 延时控制 81
6.2.2 事件控制 81
6.3 过程赋值 83
6.3.1 variable型变量声明时赋值 84
6.3.2 阻塞过程赋值 84
6.3.3 非阻塞过程赋值 84
6.3.4 阻塞过程赋值与非阻塞过程
赋值的区别 85
6.4 过程连续赋值 87
6.4.1 assign和deassign 87
6.4.2 force和release 88
6.5 块语句 89
6.5.1 串行块begin-end 89
6.5.2 并行块fork-join 90
6.5.3 块命名 90
6.6 条件语句 92
6.6.1 if-else语句 92
6.6.2 case语句 94
6.6.3 casez与casex语句 97
6.7 循环语句 98
6.7.1 for语句 98
6.7.2 repeat、while和forever
语句 99
练习 101
第7章 层次结构 103
7.1 模块和模块例化 103
7.2 带参数模块例化与参数传递 105
7.2.1 带参数模块例化 105
7.2.2 用parameter进行参数
传递 106
7.2.3 用defparam进行参数
重载 108
7.3 层次路径名 109
7.4 generate生成语句 110
7.4.1 generate、for生成语句 110
7.4.2 generate、if生成语句 113
7.4.3 generate、case生成语句 113
7.5 属性 115
练习 117
第8章 任务与函数 118
8.1 任务 118
8.1.1 任务的定义和调用 118
8.1.2 任务示例 119
8.2 函数 122
8.2.1 函数简介 122
8.2.2 任务和函数的区别 125
8.3 automatic任务和函数 125
8.3.1 automatic任务 126
8.3.2 automatic函数 127
8.4 系统任务与系统函数 128
8.5 显示类任务 129
8.5.1 $display与$write 129
8.5.2 $strobe与$monitor 131
8.6 文件操作类任务 132
8.6.1 $fopen与$fclose 132
8.6.2 $fgetc与$fgets 133
8.6.3 $readmemh与$readmemb 135
8.7 控制和时间类任务 135
8.7.1 $finish与$stop 135
8.7.2 $time、$stime与$realtime 137
8.7.3 $printtimescale与
$timeformat 137
8.7.4 $signed与$unsigned 139
8.8 随机数及概率分布系统函数 140
8.8.1 $random 140
8.8.2 概率分布系统函数 141
8.9 编译指令 142
8.9.1 'timescale 143
8.9.2 'define和'undef 144
8.9.3 'ifdef、'else、'elsif、
'endif和'ifndef 145
8.9.4 'include 147
8.9.5 'default_nettype 147
8.9.6 其他编译指令 148
练习 149
第9章 Test Bench测试与时序检查 150
9.1 Test Bench测试 150
9.1.1 Test Bench 150
9.1.2 产生复位信号和激励
信号 151
9.1.3 产生时钟信号 152
9.1.4 读写文件 152
9.1.5 显示结果 154
9.2 测试示例 154
9.3 Verilog中的延时定义 158
9.3.1 specify块 158
9.3.2 模块路径 159
9.3.3 路径延时和分布延时
混合 161
9.4 时序检查 162
9.4.1 $setup和$hold 162
9.4.2 $width和$period 163
9.5 SDF文件 164
练习 165
第 10章 Verilog设计进阶 166
10.1 面向综合的设计 166
10.2 加法器设计 168
10.2.1 行波进位加法器 169
10.2.2 *前进位加法器 170
10.3 乘法器设计 173
10.3.1 用乘法操作符实现 173
10.3.2 用布斯乘法器实现 174
10.3.3 查找表乘法器 177
10.4 有符号数的运算 182
10.4.1 有符号数的加法运算 182
10.4.2 有符号数的乘法运算 183
10.4.3 *值运算 184
10.5 ROM 185
10.5.1 用数组例化存储器 186
10.5.2 通过例化lpm_rom实现
存储器 188
10.6 RAM 189
10.6.1 单口RAM 190
10.6.2 异步FIFO缓存器 191
10.7 流水线设计 195
10.8 资源共享 199
练习 201
第 11章 Verilog有限状态机设计 202
11.1 引言 202
11.2 有限状态机的Verilog描述 203
11.2.1 三段式状态机描述 203
11.2.2 两段式状态机描述 205
11.2.3 单段式状态机描述 205
11.3 状态编码 207
11.3.1 常用的状态编码方式 207
11.3.2 状态编码的定义 208
11.3.3 用属性指定状态编码
方式 211
11.4 用有限状态机设计除法器 212
11.5 用有限状态机控制流水灯 215
11.6 用状态机控制字符液晶显示器 216
练习 223
第 12章 Verilog HDL驱动I/O外设 225
12.1 标准PS/2键盘 225
12.2 4×4矩阵键盘 230
12.3 汉字图形点阵液晶显示模块 234
12.3.1 LCD12864B汉字图形点阵
液晶显示模块 234
12.3.2 汉字图形点阵液晶静态
显示 235
12.3.3 汉字图形点阵液晶动态
显示 237
12.4 VGA显示器 238
12.4.1 VGA显示原理与时序 238
12.4.2 VGA彩条信号发生器 241
12.4.3 VGA图像显示 244
12.5 TFT液晶屏 248
12.5.1 TFT液晶屏 248
12.5.2 TFT液晶屏显示彩色
圆环 251
12.5.3 TFT液晶屏显示动态
矩形 255
12.6 音符、乐曲演奏 256
12.6.1 音符演奏 256
12.6.2 乐曲演奏 261
练习 265
第 13章 Verilog信号处理实例 267
13.1 *声波测距 267
13.2 整数开方运算 272
13.3 FIR滤波器 275
13.3.1 FIR滤波器的参数设计 276
13.3.2 FIR滤波器的FPGA
实现 280
13.4 Cordic算法及实现 283
13.4.1 Cordic算法 284
13.4.2 Cordic算法的Verilog
实现 286
练习 292
附录 Verilog HDL关键字 293
- 人民邮电出版社有限公司 (微信公众号认证)
- 人民邮电出版社微店,为您提供最全面,最专业的一站式购书服务
- 扫描二维码,访问我们的微信店铺
- 随时随地的购物、客服咨询、查询订单和物流...