Verilog HDL程序设计教程(第2版)

978-7-115-63584-6
作者: 王金明王婧菡
译者:
编辑: 张涛

图书目录:

第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

详情

本书系统讲解Verilog HDL的语言规则、语法体系,以Verilog-2001和Verilog-2005两个语言标准为依据,知识点全面、准确。本书主要内容包括Verilog HDL入门、数据类型、表达式、门级和开关级建模、数据流建模、行为级建模、层次结构、任务与函数、Test Bench测试与时序检查、Verilog设计进阶、Verilog有限状态机设计、Verilog HDL驱动I/O外设、Verilog信号处理实例等。 本书可作为电工电子相关专业本科生和研究生的教学用书,也可供从事电路设计和系统开发的工程技术人员参考。

图书摘要

相关图书

推荐系统:产品与算法解析
推荐系统:产品与算法解析
深入理解Prometheus监控系统
深入理解Prometheus监控系统
流式系统
流式系统
程序员的制胜技
程序员的制胜技
面向电子鼻的复合光气体传感方法
面向电子鼻的复合光气体传感方法
程序设计竞赛专题挑战教程
程序设计竞赛专题挑战教程

相关文章

相关课程