书籍 普通高校“十三五”规划教材  CPLD/FPGA设计与应用基础教程  从VerilogHDL到SystemVerilog的封面

普通高校“十三五”规划教材 CPLD/FPGA设计与应用基础教程 从VerilogHDL到SystemVerilogPDF电子书下载

(中国)郭利文,邓月明

购买点数

14

出版社

北京航空航天大学出版社

出版时间

2019

ISBN

标注页数

403 页

PDF页数

418 页

图书目录

第1章 概述 1

1.1 CPLD/FPGA发展演变 1

1.2 乘积项结构的基本原理 3

1.3 查找表结构的基本原理 5

1.4 Virtex UltraScale+系列FPGA简介 7

1.5 CPLD/FPGA设计与验证流程 8

1.5.1 系统级功能定义与模块划分 8

1.5.2 寄存器传输级与门级描述 9

1.5.3 系统综合编译 10

1.5.4 布局规划与布线 11

1.5.5 仿真 11

1.5.6 程序设计下载配置 12

1.5.7 测试与验证 15

1.6 CPLD/FPGA开发平台简介 16

1.7 硬件描述语言的介绍 16

1.8 硬件语言与软件语言的区别 20

本章小结 20

思考与练习 21

第2章 Verilog HDL入门指南 22

2.1 模块 22

2.2 模块端口及声明 24

2.3 注释 25

2.4 数据流描述 26

2.4.1 连续赋值语句 27

2.4.2 时延 29

2.5 行为级描述 31

2.5.1 initial语句 31

2.5.2 always语句 32

2.5.3 时序控制 36

2.6 结构化描述 39

2.6.1 门级建模及描述 39

2.6.2 用户定义原语(UDP) 42

2.6.3 模块例化 46

2.7 混合描述 49

本章小结 51

思考与练习 52

第3章 Verilog HDL语法要素 53

3.1 标识符 53

3.2 数值集合 54

3.2.1 数字 54

3.2.2 字符串 56

3.2.3 参数 56

3.3 数据类型 56

3.3.1 线网类型 57

3.3.2 变量类型 60

3.4 数组 63

3.5 内建门级原语 64

3.6 操作数 66

3.6.1 常数、参数、线网与变量 66

3.6.2 位选择及部分位选 67

3.6.3 存储单元 68

3.6.4 功能调用 68

3.7 操作符 68

3.7.1 算术操作符 70

3.7.2 关系操作符 71

3.7.3 相等操作符 71

3.7.4 逻辑操作符 72

3.7.5 按位操作符 72

3.7.6 缩减操作符 73

3.7.7 移位操作符 74

3.7.8 条件操作符 75

3.7.9 拼接复制操作符 76

3.8 编译指令 76

3.9 实例:带可预置数据的8位自增/减计数器设计 79

本章小结 80

思考与练习 80

第4章 Verilog HDL语法进阶描述 82

4.1 语句块 82

4.1.1 顺序语句块 82

4.1.2 并行语句块 83

4.2 过程赋值语句 85

4.2.1 阻塞赋值语句 85

4.2.2 非阻塞赋值语句 88

4.2.3 过程赋值语句的使用原则 90

4.3 过程性连续赋值语句 91

4.4 高级程序设计语句 93

4.4.1 条件语句 93

4.4.2 case语句 97

4.4.3 循环语句 101

4.4.4 generate语句 105

4.5 参数化设计 111

4.6 实例:基于 SFF8485规格的SGPIO协议的Verilog HDL实现 116

4.6.1 SGPIO协议简介 116

4.6.2 SGPIO协议接收者的Verilog HDL代码设计 118

本章小结 129

思考与练习 129

第5章 任务及函数 130

5.1 任务 130

5.1.1 任务声明 130

5.1.2 任务调用 131

5.2 函数 132

5.2.1 函数声明 132

5.2.2 函数调用 133

5.3 系统任务和系统函数 133

5.3.1 显示任务 134

5.3.2 仿真控制任务 135

5.3.3 文件输入输出任务 135

5.3.4 变换函数 138

5.3.5 概率分布函数 138

5.3.6 仿真时间函数 139

5.4 命名事件 139

5.5 层次路径名 140

5.6 共享任务和函数 141

5.7 实例:带可预置数据的8位自增/减计数器设计 143

本章小结 146

思考与练习 146

第6章 SystemVerilog基础语法 147

6.1 基本数据类型 147

6.1.1 logic类型 148

6.1.2 2值数据类型 149

6.1.3 枚举类型 150

6.1.4 typedef 155

6.1.5 结构体和共同体 157

6.2 数组 161

6.2.1 多维数组 161

6.2.2 动态数组 162

6.2.3 关联数组 164

6.2.4 队列 166

6.2.5 数组的基本操作方法 168

6.2.6 字符串 170

6.3 过程语句 172

6.3.1 always_comb语句和assign语句 172

6.3.2 always_latch语句 174

6.3.3 always_ff语句 175

6.3.4 final语句 176

6.4 unique和priority 176

6.4.1 unique 176

6.4.2 priority 178

6.5 循环语句 180

6.5.1 while循环 180

6.5.2 do…while循环 181

6.5.3 foreach循环 182

6.5.4 continue和break 183

6.6 模块例化 184

6.7 实例:采用System Verilog实现汉明码的编码设计 187

本章小结 189

思考与练习 189

第7章 有限状态机设计 191

7.1 有限状态机的基本概念 191

7.1.1 Mearly 型状态机 193

7.1.2 Moore型状态机 194

7.2 有限状态机的算法描述 194

7.3 有限状态机描述的基本语法 195

7.4 状态初始化 198

7.5 状态编码 202

7.5.1 二进制码(Binary码) 203

7.5.2 格雷码(Gray码) 203

7.5.3 独热码(one-hot码)和独冷码(one-cold码) 205

7.5.4 状态编码原则和编译指导 205

7.6 Full Case与Parallel Case 206

7.7 状态机的描述 210

7.7.1 一段式状态机 211

7.7.2 两段式状态机 213

7.7.3 三段式状态机 219

7.7.4 小结 221

7.8 实例:交通信号灯控制系统的SystemVerilog程序设计 222

本章小结 229

思考与练习 229

第8章 同步数字电路与时序分析 231

8.1 同步数字电路的基本概念 231

8.1.1 同步数字电路 231

8.1.2 时钟域 233

8.2 D触发器的工作原理 234

8.3 亚稳态的产生原理及同步寄存器 236

8.4 同步数字系统的时序约束 244

8.5 时钟 246

8.5.1 时钟偏斜与抖动 246

8.5.2 F max 249

8.6 IO时序分析 249

8.6.1 输入时序分析 250

8.6.2 输出时序分析 251

8.7 时序例外 252

8.7.1 False Path 253

8.7.2 MultiC ycle Path 253

8.8 PLL 256

8.9 时序优化 257

8.10 实例:采用SystemVerilog实现对开关信号的消抖设计 259

本章小结 265

思考与练习 265

第9章 硬件线程与接口 267

9.1 硬件线程的基本概念 267

9.1.1 数据路径 268

9.1.2 硬件线程的算法描述 271

9.2 硬件线程的连接 272

9.3 硬件线程的同步 273

9.4 实例:基于串并转换的硬件线程连接实现 276

9.4.1 Master_Interface硬件线程介绍 278

9.4.2 Slave_Interface硬件线程介绍 280

9.4.3 代码实现 281

9.5 异步硬件线程的连接 289

9.6 接口 292

9.6.1 接口声明和例化 293

9.6.2 modport 294

9.7 实例:采用接口实现SGPIO的数据传送 294

9.7.1 SGPIO简介 294

9.7.2 SGPIO程序设计 296

本章小结 301

思考与练习 302

第10章 SystemVerilog仿真基础 303

10.1 仿真简介 303

10.1.1 仿真入门 303

10.1.2 仿真器原理 306

10.1.3 测试平台 308

10.2 program 310

10.3 面向对象编程与类 312

10.3.1 面向对象编程简介 312

10.3.2 类简介 313

10.3.3 静态变量与静态方法 316

10.3.4 this 317

10.3.5 类的内嵌 318

10.3.6 对象的基本操作 318

10.3.7 类的继承与多态 322

10.4 随机化 326

10.4.1 随机化基础 326

10.4.2 randcase 330

10.4.3 randsequence 330

10.4.4 随机约束基础 332

10.4.5 权重分布 334

10.4.6 约束操作符 335

10.5 并行线程 341

10.5.1 wait 345

10.5.2 Disable 346

10.5.3 mailbox 347

10.5.4 命名事件 350

10.5.5 semaphore 353

10.6 实例:简单的多口路由仿真程序设计 355

本章小结 361

思考与练习 361

第11章 断言与功能覆盖 362

11.1 断言 362

11.1.1 立即断言 363

11.1.2 时序操作符 365

11.1.3 序列 367

11.1.4 属性 368

11.1.5 并行断言 369

11.1.6 重复操作符 371

11.1.7 逻辑操作符 374

11.1.8 条件操作符 376

11.1.9 断言系统函数 377

11.2 覆盖率介绍 379

11.2.1 代码覆盖率 380

11.2.2 断言覆盖率 381

11.2.3 功能覆盖率 381

11.3 功能覆盖 382

11.3.1 覆盖点与覆盖组 382

11.3.2 交叉覆盖 384

11.3.3 仓 385

11.3.4 翻转覆盖 388

11.3.5 覆盖选项 390

11.3.6 采样函数 393

11.3.7 覆盖率数据分析 394

11.4 实例:对有限状态机进行功能覆盖设计 395

本章小结 399

思考与练习 399

参考文献 401

查看更多关于的内容

本类热门
在线购买PDF电子书
下载此书RAR压缩包