数字系统设计与Verilog HDL(Vivado版)

数字系统设计与Verilog HDL(Vivado版)
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2020-03
版次: 1
ISBN: 9787121384998
定价: 59.00
装帧: 其他
开本: 16开
纸张: 胶版纸
页数: 368页
字数: 589千字
40人买过
  • 本书根据EDA课程教学要求,以提高数字系统设计能力为目标,系统阐述FPGA数字开发的相关知识,主要内容包括EDA技术概述、FPGA/CPLD器件结构、Verilog硬件描述语言及设计案例等。全书以Vivado、ModelSim软件为工具,以Verilog-1995和Verilog-2001语言标准为依据,以可综合的设计为重点,通过诸多精选设计案例,系统阐述数字系统设计方法与思想,由浅入深地介绍Verilog工程开发的手段与技能。 王金明,男,1972年5月出生,博士,现为解放军陆军工程大学副教授、硕士生导师。曾获军队科技进步一等奖1项,军队科技进步二等奖3项,军队科技进步三等奖5项,获军队级教学成果二等奖1项;获国家发明专利授权2项,获软件著作授权1项;发表论文80余篇,其中SCI、EI收录30余篇;主编教材多部,并入选"十一五”国家级规划教材和"十二五”国家级规划教材;2013年获军队院校育才奖银奖;2014年由国家留学基金委资助,在美国威斯康星大学麦迪逊分校访问研究1年;指导本科生参加全国大学生电子设计竞赛,共获得全国一等奖8项。 第1章 EDA技术概述 1 

    1.1 EDA技术及其发展 1 

    1.2 Top-down设计与IP核复用 4 

    1.2.1 Top-down设计 4 

    1.2.2 Bottom-up设计 4 

    1.2.3 IP复用技术与SoC 5 

    1.3 数字设计的流程 6 

    1.3.1 设计输入 7 

    1.3.2 综合 7 

    1.3.3 布局布线 8 

    1.3.4 仿真 8 

    1.3.5 编程配置 9 

    1.4 常用的EDA工具软件 9 

    1.5 EDA技术的发展趋势 12 

    习题1 13 

    第2章 FPGA/CPLD器件 14 

    2.1 PLD器件概述 14 

    2.1.1 PLD器件的发展历程 14 

    2.1.2 PLD器件的分类 15 

    2.2 PLD的基本原理与结构 17 

    2.2.1 PLD器件的基本结构 17 

    2.2.2 PLD电路的表示方法 18 

    2.3 低密度PLD的原理与结构 19 

    2.4 CPLD的原理与结构 23 

    2.4.1 宏单元结构 23 

    2.4.2 CPLD的结构 24 

    2.5 FPGA的原理与结构 26 

    2.5.1 查找表结构 26 

    2.5.2 FPGA的结构 29 

    2.6 FPGA/CPLD的编程元件 34 

    2.7 边界扫描测试技术 37 

    2.8 FPGA/CPLD的编程与配置 39 

    2.8.1 在系统可编程 39 

    2.8.2 Artix-7器件的配置 40 

    2.9 Xilinx的FPGA器件 42 

    2.10 FPGA/CPLD的发展趋势 43 

    习题2 44 

    第3章 Vivado使用指南 45 

    3.1 Vivado流水灯设计 45 

    3.1.1 流水灯设计输入 45 

    3.1.2 行为仿真 52 

    3.1.3 综合与引脚的约束 55 

    3.1.4 生成比特流文件并下载 58 

    3.1.5 将配置数据烧写至Flash中 59 

    3.2 IP核的创建和封装 62 

    3.3 基于IP集成的计数器设计 70 

    3.4 Vivado的综合策略与优化设置 79 

    习题3 85 

    第4章 Verilog设计初步 86 

    4.1 Verilog的历史 86 

    4.2 Verilog模块的结构 87 

    4.3 Verilog基本组合电路设计 90 

    4.3.1 用Verilog设计表决电路 90 

    4.3.2 用Verilog设计加法器 91 

    4.4 Verilog基本时序电路设计 93 

    4.4.1 用Verilog设计触发器 93 

    4.4.2 用Verilog设计计数器 94 

    习题4 96 

    第5章 Verilog语言要素 97 

    5.1 概述 97 

    5.2 常量 98 

    5.2.1 整数(Integer) 98 

    5.2.2 实数(Real) 100 

    5.2.3 字符串(String) 100 

    5.3 数据类型 101 

    5.3.1 net型 102 

    5.3.2 variable型 103 

    5.4 参数 104 

    5.4.1 参数parameter 104 

    5.4.2 Verilog-2001中的参数声明 105 

    5.4.3 参数的传递 106 

    5.4.4 localparam 106 

    5.5 向量 107 

    5.6 运算符 109 

    习题5 113 

    第6章 Verilog语句语法 115 

    6.1 过程语句 115 

    6.1.1 always过程语句 116 

    6.1.2 initial过程语句 119 

    6.2 块语句 120 

    6.2.1 串行块begin-end 120 

    6.2.2 并行块fork-join 121 

    6.3 赋值语句 122 

    6.3.1 持续赋值与过程赋值 122 

    6.3.2 阻塞赋值与非阻塞赋值 123 

    6.4 条件语句 125 

    6.4.1 if-else语句 125 

    6.4.2 case语句 126 

    6.5 循环语句 130 

    6.5.1 for语句 131 

    6.5.2 repeat、while、forever语句 132 

    6.6 编译指示语句 133 

    6.7 任务与函数 135 

    6.7.1 任务(task) 135 

    6.7.2 函数(function) 137 

    6.8 顺序执行与并发执行 140 

    6.9 Verilog-2001语言标准 142 

    6.9.1 Verilog-2001改进和增强的语法结构 142 

    6.9.2 属性及PLI接口 150 

    习题6 153 

    第7章 Verilog设计的层次与风格 154 

    7.1 Verilog设计的层次 154 

    7.2 门级结构描述 154 

    7.2.1 Verilog门元件 155 

    7.2.2 门级结构描述 157 

    7.3 行为描述 158 

    7.4 数据流描述 159 

    7.5 不同描述风格的设计 160 

    7.5.1 半加器设计 160 

    7.5.2 1位全加器设计 161 

    7.5.3 加法器的级联 163 

    7.6 多层次结构电路的设计 164 

    7.6.1 模块例化 164 

    7.6.2 用parameter进行参数传递 165 

    7.6.3 用defparam进行参数重载 166 

    7.7 基本组合电路设计 167 

    7.8 基本时序电路设计 171 

    7.9 三态逻辑设计 174 

    习题7 176 

    第8章 Verilog有限状态机设计 177 

    8.1 有限状态机 177 

    8.2 有限状态机的Verilog描述 179 

    8.2.1 用三个always块描述 180 

    8.2.2 用两个过程描述 181 

    8.2.3 单过程描述方式 182 

    8.3 状态编码 183 

    8.3.1 常用的编码方式 183 

    8.3.2 状态编码的定义 185 

    8.4 有限状态机设计要点 188 

    8.4.1 复位和起始状态的选择 188 

    8.4.2 多余状态的处理 191 

    8.5 有限状态机应用实例 192 

    8.5.1 用有限状态机控制彩灯 192 

    8.5.2 用有限状态机控制A/D采样 194 

    习题8 195 

    第9章 Verilog驱动常用I/O外设 197 

    9.1 4×4矩阵键盘 197 

    9.2 数码管 200 

    9.3 标准PS/2键盘 202 

    9.4 字符液晶 210 

    9.5 汉字图形点阵液晶 218 

    9.6 VGA显示器 224 

    9.6.1 VGA显示原理与时序 224 

    9.6.2 VGA彩条信号发生器 226 

    9.6.3 VGA图像显示与控制 232 

    9.7 乐曲演奏电路 239 

    习题9 247 

    第10章 Verilog设计进阶 249 

    10.1 设计的可综合性 249 

    10.2 流水线设计技术 252 

    10.3 资源共享 255 

    10.4 阻塞赋值与非阻塞赋值 257 

    10.5 加法器设计 261 

    10.5.1 行波进位加法器 261 

    10.5.2 超前进位加法器 262 

    10.5.3 流水线加法器 266 

    10.6 乘法器设计 266 

    10.6.1 并行乘法器 267 

    10.6.2 布斯乘法器 267 

    10.6.3 查找表乘法器 270 

    10.7 奇数分频与小数分频 271 

    10.7.1 奇数分频 271 

    10.7.2 半整数分频 272 

    10.7.3 小数分频 273 

    习题10 277 

    第11章 Verilog Test Bench仿真 278 

    11.1 系统任务与系统函数 278 

    11.2 用户自定义元件 282 

    11.2.1 组合电路UDP元件 283 

    11.2.2 时序逻辑UDP元件 284 

    11.3 延时模型的表示 286 

    11.3.1 时间标尺定义`timescale 286 

    11.3.2 延时的表示与延时说明块 287 

    11.4 Test Bench测试平台 288 

    11.5 组合和时序电路的仿真 291 

    11.5.1 组合电路的仿真 291 

    11.5.2 时序电路的仿真 293 

    11.6 ModelSim SE仿真实例 294 

    11.6.1 图形界面进行功能仿真 295 

    11.6.2 命令行方式进行功能仿真 298 

    11.6.3 时序仿真 300 

    习题11 303 

    第12章 Verilog设计实例 304 

    12.1 脉宽调制与步进电机驱动 304 

    12.1.1 PWM信号 304 

    12.1.2 用PWM驱动蜂鸣器 305 

    12.1.3 用PWM驱动步进电机 310 

    12.2 超声波测距 314 

    12.3 整数开方运算 319 

    12.4 频率测量 324 

    12.5 Cordic算法及其实现 330 

    12.5.1 Cordic算法原理 330 

    12.5.2 Cordic算法的实现 333 

    12.6 用XADC实现模数转换 340 

    12.6.1 7系列FPGA片内集成ADC概述 340 

    12.6.2 XADC的使用 342 

    习题12 354 

    附录A EGO1开发板 355 

    附录B Verilog HDL(IEEE Std 1364-1995)关键字 356 

    附录C Verilog HDL(IEEE Std 1364-2001)关键字 357 

    参考文献 358
  • 内容简介:
    本书根据EDA课程教学要求,以提高数字系统设计能力为目标,系统阐述FPGA数字开发的相关知识,主要内容包括EDA技术概述、FPGA/CPLD器件结构、Verilog硬件描述语言及设计案例等。全书以Vivado、ModelSim软件为工具,以Verilog-1995和Verilog-2001语言标准为依据,以可综合的设计为重点,通过诸多精选设计案例,系统阐述数字系统设计方法与思想,由浅入深地介绍Verilog工程开发的手段与技能。
  • 作者简介:
    王金明,男,1972年5月出生,博士,现为解放军陆军工程大学副教授、硕士生导师。曾获军队科技进步一等奖1项,军队科技进步二等奖3项,军队科技进步三等奖5项,获军队级教学成果二等奖1项;获国家发明专利授权2项,获软件著作授权1项;发表论文80余篇,其中SCI、EI收录30余篇;主编教材多部,并入选"十一五”国家级规划教材和"十二五”国家级规划教材;2013年获军队院校育才奖银奖;2014年由国家留学基金委资助,在美国威斯康星大学麦迪逊分校访问研究1年;指导本科生参加全国大学生电子设计竞赛,共获得全国一等奖8项。
  • 目录:
    第1章 EDA技术概述 1 

    1.1 EDA技术及其发展 1 

    1.2 Top-down设计与IP核复用 4 

    1.2.1 Top-down设计 4 

    1.2.2 Bottom-up设计 4 

    1.2.3 IP复用技术与SoC 5 

    1.3 数字设计的流程 6 

    1.3.1 设计输入 7 

    1.3.2 综合 7 

    1.3.3 布局布线 8 

    1.3.4 仿真 8 

    1.3.5 编程配置 9 

    1.4 常用的EDA工具软件 9 

    1.5 EDA技术的发展趋势 12 

    习题1 13 

    第2章 FPGA/CPLD器件 14 

    2.1 PLD器件概述 14 

    2.1.1 PLD器件的发展历程 14 

    2.1.2 PLD器件的分类 15 

    2.2 PLD的基本原理与结构 17 

    2.2.1 PLD器件的基本结构 17 

    2.2.2 PLD电路的表示方法 18 

    2.3 低密度PLD的原理与结构 19 

    2.4 CPLD的原理与结构 23 

    2.4.1 宏单元结构 23 

    2.4.2 CPLD的结构 24 

    2.5 FPGA的原理与结构 26 

    2.5.1 查找表结构 26 

    2.5.2 FPGA的结构 29 

    2.6 FPGA/CPLD的编程元件 34 

    2.7 边界扫描测试技术 37 

    2.8 FPGA/CPLD的编程与配置 39 

    2.8.1 在系统可编程 39 

    2.8.2 Artix-7器件的配置 40 

    2.9 Xilinx的FPGA器件 42 

    2.10 FPGA/CPLD的发展趋势 43 

    习题2 44 

    第3章 Vivado使用指南 45 

    3.1 Vivado流水灯设计 45 

    3.1.1 流水灯设计输入 45 

    3.1.2 行为仿真 52 

    3.1.3 综合与引脚的约束 55 

    3.1.4 生成比特流文件并下载 58 

    3.1.5 将配置数据烧写至Flash中 59 

    3.2 IP核的创建和封装 62 

    3.3 基于IP集成的计数器设计 70 

    3.4 Vivado的综合策略与优化设置 79 

    习题3 85 

    第4章 Verilog设计初步 86 

    4.1 Verilog的历史 86 

    4.2 Verilog模块的结构 87 

    4.3 Verilog基本组合电路设计 90 

    4.3.1 用Verilog设计表决电路 90 

    4.3.2 用Verilog设计加法器 91 

    4.4 Verilog基本时序电路设计 93 

    4.4.1 用Verilog设计触发器 93 

    4.4.2 用Verilog设计计数器 94 

    习题4 96 

    第5章 Verilog语言要素 97 

    5.1 概述 97 

    5.2 常量 98 

    5.2.1 整数(Integer) 98 

    5.2.2 实数(Real) 100 

    5.2.3 字符串(String) 100 

    5.3 数据类型 101 

    5.3.1 net型 102 

    5.3.2 variable型 103 

    5.4 参数 104 

    5.4.1 参数parameter 104 

    5.4.2 Verilog-2001中的参数声明 105 

    5.4.3 参数的传递 106 

    5.4.4 localparam 106 

    5.5 向量 107 

    5.6 运算符 109 

    习题5 113 

    第6章 Verilog语句语法 115 

    6.1 过程语句 115 

    6.1.1 always过程语句 116 

    6.1.2 initial过程语句 119 

    6.2 块语句 120 

    6.2.1 串行块begin-end 120 

    6.2.2 并行块fork-join 121 

    6.3 赋值语句 122 

    6.3.1 持续赋值与过程赋值 122 

    6.3.2 阻塞赋值与非阻塞赋值 123 

    6.4 条件语句 125 

    6.4.1 if-else语句 125 

    6.4.2 case语句 126 

    6.5 循环语句 130 

    6.5.1 for语句 131 

    6.5.2 repeat、while、forever语句 132 

    6.6 编译指示语句 133 

    6.7 任务与函数 135 

    6.7.1 任务(task) 135 

    6.7.2 函数(function) 137 

    6.8 顺序执行与并发执行 140 

    6.9 Verilog-2001语言标准 142 

    6.9.1 Verilog-2001改进和增强的语法结构 142 

    6.9.2 属性及PLI接口 150 

    习题6 153 

    第7章 Verilog设计的层次与风格 154 

    7.1 Verilog设计的层次 154 

    7.2 门级结构描述 154 

    7.2.1 Verilog门元件 155 

    7.2.2 门级结构描述 157 

    7.3 行为描述 158 

    7.4 数据流描述 159 

    7.5 不同描述风格的设计 160 

    7.5.1 半加器设计 160 

    7.5.2 1位全加器设计 161 

    7.5.3 加法器的级联 163 

    7.6 多层次结构电路的设计 164 

    7.6.1 模块例化 164 

    7.6.2 用parameter进行参数传递 165 

    7.6.3 用defparam进行参数重载 166 

    7.7 基本组合电路设计 167 

    7.8 基本时序电路设计 171 

    7.9 三态逻辑设计 174 

    习题7 176 

    第8章 Verilog有限状态机设计 177 

    8.1 有限状态机 177 

    8.2 有限状态机的Verilog描述 179 

    8.2.1 用三个always块描述 180 

    8.2.2 用两个过程描述 181 

    8.2.3 单过程描述方式 182 

    8.3 状态编码 183 

    8.3.1 常用的编码方式 183 

    8.3.2 状态编码的定义 185 

    8.4 有限状态机设计要点 188 

    8.4.1 复位和起始状态的选择 188 

    8.4.2 多余状态的处理 191 

    8.5 有限状态机应用实例 192 

    8.5.1 用有限状态机控制彩灯 192 

    8.5.2 用有限状态机控制A/D采样 194 

    习题8 195 

    第9章 Verilog驱动常用I/O外设 197 

    9.1 4×4矩阵键盘 197 

    9.2 数码管 200 

    9.3 标准PS/2键盘 202 

    9.4 字符液晶 210 

    9.5 汉字图形点阵液晶 218 

    9.6 VGA显示器 224 

    9.6.1 VGA显示原理与时序 224 

    9.6.2 VGA彩条信号发生器 226 

    9.6.3 VGA图像显示与控制 232 

    9.7 乐曲演奏电路 239 

    习题9 247 

    第10章 Verilog设计进阶 249 

    10.1 设计的可综合性 249 

    10.2 流水线设计技术 252 

    10.3 资源共享 255 

    10.4 阻塞赋值与非阻塞赋值 257 

    10.5 加法器设计 261 

    10.5.1 行波进位加法器 261 

    10.5.2 超前进位加法器 262 

    10.5.3 流水线加法器 266 

    10.6 乘法器设计 266 

    10.6.1 并行乘法器 267 

    10.6.2 布斯乘法器 267 

    10.6.3 查找表乘法器 270 

    10.7 奇数分频与小数分频 271 

    10.7.1 奇数分频 271 

    10.7.2 半整数分频 272 

    10.7.3 小数分频 273 

    习题10 277 

    第11章 Verilog Test Bench仿真 278 

    11.1 系统任务与系统函数 278 

    11.2 用户自定义元件 282 

    11.2.1 组合电路UDP元件 283 

    11.2.2 时序逻辑UDP元件 284 

    11.3 延时模型的表示 286 

    11.3.1 时间标尺定义`timescale 286 

    11.3.2 延时的表示与延时说明块 287 

    11.4 Test Bench测试平台 288 

    11.5 组合和时序电路的仿真 291 

    11.5.1 组合电路的仿真 291 

    11.5.2 时序电路的仿真 293 

    11.6 ModelSim SE仿真实例 294 

    11.6.1 图形界面进行功能仿真 295 

    11.6.2 命令行方式进行功能仿真 298 

    11.6.3 时序仿真 300 

    习题11 303 

    第12章 Verilog设计实例 304 

    12.1 脉宽调制与步进电机驱动 304 

    12.1.1 PWM信号 304 

    12.1.2 用PWM驱动蜂鸣器 305 

    12.1.3 用PWM驱动步进电机 310 

    12.2 超声波测距 314 

    12.3 整数开方运算 319 

    12.4 频率测量 324 

    12.5 Cordic算法及其实现 330 

    12.5.1 Cordic算法原理 330 

    12.5.2 Cordic算法的实现 333 

    12.6 用XADC实现模数转换 340 

    12.6.1 7系列FPGA片内集成ADC概述 340 

    12.6.2 XADC的使用 342 

    习题12 354 

    附录A EGO1开发板 355 

    附录B Verilog HDL(IEEE Std 1364-1995)关键字 356 

    附录C Verilog HDL(IEEE Std 1364-2001)关键字 357 

    参考文献 358
查看详情