《FPGA项目开发实战讲解》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:李宪强编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2015
  • ISBN:9787121256400
  • 页数:248 页
图书介绍:本书立足于工程实践经验,首先介绍FPGA的原理、语法、设计技巧,然后详细介绍了7项常用技术的实现。每项技术从以下几方面介绍:相关技术介绍、FPGA方案框图设计、子模块设计、仿真和测试、项目开发过程中遇到的问题、定位和解决措施,其中插入了大量的状态机转换图和关键代码,方便读者学习。

第1章 FPGA介绍 1

1.1 FPGA的优势 1

1.2 FPGA典型结构图 2

1.3 LUT原理 6

1.4 FPGA上电配置过程时序图 7

1.5 FPGA基本开发流程 10

第2章 Verilog语法介绍 13

2.1 Verilog HDL语言简介 13

2.1.1 什么是Verilog HDL 13

2.1.2 Verilog HLC的历史 13

2.2 Verilog HDL和VHDL语言比较 14

2.3 Verilog语法介绍 15

2.3.1 模块 15

2.3.2 常量 16

2.3.3 parameter与define的区别 18

2.3.4 reg和wire 19

2.3.5 操作符 21

2.3.6 assign和always语句 21

2.3.7 if和case语句 23

2.3.8 循环语句 25

2.3.9 模块实例化 25

2.3.10 预处理指令 26

2.3.11 系统任务 26

2.3.12 task和function语句的区别 29

2.3.13 文件操作 30

第3章 FPGA开发必要的技术积累 33

3.1 锁存器、触发器 33

3.2 时序的基本概念 34

3.2.1 建立和保持时间 34

3.2.2 同步系统中时序分析 34

3.3 异步时钟域和亚稳态 37

3.3.1 什么是亚稳态 37

3.3.2 亚稳态发生场合 37

3.3.3 亚稳态危害 38

3.3.4 怎么减少亚稳态的发生 38

3.3.5 案例:亚稳态导致通信异常 39

3.4 状态机的设计 39

3.5 复位信号 40

3.5.1 同步复位和异步复位比较 40

3.5.2 案例:和复位信号相关的项目 41

3.6 串并转换和并串转换 42

3.7 流水技术 42

3.7.1 流水技术原理 42

3.7.2 案例:NAND FLASH流水实现高速存储 43

3.8 乒乓操作 44

3.9 双向端口使用 45

3.9.1 数据总线的设计 45

3.9.2 程序设计 45

3.9.3 案例:MCU接口程序 46

3.10 Xilinx原语介绍 49

3.10.1 时钟组件 49

3.10.2 吉比特收发器组件 50

3.10.3 I/O端口组件 50

3.10.4 IBUFDS 51

3.10.5 IDELAY 52

3.10.6 OBUFDS 53

3.11 DCM原理 54

3.12 RAM核的使用 56

3.13 FPGA时序约束 60

3.13.1 FPGA约束介绍 60

3.13.2 案例:500MSPS的A/D转换器 63

3.14 生成IP核 70

3.14.1 生成IP核的方法 70

3.14.2 案例:生成IP核的具体操作过程 71

3.15 保持层次关系 73

3.16 Chipscope ICON和ILA 75

3.16.1 Chipscope介绍 75

3.16.2 案例:以DSP接口程序为例介绍使用流程 77

3.17 Verilog编码风格注意事项总结 79

3.18 FPGA学习步骤 80

3.19 FPGA工作方式 81

第4章 FIFO控制器设计 83

4.1 FIFO相关的概念 83

4.2 设计指标 84

4.3 同步FIFO设计 84

4.3.1 双端口RAM介绍 84

4.3.2 同步FIFO设计 85

4.4 异步FIFO设计 88

4.4.1 空/满标志的产生 88

4.4.2 亚稳态问题 88

4.4.3 格雷码 89

4.4.4 异步FIFO设计及结果 90

第5章 串口通信模块设计 95

5.1 串口通信概述 95

5.1.1 串口介绍 95

5.1.2 串口帧格式 96

5.2 设计指标 97

5.3 串口通信模块方案 97

5.3.1 原理框图 97

5.3.2 FPGA方案 98

5.4 串口通信各个模块设计 99

5.4.1 MCU配置模块设计 99

5.4.2 发送模块设计 106

5.4.3 接收模块设计 114

5.4.4 顶层模块 123

5.5 串口通信模块调试注意事项 126

第6章 数/模及模/数转换控制模块设计 127

6.1 相关技术介绍 127

6.1.1 数/模转换器(DAC)介绍 127

6.1.2 模/数转换器(ADC)介绍 129

6.1.3 数/模转换芯片AD5641介绍 131

6.1.4 模/数转换芯片ADS7230介绍 132

6.2 技术指标要求 135

6.3 D/A模块设计 136

6.4 A/D模块设计 141

6.5 遇到的问题、排查及定位 148

第7章 HDLC总线控制器设计 149

7.1 HDLC协议介绍 149

7.2 CRC校验 150

7.3 设计技术指标 150

7.4 HDLC电路图 150

7.5 HDLC总线控制器模块划分 151

7.6 HDLC总线控制器各个模块设计 152

7.6.1 CRC模块设计 152

7.6.2 发送编码设计及结果 152

7.6.3 接收解码设计及结果 163

7.7 遇到的问题及解决办法 174

第8章 SDRAM控制器设计 175

8.1 SDRAM简介 175

8.2 SDRAM芯片介绍 176

8.3 SDRAM设计方案 178

8.3.1 刷新周期问题 180

8.3.2 初始化模块 183

8.3.3 定时刷新请求信号产生模块 184

8.3.4 读/写请求产生模块 185

8.3.5 读/写状态机 187

第9章 NAND FLASH控制器设计 195

9.1 NAND FLASH介绍 195

9.1.1 NAND FLASH信号功能介绍 195

9.1.2 芯片存储阵列结构和地址寻址 196

9.1.3 NAND FLASH时序图介绍 197

9.2 设计技术指标 201

9.3 原理图介绍 202

9.4 NAND FLASH控制器方案 202

9.5 NAND FLASH各个模块设计 203

9.5.1 MCU接口模块 203

9.5.2 FLASH管理模块 205

9.5.3 NAND FLASH坏块表查找模块设计 209

9.5.4 NAND FLASH页查找模块设计 210

9.5.5 NAND FLASH读模块设计 211

9.5.6 NAND FLASH写模块设计 212

9.5.7 NAND FLASH块擦除模块设计 214

9.6 遇到的问题及解决办法 217

9.6.1 对FLASH的读/写不能完成 217

9.6.2 读/写不稳定 217

第10章 1553B总线控制器设计 218

10.1 1553B总线介绍 218

10.1.1 总线拓扑结构 219

10.1.2 编码方式 220

10.1.3 1553B数据格式 220

10.1.4 总线数据传输过程说明 223

10.2 设计技术指标 224

10.3 原理图介绍 224

10.4 收发器芯片介绍 224

10.5 1553B总线控制器方案 225

10.6 1553B总线控制器各个模块设计 226

10.6.1 曼彻斯特编码模块设计 226

10.6.2 曼彻斯特解码模块设计 230

10.6.3 协议处理模块设计 231

10.6.4 RT接收模块设计 238

10.6.5 RT发送模块设计 242

10.6.6 RT-RT模块设计 243

10.6.7 Broadcast模块设计 243

10.7 测试结果 245

10.8 遇到的问题及解决办法 246

参考文献 247

后记 248