新闻资讯
看你所看,想你所想

Xilinx FPGA设计与实践教程

Xilinx FPGA设计与实践教程

Xilinx FPGA设计与实践教程

《Xilinx FPGA设计与实践教程》是2012年1月西安电子科技大学出版社出版的图书,作者是赵吉成、王智勇。

基本介绍

  • 书名:Xilinx FPGA设计与实践教程
  • 作者:赵吉成、王智勇
  • ISBN:9787560626291
  • 定价:52.00元
  • 出版社:西安电子科技大学出版社
  • 出版时间:2012-01
  • 装帧:平装
  • 开本:16

编辑推荐

本书整体而言,有以下三个特色: (1) 内容非常丰富。全书覆盖了FPGA开发的整个流程、基于Verilog语言的数字电路设计、经典FPGA案例设计与验证、基于源码开放的微处理器PicoBlaze软硬体开发四个部分,富含120多个例程和近100道思考与练习题,对于提升读者的设计与实践能力有着实质性的帮助。 (2) 描述精闢透彻。全书知识点讲述中,能够从深层次剖析知识点的本质,由浅入深引领读者理解数字设计的关键知识点,如时序电路基本模型、带数据路径状态机和同步电路设计方法等,其理论剖析深入而透彻。 (3) 经典实用。书中结合Xilinx 的开发板讲述了UART串口通信、PS/2键盘/滑鼠接口控制器、VGA显示接口控制以及SRAM控制器等富有代表性的案例的设计、仿真以及验证,所有案例採用统一的设计思想和代码风格,使读者在牢固巩固数字设计基本方法的同时,从工程套用方面不知不觉上升一个高度。 本书写作上的亮点在于能够通过简单的实例引申出可程式逻辑设计的高级技巧和思想,通过巧妙的实践设计帮助读者理解和消化高深的理论,并养成良好的设计习惯。我郑重地向大家推荐这本书,使更多的读者能够早日掌握FPGA的开发技能,促进FPGA技术的进一步推广。

内容简介

本书系统讲述了FPGA的软硬体开发知识,并以Spartan-3开发套件为硬体平台,配合经典的实例套用,使读者能够从硬体设计、软体开发和系统设计等方面系统掌握FPGA的使用方法。
本书共四篇16章。第一篇为FPGA设计基础与ISE开发基本流程,共2章,内容包括PLD技术基础,Xilinx FPGA的开发、仿真以及实现整个流程。第二篇为数字电路设计基础与VerilogHDL描述,共5章,介绍了基于VerilogHDL的数字电路基础、同步电路设计思想和高级技巧。第三篇为基于FPGA的接口开发,共5章,结合Xilinx FPGA开发板,详细讲述了UART串口通信控制器、PS/2键盘/滑鼠接口控制器、VGA图形图像显示控制器以及RAM接口控制器等案例的设计、开发以及验证。第四篇为基于FPGA的软核微控制器PicoBlaze,共4章,以PicoBlaze为例,介绍了PicoBlaze微处理器的软硬体开发、中断设计等。

图书目录

第一篇 FPGA设计基础与ISE开发基本流程
第一章 FPGA设计基础 1
1.1 FPGA的基本概念 1
1.2 可程式逻辑技术发展简介 2
1.2.1 可程式技术发展演变过程 2
1.2.2 FPGA技术 5
1.3 FPGA器件编程技术 6
1.3.1 熔丝互连编程技术 6
1.3.2 基于反熔丝的编程技术 8
1.3.3 基于SRAM的可程式技术 10
1.3.4 基于FLASH或E2PROM的可程式技术 11
1.4 通用FPGA的构成结构 11
1.4.1 现代FPGA的基本逻辑单元 12
1.4.2 Xilinx Spartan-3 FPGA的基本结构 14
1.5 Xilinx FPGA的开发流程 20
1.6 FPGA技术的未来发展 23
本章小结 25
思考与练习 25
第二章 ISE12.1开发环境与S3开发板 26
2.1 ISE12.1软体综述 26
2.1.1 ISE12.1套件分类 26
2.1.2 ISE12.1功能介绍 27
2.1.3 ISE12.1用户界面和选单操作 27
2.2 S3开发板简介 28
2.3 ISE开发流程 29
2.3.1 创建工程和设计输入 30
2.3.2 创建TestBench并进行RTL仿真 33
2.3.3 添加约束 36
2.3.4 综合与实现 37
2.3.5 生成配置档案并对FPGA进行配置 38
2.4 第三方开发工具 40
2.4.1 ModelSim介绍 40
2.4.2 在ModelSim中编译Xilinx的器件库 41
2.4.3 ModelSim 功能仿真举例 42
2.4.4 Synplify Pro介绍 47
2.4.5 关联ISE和Synplify Pro 47
2.4.6 Synplify Pro使用流程 48
本章小结 52
思考与练习 52
第二篇 数字电路设计基础与VerilogHDL描述
第三章 VerilogHDL语言基础 53
3.1 基本知识介绍 53
3.2 模组结构和编程框架 54
3.2.1 模组的结构 54
3.2.2 编程框架 56
3.3 数据类型和基本元素 58
3.3.1 基本概念 58
3.3.2 基本数据类型值 59
3.3.3 数据类型 59
3.3.4 常量 61
3.4 结构化描述 62
3.5 TestBench简介 64
本章小结 66
思考与练习 67
第四章 组合逻辑设计 68
4.1 基本操作符 68
4.1.1 算术操作符 69
4.1.2 移位操作符 70
4.1.3 关係运算符与相等运算符 70
4.1.4 位操作、複製和逻辑操作运算符 70
4.1.5 连线与複製运算符 72
4.1.6 条件运算符 72
4.1.7 位宽调整操作 73
4.1.8 关于Z和X的综合 74
4.2 组合逻辑描述 75
4.2.1 使用always模组描述组合逻辑 75
4.2.2 使用赋值语句描述组合逻辑 76
4.2.3 举例说明 76
4.3 条件控制语句 78
4.3.1 if-else语句 78
4.3.2 case语句 80
4.3.3 casez和casex语句 82
4.3.4 “full case”和“parallel case”语句 83
4.4. 条件控制语句的布线结构 84
4.4.1 优先权布线网路 84
4.4.2 多路选择布线网路 85
4.5 always语句的编程指导 86
4.6 工程实践 89
4.6.1 十六进制数到七段数码管解码器 89
4.6.2 带符号加法器设计 92
4.6.3 桶形移位器设计 95
本章小结 96
思考与练习 97
第五章 时序逻辑设计 98
5.1 时序电路基础 98
5.1.1 时序电路基本存储单元 98
5.1.2 同步时序电路 99
5.1.3 时序电路分类 100
5.2 时序电路基本单元的HDL描述 101
5.2.1 D触发器 101
5.2.2 暂存器 104
5.2.3 暂存器档案 104
5.3 简单例程 105
5.3.1 移位暂存器 105
5.3.2 二进制计数器和变数 107
5.4 时序电路的TestBench 111
5.5 工程实践 114
5.5.1 LED时序动态选择电路 114
5.5.2 秒表设计 122
5.5.3 FIFO缓冲器设计 126
本章小结 131
思考与练习 131
第六章 时序状态机设计 133
6.1 有限状态机 133
6.1.1 Moore和Mealy状态机 133
6.1.2 有限状态机的描述方式 133
6.1.3 有限状态机的HDL开发 135
6.2 状态机设计实例 138
6.2.1 上升沿检测电路 138
6.2.2 按键防抖动电路 143
6.2.3 电路硬体验证 147
6.3 带数据路径的状态机(FSMD) 149
6.3.1 简单暂存器传输操作 149
6.3.2 FSMD状态描述 150
6.3.3 FSMD的模组框图 151
6.4 FSMD的HDL代码开发 152
6.4.1 基于FSMD描述的按键防抖动电路 152
6.4.2 显性描述数据路径 153
6.4.3 隐含描述数据路径 156
6.5 设计举例 158
6.5.1 斐波纳契序列(Fibonacci Number)实现电路 158
6.5.2 频率检测器设计 162
6.5.3 除法电路设计 165
本章小结 169
思考与练习 169
第七章 数字电路设计原则与VerilogHDL难点解析 171
7.1 时序电路基础 171
7.1.1 同步电路的时序分析 173
7.1.2 异步电路和同步电路的区别 174
7.1.3 同步时序设计规则 175
7.2 异步电路中的同步处理方法 175
7.2.1 时钟的同步处理 175
7.2.2 接口电路处理 177
7.2.3 全局信号处理 182
7.3 阻塞赋值与非阻塞赋值 184
7.3.1 概述 185
7.3.2 组合逻辑电路中的赋值描述 186
7.3.3 时序电路赋值描述 187
7.3.4 时序电路中的混合赋值 188
7.4 优秀HDL代码风格 191
7.4.1 代码风格的含义 191
7.4.2 通用代码风格 191
7.4.3 Xilinx晶片专用代码风格 195
7.4.4 推荐时序电路描述代码风格 196
7.5 TestBench编写 199
7.5.1 基于HDL的TestBench编写 199
7.5.2 always和initial模组 199
7.5.3 顺序执行语句 200
7.5.4 时序控制语句 201
7.5.5 系统函式和任务 203
7.5.6 用户自定义函式和任务 208
7.5.7 TestBench举例 211
本章小结 218
思考与练习 218
第三篇 基于FPGA的接口开发
第八章 UART串口通信控制器 219
8.1 UART传输系统 219
8.2 UART接收模组设计 220
8.2.1 设计方案 220
8.2.2 波特率产生器 221
8.2.3 UART接收器 221
8.2.4 接口电路 225
8.3 UART传送模组设计 228
8.4 UART系统的总结 231
8.4.1 完整UART系统 231
8.4.2 UART验证电路 233
8.4.3 Windows的超级终端 234
8.4.4 定製UART 235
本章小结 236
思考与练习 236
第九章 PS/2键盘接口控制器 237
9.1 PS/2基础 237
9.1.1 PS/2连线埠的物理接口 237
9.1.2 PS/2接口主从设备通信协定 237
9.1.3 PS/2接收模组设计 238
9.2 PS/2键盘扫描设计 242
9.2.1 关于键盘扫描编码 242
9.2.2 按键扫描电路设计 243
9.3 PS/2键盘接口电路 246
9.3.1 接口电路设计 246
9.3.2 接口电路验证 248
本章小结 251
思考与练习 251
第十章 PS/2滑鼠接口控制器 253
10.1 PS/2滑鼠接口电路 253
10.1.1 关于滑鼠 253
10.1.2 滑鼠PS/2通信协定 253
10.1.3 初始化过程 254
10.2 PS/2传输子系统设计 254
10.2.1 主系统对PS/2设备的通信协定 254
10.2.2 设计与编码 255
10.3 PS/2滑鼠数据传输系统 260
10.3.1 双向传输PS/2接口电路设计 260
10.3.2 双向传输PS/2验证电路 262
10.4 PS/2滑鼠数据接口电路 265
10.4.1 传输PS/2接口电路设计 265
10.4.2 传输PS/2接口电路测试 268
本章小结 270
思考与练习 270
第十一章 RAM接口控制器 271
11.1 关于IS61LV25616AL SRAM 271
11.1.1 晶片介绍以及I/O接口 271
11.1.2 时序参数 272
11.2 基本存储控制器 274
11.2.1 设计框图 274
11.2.2 时序要求 276
11.2.3 存储器档案与SRAM的对比 276
11.2.4 设计安全性 276
11.2.5 ASMD状态机图 276
11.2.6 时序分析 277
11.2.7 HDL代码设计 278
11.2.8 基本测试电路 281
11.2.9 完整的SRAM测试电路 283
11.3 更加完善的设计 289
11.3.1 异步SRAM的时序信息 289
11.3.2 选择设计Ⅰ 290
11.3.3 选择设计Ⅱ 291
11.4 Xilinx Spartan-3内部存储器 292
11.4.1 概述 292
11.4.2 利用CoreGenerator定製嵌入式RAM模组 292
11.5 Xilinx嵌入式存储器例化举例 293
11.5.1 单连线埠RAM 293
11.5.2 双连线埠RAM 295
11.5.3 ROM 297
本章小结 299
思考与练习 299
第十二章 VGA图形图像显示控制器 301
12.1 CRT显示器原理 301
12.1.1 CRT显示的基本原理 301
12.1.2 视频显示基本术语 302
12.1.3 S3开发板上的VGA连线埠 303
12.1.4 VGA视频控制器 303
12.2 VGA同步电路 304
12.2.1 水平同步 304
12.2.2 垂直同步 305
12.2.3 HDL实现 306
12.2.4 测试电路 308
12.3 像素产生电路 309
12.3.1 矩形图形显示 311
12.3.2 非矩形目标显示 316
12.3.3 动态目标显示 317
12.4 点阵图显示方案 324
12.4.1 採用双连线埠RAM实现 324
12.4.2 採用单连线埠RAM实现 328
本章小结 328
思考与练习 329
第四篇 基于FPGA的软核微控制器PicoBlaze
第十三章 基于Xilinx FPGA的微处理器 331
13.1 PicoBlaze架构介绍 331
13.1.1 微处理器的套用 333
13.1.2 PicoBlaze处理器的特点 333
13.1.3 顶层HDL模型 335
13.1.4 设计流程 335
13.2 指令设定 336
13.2.1 编程模型 337
13.2.2 指令格式 337
13.2.3 逻辑指令 338
13.2.4 算术指令 339
13.2.5 比较和测试指令 339
13.2.6 移位和循环指令 340
13.2.7 数据传输指令 341
13.2.8 程式流程控制指令 342
13.2.9 中断相关指令 344
13.2.10 KCPSM3彙编宏命令 345
13.3 PicoBlaze档案结构 346
本章小结 349
思考与练习 349
第十四章 PicoBlaze彙编语言开发 350
14.1 PicoBlaze彙编基础 350
14.1.1 KCPSM3语法规定 350
14.1.2 位操作 350
14.1.3 多位元组操作 351
14.1.4 常用控制语句结构的彙编语言描述 352
14.2 子程式开发 355
14.3 PicoBlaze彙编程式开发 356
14.3.1 开发流程 356
14.3.2 程式举例 357
14.3.3 说明文档与注释 363
14.4 PicoBlaze软体开发流程 365
14.4.1 使用KCPSM3编译 365
14.4.2 使用PBlazeIDE仿真 366
14.4.3 使用JTAG接口下载代码 369
14.4.4 代码综合 369
本章小结 371
思考与练习 371
第十五章 PicoBlaze接口开发 372
15.1 输出连线埠 372
15.1.1 输出指令和时序 372
15.1.2 输出接口 373
15.2 输入连线埠 375
15.2.1 输入指令和时序 375
15.2.2 输入接口 375
15.3 求平方和电路接口开发 377
15.3.1 输出接口 377
15.3.2 输入接口 379
15.3.3 彙编程式设计 380
15.3.4 HDL程式开发 389
本章小结 392
思考与练习 392
第十六章 PicoBlaze中断 393
16.1 PicoBlaze中断处理机制 393
16.1.1 软体中断处理过程 393
16.1.2 中断时序描述 394
16.2 外部中断接口 395
16.2.1 单箇中断请求 395
16.2.2 多箇中断请求 395
16.3 软体开发 396
16.3.1 中断处理主程式 396
16.3.2 中断服务程式 397
16.4 设计举例 397
16.4.1 中断接口 397
16.4.2 中断服务子程式开发 397
16.4.3 彙编程式开发 398
16.4.4 HDL代码开发 405
本章小结 409
思考与练习 409
参考文献 410

相关推荐

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:yongganaa@126.com