Xilinx大学合作计划指定教材——Verilog HDL 程序设计与实践
Xilinx大学合作计划指定教材——Verilog HDL 程序设计与实践
更新于2009-03-17 20:40:31

第1章  EDA设计与Verilog HDL语言概述    1
1.1  EDA设计概述    1
1.1.1  EDA技术简介    1
1.1.2  EDA与传统电子系统设计方法    2
1.1.3  可编程逻辑器件对EDA技术的要求    4
1.2  Verilog HDL语言简介    5
1.2.1  硬件描述语言说明    5
1.2.2  Verilog HDL语言的历史    6
1.2.3  Verilog HDL语言的能力    6
1.2.4  Verilog HDL和VHDL语言的比较    7
1.2.5  Verilog HDL和C语言的比较    8
1.3  Verilog HDL语言的描述层次说明    8
1.3.1  Verilog HDL语言描述能力综述    8
1.3.2  系统级和算法级建模    9
1.3.3  RTL级建模    9
1.3.4  门级和开关级建模    9
1.4  基于Verilog HDL语言的CPLD/FPGA开发流程    10
1.5  Verilog HDL语言的可综合与仿真特性    12
1.5.1  Verilog HDL语句的可综合性说明    12
1.5.2  Verilog HDL语句的仿真特性说明    13
1.6  本章小结    14
1.7  思考题    14

第2章  Verilog HDL基础与开发平台操作指南    15
2.1  Verilog HDL程序开发的必备知识    15
2.1.1  数字的表示形式    15
2.1.2  常用术语解释    17
2.1.3  Verilog HDL程序的优劣判断指标    18
2.2  Verilog HDL程序设计模式    19
2.2.1  自顶向下的设计模式    19
2.2.2  层次、模块化模式    20
2.2.3  IP核的重用    20
2.3  Xilinx Spartan 3E系列FPGA简介    21
2.3.1  Spartan 3E系列FPGA简介    21
2.3.2  Spartan 3E系列FPGA结构说明    22
2.4  ISE快速入门    25
2.4.1  ISE操作基础    25
2.4.2  新建工程    29
2.4.3  Verilog HDL代码的输入与功能仿真    30
2.4.4  Xilinx IP核的使用    34
2.4.5  用户约束输入    39
2.4.6  综合与实现    42
2.4.7  器件配置    44
2.5  ModelSim快速入门    50
2.5.1  ModelSim仿真软件的安装    51
2.5.2  在ModelSim中指定Xilinx的仿真库    53
2.5.3  ModelSim的基本操作    53
2.6  本章小结    55
2.7  思考题    56

第3章  Verilog HDL程序结构    57
3.1  程序模块说明    57
3.1.1  Verilog HDL模块的概念    57
3.1.2  模块的基本结构    57
3.1.3  端口说明    59
3.2  Verilog HDL的层次化设计    59
3.2.1  Verilog HDL层次化设计的表现形式    59
3.2.2  模块例化    59
3.2.3  参数映射    63
3.2.4  在ISE中通过图形化方式实现层次化设计    66
3.3  Verilog HDL语言的描述形式    68
3.3.1  结构描述形式    68
3.3.2  行为描述形式    75
3.3.3  混合设计模式    79
3.4  本章小结    79
3.5  思考题    79

第4章  Verilog HDL语言基本要素    81
4.1  标志符与注释    81
4.1.1  标志符    81
4.1.2  注释    82
4.2  数字与逻辑数值    82
4.2.1  逻辑数值    82
4.2.2  常量    82
4.2.3  参数    83
4.3  数据类型    83
4.3.1  数据类型综述    83
4.3.2  线网类型    84
4.3.3  寄存器类型    88
4.4  运算符和表达式    91
4.4.1  赋值运算符    91
4.4.2  算术运算符    93
4.4.3  逻辑运算符    96
4.4.4  关系运算符    97
4.4.5  条件运算符    99
4.4.6  位运算符    100
4.4.7  拼接运算符    101
4.4.8  移位运算符    102
4.4.9  一元约简运算符    103
4.5  本章小结    104
4.6  思考题    104

第5章  面向综合的行为描述语句    105
5.1  触发事件控制    105
5.1.1  信号电平事件语句    105
5.1.2  信号跳变沿事件语句    106
5.2  条件语句    107
5.2.1  if语句    107
5.2.2  case语句    108
5.2.3  条件语句的深入理解    112
5.3  循环语句    114
5.3.1  repeat语句    114
5.3.2  while语句    116
5.3.3  for语句    117
5.3.4  循环语句的深入理解    119
5.4  任务和函数    124
5.4.1  任务(task)语句    124
5.4.2  函数(function)语句    126
5.4.3  任务和函数的深入理解    128
5.5  本章小结    129
5.6  思考题    129

第6章  面向验证和仿真的行为描述语句    131
6.1  验证与仿真概述    131
6.1.1  代码验证与仿真概述    131
6.1.2  测试平台说明    132
6.1.3  验证测试方法论    134
6.1.4  Testbench结构说明    138
6.2  仿真程序执行原理    139
6.2.1  Verilog HDL语义简介    139
6.2.2  Verilog HDL仿真原理    139
6.3  延时控制语句    141
6.3.1  延时控制的语法说明    141
6.3.2  延时控制应用实例    142
6.4  常用的行为仿真描述语句    144
6.4.1  循环语句    145
6.4.2  force和release语句    146
6.4.3  wait语句    147
6.4.4  事件控制语句    148
6.4.5  task和function语句    149
6.4.6  串行激励与并行激励语句    150
6.5  用户自定义元件    151
6.5.1  UDP的定义与调用    151
6.5.2  UDP应用实例    152
6.6  仿真激励的产生    154
6.6.1  变量初始化    154
6.6.2  时钟信号的产生    158
6.6.3  复位信号的产生    159
6.6.4  数据信号的产生    160
6.6.5  典型测试平台实例    162
6.6.6  关于仿真效率的说明    162
6.7  Xilinx仿真工具ISE Simulator    163
6.7.1  基于波形测试法的仿真    163
6.7.2  基于Verilog HDL测试平台的仿真    165
6.8  Xilinx系统验证工具ChipScope Pro    170
6.8.1  ChipScope Pro工具简介    170
6.8.2  ChipScope Pro开发实例    171
6.9  本章小结    178
6.10  思考题    178

第7章  系统任务和编译预处理语句    179
7.1  系统任务语句    179
7.1.1  输出显示任务    179
7.1.2  文件输入输出任务    185
7.1.3  时间标度任务    190
7.1.4  仿真控制任务    191
7.1.5  仿真时间函数    192
7.1.6  数字类型变换函数    194
7.1.7  概率分布函数    194
7.2  编译预处理语句    196
7.2.1  宏定义'define语句    196
7.2.2  条件编译命令'if语句    198
7.2.3  文件包含'include语句    199
7.2.4  时间尺度'timescale语句    201
7.2.5  其他语句    203
7.3  本章小结    203
7.4  思考题    204

第8章  Verilog HDL可综合设计的难点解析    205
8.1  组合逻辑和时序逻辑    205
8.1.1  组合逻辑设计    205
8.1.2  时序逻辑设计    208
8.1.3  组合逻辑电路中的竞争与冒险    212
8.1.4  时序逻辑的时钟选择策略    216
8.2  同步时序电路和异步时序电路    219
8.2.1  同步时序电路设计    219
8.2.2  异步时序电路设计    223
8.2.3  异步电路和同步电路的比较    226
8.3  阻塞赋值与非阻塞赋值    227
8.3.1  阻塞赋值与非阻塞过程的深入理解    227
8.3.2  组合逻辑中的阻塞与非阻塞    228
8.3.3  时序逻辑中的阻塞与非阻塞    229
8.3.4  编码建议    232
8.4  双向端口    233
8.4.1  双向端口简介    233
8.4.2  双向端口应用实例    234
8.5  锁存器    237
8.5.1  锁存器本质说明    237
8.5.2  锁存器的产生原因和处理策略    237
8.5.3  锁存器的应用规则    239
8.6  消除不确定输入的电路设计    242
8.6.1  初始值不确定态的消除    242
8.6.2  逻辑运算不确定态的消除    242
8.7  面向硬件的设计思维    243
8.7.1  基本的硬件设计模式    243
8.7.2  程序执行顺序    244
8.7.3  时钟是时序电路的控制者    245
8.8  本章小结    247
8.9  思考题    248

第9章  高级逻辑设计思想与代码风格    249
9.1  通用指导原则    249
9.1.1  面积和速度的互换原则    249
9.1.2  模块划分原则    250
9.2  代码风格    250
9.2.1  代码风格的含义    251
9.2.2  通用的代码设计风格    251
9.2.3  通用的代码书写风格    252
9.2.4  Xilinx专用代码设计风格    255
9.3  常用的设计思想与代码设计风格    258
9.3.1  流水线技术原理和Verilog HDL实现    258
9.3.2  逻辑复用与逻辑复制原理和Verilog HDL实现    264
9.3.3  关键路径提取原理和Verilog HDL实现    268
9.3.4  逻辑合并与拆分原理和Verilog HDL实现    269
9.3.5  多时钟域接口设计技巧    270
9.4  本章小结    282
9.5  思考题    282

第10章  可综合状态机开发实例    283
10.1  状态机基本概念    283
10.1.1  状态机工作原理以及分类    283
10.1.2  状态机描述方式    284
10.1.3  状态机设计思想    286
10.2  可综合状态机设计原则    286
10.2.1  状态机开发流程    286
10.2.2  状态编码原则    287
10.2.3  状态机的容错处理    288
10.2.4  常用的设计准则    288
10.3  状态机的Verilog HDL实现    289
10.3.1  状态机实现综述    289
10.3.2  Moore状态机开发实例    293
10.3.3  Mealy状态机开发实例    295
10.4  Xilinx状态机设计工具StateCAD    298
10.4.1  StateCAD基础介绍    298
10.4.2  编辑状态机    299
10.4.3  状态机优化以及HDL代码生成    301
10.4.4  测试状态机    303
10.5  本章小结    305
10.6  思考题    305

第11章  常用逻辑的Verilog HDL实现    307
11.1  时钟处理电路的Verilog HDL实现    307
11.1.1  整数分频模块    307
11.1.2  非整数分频模块    310
11.1.3  同步整形电路    313
11.2  乘加运算的Verilog HDL实现    315
11.2.1  加法器的Verilog HDL实现    315
11.2.2  乘法器的Verilog HDL实现    318
11.2.3  数据的截位与扩位    324
11.3  数码管接口电路的Verilog HDL实现    325
11.3.1  数码管简介    325
11.3.2  数码管显示电路的Verilog HDL实现    326
11.4  按钮接口电路的Verilog HDL实现    328
11.4.1  按钮扫描电路的Verilog HDL实现    328
11.4.2  按钮防抖电路的Verilog HDL实现    332
11.5  CRC编码器的Verilog HDL实现    334
11.5.1  CRC校验码的原理    334
11.5.2  CRC 16编码器的Verilog HDL实现    335
11.6  片内存储器的Verilog HDL实现    337
11.6.1  RAM的Verilog HDL实现    337
11.6.2  移位寄存器的Verilog HDL实现    341
11.7  SPI接口协议的Verilog HDL实现    343
11.7.1  SPI通信协议    343
11.7.2  SPI协议的Verilog HDL实现    345
11.8  本章小结    349
11.9  思考题    349

第12章  Xilinx硬核模块的Verilog HDL调用    351
12.1  差分I/O对管脚的Verilog HDL调用    351
12.1.1  差分I/O对管脚结构说明    351
12.1.2  调用差分I/O的参考设计    354
12.2  DCM模块的Verilog HDL调用    356
12.2.1  DCM模块的说明    356
12.2.2  调用DCM模块的参考设计    359
12.3  硬核乘法器的Verilog HDL调用    362
12.3.1  硬核乘法器结构说明    362
12.3.2  基于IP核调用硬核乘法器    363
12.4  块RAM的Verilog HDL调用    365
12.4.1  块RAM结构说明    365
12.4.2  基于IP核调用块RAM单元    368
12.5  本章小结    374
12.6  思考题    374

第13章  串口接口的Verilog HDL设计    375
13.1  串口以及串口通信协议简介    375
13.1.1  串口接口    375
13.1.2  RS-232通信协议    375
13.2  串口通信控制器的Verilog HDL实现    377
13.2.1  系统功能说明    377
13.2.2  顶层模块的组成结构和Verilog HDL实现    377
13.2.3  波特率发生器模块的Verilog HDL实现    380
13.2.4  发送模块的Verilog HDL实现    381
13.2.5  接收模块的Verilog HDL实现    386
13.3  RS-232设计板级调试    390
13.3.1  板级调试说明    390
13.3.2  配置超级终端    391
13.3.3  添加ChipScope Pro核    392
13.3.4  系统调试结果    396
13.4  本章小结    398
13.5  思考题    398

参考文献    399

网友留言