当前位置:首页 > 工业技术
精通Verilog HDL语言编程
精通Verilog HDL语言编程

精通Verilog HDL语言编程PDF电子书下载

工业技术

  • 电子书积分:16 积分如何计算积分?
  • 作 者:刘波编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2007
  • ISBN:7121041278
  • 页数:543 页
图书介绍:本书是Verilog HDL语言编程设计的优秀实践指导书。全书通过基础知识和大量实例结合的形式,详细介绍了Verilog HDL语言程序设计的基础、Verilog语言的综合内幕、常用EDA工具的使用、CPLD/FPGA设计的指导原则,以及大量的工程应用实例。全书共分为五篇23章:第一篇为Verilog HDL语言设计基础篇;第二篇为Verilog HDL语言综合原理篇;第三篇为常用EDA开发工具篇;第四篇为设计经验与技巧篇;第五篇是Verilog HDL实例应用篇。内容从零开始,由浅入深,循序渐进,符合读者学习过程。集基础知识、设计经验与技巧、综合应用实例于一体,是读者学习Verilog HDL语言编程的最佳参考资料。本书适合电子、计算机、自动控制等专业的大学学生阅读,同时也适合广大从事数字系统设计的科研人员使用。
《精通Verilog HDL语言编程》目录

第一篇 Verilog HDL语言设计基础篇 2

第1章 Verilog HDL语言设计入门 2

1.1 HDL发展概述 2

1.2 与VHDL和C语言的比较 3

1.3 Verilog HDL语言开发流程 9

1.3.1 Verilog HDL语言开发流程图介绍 9

1.3.2 常用EDA开发工具介绍 10

1.4 Verilog HDL程序的基本结构 14

1.4.1 模块 14

1.4.2 模块调用 23

第2章 Verilog HDL语言要素与表达式 25

2.1 程序格式 25

2.2 注释 25

2.3 间隔符 25

2.4 数值 26

2.5 字符串 28

2.6 标识符 29

2.7 系统任务和函数 31

2.8 编译指令 36

2.9 数据类型 45

2.9.1 线网(Net)和变量(Variable) 45

2.9.2 标量(Scalar)与矢量(Vector) 47

2.9.3 线网(Net)数据类型 49

2.9.4 变量(Variable)数据类型 54

2.9.5 数组(Array)类型 55

2.9.6 参数 57

2.9.7 名字空间 60

2.10 表达式 61

2.10.1 操作符 62

2.10.2 操作数 73

2.10.3 延迟表达式 76

2.10.4 表达式的位宽 77

2.10.5 有符号表达式 80

第3章 行为级建模 82

3.1 行为级建模的结构 82

3.1.1 过程块结构 84

3.1.2 initial过程块 85

3.1.3 always过程块 87

3.2 语句块 90

3.2.1 顺序语句块(begin-end) 90

3.2.2 并行语句块(fork-join) 92

3.2.3 顺序块和并行块的混合使用 93

3.3 时间控制 96

3.3.1 延时控制 97

3.3.2 边沿触发事件控制 98

3.3.3 电平敏感事件控制(wait语句) 104

3.4 赋值语句 106

3.4.1 过程赋值语句 107

3.4.2 阻塞型赋值语句和非阻塞型赋值语句 111

3.4.3 连续赋值语句和过程连续赋值语句 117

3.5 分支语句 127

3.5.1 if-else条件分支语句 128

3.5.2 case分支控制语句 132

3.6 循环控制语句 137

3.6.1 forever循环语句 137

3.6.2 repeat循环语句 138

3.6.3 while循环语句 140

3.6.4 for循环语句 141

3.7 任务(task)和函数(function) 143

3.7.1 任务(task) 143

3.7.2 函数(function) 147

第4章 结构级建模 153

4.1 模块级建模 154

4.1.1 模块的定义 154

4.1.2 模块的端口 155

4.1.3 模块的调用 158

4.1.4 在模块调用时对参数值的更改 164

4.2 门级建模 167

4.2.1 内置基本门级元件 168

4.2.2 用户自定义基本元件(UDP) 180

第5章 时序状态机的设计入门与提高 190

5.1 有限状态机(FSM)的分类 190

5.1.1 米利(Mealy)机 191

5.1.2 摩尔(Moore)机 191

5.2 有限状态机常用的描述、开发方法 191

5.3 基于状态转移图(STG)的设计 192

5.3.1 设计要点 192

5.3.2 建模实例 193

5.4 基于算法状态机(ASM)图的设计 199

5.4.1 算法状态机图 199

5.4.2 算法状态机和数据通道图 200

第二篇 Verilog HDL语言综合原理篇 206

第6章 综合的基本知识 206

6.1 综合的概念 206

6.2 数值集合与数据类型 208

6.3 储值单元的综合原则 209

第7章 Verilog HDL语句的综合 211

7.1 连续赋值(Continuous Assignment)语句的综合 211

7.2 过程赋值(Procedural Assignment)语句的综合 212

7.2.1 阻塞赋值语句 212

7.2.1 非阻塞赋值语句 213

7.3 逻辑运算符的综合 214

7.4 算术运算符的综合 215

7.4.1 无符号运算 215

7.4.2 有符号运算 215

7.4.3 进位与位宽 216

7.5 关系运算符(relational operator)的综合 216

7.6 移位(shift)运算符综合 218

7.7 位选择(bit-selects)综合 219

7.8 条件表达式的综合 220

7.9 always语句的综合 221

7.10 if语句的综合 224

7.11 case语句的综合 225

7.11.1 从case语句综合出锁存器 226

7.11.2 casez和casex语句的综合 230

7.11.3 并行的case语句 232

7.11.4 条件表达式使用常量的case语句 234

7.12 关于锁存器的综合 235

7.13 循环语句的综合 239

7.13.1 静态循环的综合 239

7.13.2 非静态循环的综合 241

7.14 触发器的建模 242

7.14.1 反相时钟 243

7.14.2 异步复位、置位 244

7.14.3 同步置位、复位 246

7.15 阻塞和非阻塞赋值的深入讨论 247

7.16 函数的综合 250

7.17 任务的综合 251

7.18 值x(任意值)、z(高阻)的综合 252

第8章 常用模块的建模实例 256

8.1 组合逻辑的建模 256

8.2 时序逻辑的建模 258

8.3 计数器建模 259

8.3.1 二进制计数器 259

8.3.2 Gray码计数器 260

8.3.3 Johnson计数器 262

8.4 多路开关建模 263

8.5 译码器建模 264

8.6 移位寄存器建模 266

8.6.1 通用移位寄存器 266

8.6.2 桶形移位寄存器 267

8.7 存储器建模 268

8.8 ALU单元建模 269

8.9 加法器建模 271

第9章 建模优化 273

9.1 资源共享 273

9.2 公共子表达式 276

9.3 代码调整 277

9.4 公因子 278

9.5 触发器和锁存器的优化 280

9.6 代码大小 282

9.7 算术表达式树高度优化 282

9.8 运算符强度缩减 284

第10章 设计验证 286

10.1 后综合设计验证 287

10.1.1 基于仿真的验证 287

10.1.2 形式化验证 287

10.2 面向验证的编码风格 288

10.2.1 功能正确性 288

10.2.2 时序正确性 291

10.3 定时验证 292

10.4 时序分析基础 293

10.4.1 周期与最大时钟频率 293

10.4.2 时钟建立时间 294

10.4.3 时钟保持时间 294

10.4.4 时钟输出延时 295

10.4.5 引脚到引脚延时 295

10.5 定时验证的系统任务 295

第三篇 常用EDA开发工具篇 298

第11章 Quartus Ⅱ使用指南 298

11.1 Quartus Ⅱ简介 298

11.2 Quartus Ⅱ设计流程 299

11.3 Quartus Ⅱ设计方法 303

11.3.1 自上而下与自下而上的设计方法比较 303

11.3.2 自上而下渐进式编译设计流程 303

11.3.3 自下而上的渐进式编译流程 304

11.4 Quartus Ⅱ各功能详解 304

11.4.1 使用模块编辑器 304

11.4.2 项目设置 305

11.4.3 时序分析报告 307

11.4.4 仿真 308

11.4.5 下载 310

11.5 时序约束与分析 313

11.5.1 时序约束与分析基础 313

11.5.2 设置时序约束的方法 314

11.5.3 最小化时序分析 319

11.6 设计优化 320

11.6.1 优化流程 320

11.6.2 使用DSE 321

11.6.3 设计优化的初次编译 323

11.6.4 资源利用优化 325

11.6.5 I/O时序优化 327

11.6.6 最高时钟频率优化 328

11.7 SignalTap Ⅱ 329

11.7.1 设计中创建SignalTap Ⅱ 329

11.7.2 通过SignalTap Ⅱ察看数据 331

11.7.3 SignalTap Ⅱ的高级配置 332

第12章 ISE开发工具 334

12.1 ISE系统简介 334

12.2 ISE设计快速入门 335

12.2.1 ISE的安装 335

12.2.2 ISE应用入门 340

12.2.3 ISE的一般设计流程 343

12.3 工程管理与设计输入 348

12.3.1 ISE工程管理器 348

12.3.2 HDL语言的输入工具——HDL Editor 348

12.3.3 原理图输入工具——ECS 349

12.3.4 IP核生成工具——CORE Generator 350

12.3.5 测试激励生成器——HDL Bencher 353

12.4 ISE中综合工具介绍 355

12.4.1 Synplify/Synplify Pro综合工具 356

12.4.2 Synopsys综合工具 364

12.4.3 Xilinx内嵌的综合工具——XST 365

12.4.4 全局时钟与第二全局时钟资源 370

12.5 约束设置 371

12.5.1 时序约束 372

12.5.2 分组约束 372

12.5.3 约束编辑器 373

12.5.4 引脚与区域约束编辑器 375

12.5.5 约束文件 377

12.6 设计进阶 378

12.6.1 时序分析 378

12.6.2 布局规划 378

12.6.3 FPGA底层编辑 380

第13章 ModelSim开发工具 381

13.1 ModelSim简介 381

13.2 基本仿真步骤 381

13.2.1 建立ModelSim库 381

13.2.2 编译源代码 383

13.2.3 启动仿真器 384

13.2.4 执行仿真 384

13.3 ModelSim各界面介绍 385

13.3.1 Main窗口 385

13.3.2 Structure窗口 386

13.3.3 Source窗口 386

13.3.4 Signals窗口 387

13.3.5 Process窗口 387

13.3.6 Variables窗口 388

13.3.7 Dataflow窗口 389

13.3.8 Wave窗口 389

13.3.9 List窗口 390

13.4 ModelSim调试功能 390

13.4.1 监视信号 390

13.4.2 使用断点 393

第四篇 设计经验与技巧篇 396

第14章 优秀设计的经验与技巧指导 396

14.1 Verilog HDL语言的编码风格(Coding Style) 396

14.1.1命名习惯(Naming Conventions) 396

14.1.2 注释(comment) 397

14.1.3 代码风格 398

14.1.4 模块分割与复用 398

14.1.5 时钟与同步问题 404

14.1.6 通用编码技巧 406

14.1.7 面向综合的编程风格 406

14.2 同步复位与异步复位 410

14.2.1 触发器建模的通用原则 410

14.2.2 同步复位 412

14.2.3 异步复位 414

14.2.4 异步复位问题 415

14.2.5 复位同步电路 416

14.2.6 复位分配树 417

14.2.7 复位毛刺过滤 420

14.2.8 多时钟复位讨论 421

14.2.9 总结 422

14.3 设计异步多时钟系统的综合及描述技巧 422

14.3.1 亚稳态 422

14.3.2 多时钟系统同步 423

14.3.3 静态定时分析 424

14.3.4 时钟命名习惯 425

14.3.5 设计分割 425

14.3.6 综合脚本与时序分析 425

14.3.7 高速时钟信号到低速时钟域的同步 426

14.3.8 多控制信号的传递 427

14.3.9 数据通道同步 431

第五篇 Verilog HDL实例应用篇 434

第15章 各种加法器(减法器)设计 434

15.1 行波进位(Ripple-Carry)加法器 434

15.2 进位链(Carry-Chain)加法器 435

15.3 跳跃进位(Carry-Skip)加法器 438

第16章 常用乘法器设计 441

16.1 基本乘法器 441

16.2 时序乘法器 443

16.3 阵列乘法器 445

16.3.1 行波进位乘法器 445

16.3.2 进位存储乘法器 448

第17章 伽罗华域GF(q)乘法器设计 451

17.1 应用背景 451

17.2 理论算法 452

17.2.1 有限域元素的弱对偶基表示 452

17.2.2 有限域元素的乘法 453

17.2.3 最优弱对偶基 453

17.3 基于弱对偶基的有限域比特并行乘法器建模 454

17.3.1 多项式基到弱对偶基坐标变换 455

17.3.2 弱对偶基系数扩展 456

17.3.3 乘法模块 456

17.3.4 弱对偶基到多项式基坐标变换 457

17.4 弱对偶基有限域乘法器程序说明 458

第18章 常用除法器设计 461

18.1 二进制恢复除法器 461

18.2 时序除法器设计 464

第19章 积分梳状滤波器(CIC)设计 468

19.1 应用背景 468

19.2 理论算法 469

19.3 三级CIC抽取滤波器建模 471

19.4 程序说明 473

第20章 CORDIC数字计算机的设计 476

20.1 应用背景 476

20.2 理论算法 477

20.2.1 计算正弦和余弦值 481

20.2.2 极坐标到直角坐标的变换 481

20.2.3 反正切函数与向量的模 482

20.2.4 笛卡儿坐标到极坐标的变换 482

20.2.5 反正弦和反余弦函数 482

20.2.6 线性函数 483

20.2.7 双曲线函数 484

20.3 用CORDIC计算正、余弦值实例建模 487

20.4 程序说明 489

第21章 伪随机序列应用设计 492

21.1 应用背景 492

21.2 理论知识 493

21.2.1 伪随机信号特性 493

21.2.2 线性反馈移位寄存器 495

21.3 PN序列应用实例 495

21.4 程序说明 496

第22章 异步FIFO设计 499

22.1 FIFO“空”/“满”检测 499

22.1.1 Gray码计数器 499

22.1.2 FIFO“空”/“满”状态 500

22.2 FIFO模块结构 501

22.3 FIFO源代码说明 502

22.3.1 顶层模块 502

22.3.2 双端口RAM模块 503

22.3.3 异步比较器模块 504

22.3.4 读指针与“空”逻辑模块 505

22.3.5 写指针与“满”逻辑模块 505

22.4 异步FIFO的相关问题 506

22.4.1 FIFO的复位 506

22.4.2 FIFO关键时序路径 506

第23章 RS(204,188)译码器的设计 508

23.1 应用背景 508

23.2 理论算法 509

23.2.1 Reed-Solomon码基本概念 510

23.2.2 RS译码与关键方程 511

23.2.3 BM及其改进算法求解关键方程 513

23.2.4 Chien搜索和Forney算法 515

23.3 RS(204,188)译码器建模 516

23.3.1 伴随式计算模块 516

23.3.2 改进的BM算法模块 517

23.3.3 Chien搜索模块 518

23.3.4 Forney算法模块 518

23.4 程序说明 521

附录A Verilog关键字 533

附录B Verilog运算符 535

附录C Verilog系统任务与函数 540

相关图书
作者其它书籍
返回顶部