当前位置:首页 > 工业技术
Xilinx FPGA设计与实践教程
Xilinx FPGA设计与实践教程

Xilinx FPGA设计与实践教程PDF电子书下载

工业技术

  • 电子书积分:14 积分如何计算积分?
  • 作 者:赵吉成,王智勇编著
  • 出 版 社:西安:西安电子科技大学出版社
  • 出版年份:2012
  • ISBN:9787560626291
  • 页数:410 页
图书介绍:本书讲述了FPGA设计基础与ISE开发基本流程、数字电路设计基础与Verilog HDL描述、基于FPGA的接口开发、基于FPGA的转换微控制器PicoB/aze。
《Xilinx FPGA设计与实践教程》目录

第一篇 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和SynplifyPro 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的接口开发 219

第八章 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

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