《你好FPGA 一本可以听的入门书》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:王建飞,雷斌编著;至芯科技组编
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2016
  • ISBN:9787121290916
  • 页数:332 页
图书介绍:零基础入门项目式教学,通过一系列小项目的实践练习,读者可以掌握最基本的FPGA开发技巧以及工程规范,同时对于读者来说,最重要的是通过本书的学习可以掌握一整套的学习和设计研发方法,为以后更高层次的开发铺平道路。

第1章 没有金刚钻,不揽瓷器活 1

1.1 Quartus II 15.0——温婉简约编译器 1

1.1.1 写在前面的话 1

1.1.2 Altera Quartus II 15.0安装 1

1.2 ModelSim 10.3 d——独具慧眼仿真工具 7

1.3 级联调试——标准设计势必行 7

第2章 工欲善其事,必先利其器 31

2.1 工程规范——我的地盘,你说了算 31

2.2 初识流水灯——很傻很天真 31

2.2.1 项目需求 31

2.2.2 相关技术介绍 31

2.2.3 硬件设计 32

2.2.4 顶层架构设计 32

2.2.5 端口描述 33

2.2.6 代码解释 33

2.3 测试文件——一切都似曾相识 39

第3章 谆谆教诲莫相忘,字字珠玑记心头 41

3.1 赋值语句——你是我的最爱 41

3.1.1 写在前面的话 41

3.1.2 非阻塞赋值语句 41

3.1.3 阻塞赋值语句 43

3.2 关系运算符——心中永远的痛 45

3.2.1 写在前面的话 45

3.2.2 关系运算符的种类 45

3.2.3 关系运算符的使用意义 45

3.2.4 关系运算符与算数运算符优先级 45

3.3 if-else与case——永远的欢喜冤家 45

3.3.1 写在前面的话 45

3.3.2 if-else条件分支语句 46

3.3.3 case分支控制语句 50

3.3.4 case语句和if-else语句的区别 52

3.4 缩减运算符——就这样变没了 52

3.4.1 写在前面的话 52

3.4.2 工程实例 52

3.5 移位运算符——性子总是这么直 54

3.5.1 写在前面的话 54

3.5.2 移位运算符实例 55

3.6 位拼运算符——聪慧灵秀惹人妒 57

3.6.1 写在前面的话 57

3.6.2 代码实例 57

第4章 会当凌绝顶,设计Top-Down 59

4.1 层次化设计方法——心中永远的女神 59

4.1.1 写在前面的话 59

4.1.2 层次化设计框图示例 59

4.1.3 层次化设计实例 60

4.2 层次化设计技巧——巧夺天工砖瓦匠 65

4.2.1 写在前面的话 65

4.2.2 电平触发 65

4.2.3 尖峰脉冲 66

第5章 内涵丰富本领多,谁与争锋IP核 68

5.1 锁相环——速度,你说了算 68

5.1.1 写在前面的话 68

5.1.2 项目需求 68

5.1.3 操作步骤 68

5.1.4 顶层架构设计 73

5.1.5 端口功能 73

5.1.6 代码解释 73

5.1.7 仿真结果分析 75

5.2 ROM——只有你最慷慨 75

5.2.1 写在前面的话 75

5.2.2 项目需求 75

5.2.3 操作步骤 75

5.2.4 顶层架构设计 80

5.2.5 模块功能介绍 80

5.2.6 模块端口和内部连线描述 80

5.2.7 代码解释 80

5.2.8 仿真分析 83

5.3 RAM——有入有出,公平合理 84

5.3.1 写在前面的话 84

5.3.2 项目需求 84

5.3.3 操作步骤 84

5.3.4 顶层架构设计 86

5.3.5 模块功能介绍 86

5.3.6 模块端口和内部连线描述 87

5.3.7 代码解释 87

5.3.8 仿真分析 90

5.4 FIFO——重中之重缓存器 91

5.4.1 写在前面的话 91

5.4.2 项目需求 91

5.4.3 操作步骤 91

5.4.4 顶层架构设计 94

5.4.5 模块功能介绍 95

5.4.6 模块端口和内部连线描述 95

5.4.7 代码解释 95

5.4.8 仿真分析 100

5.5 移位寄存器——你是我的骄傲 101

5.5.1 写在前面的话 101

5.5.2 功能要求 102

5.5.3 操作步骤 103

5.5.4 顶层架构设计 105

5.5.5 模块功能介绍 105

5.5.6 模块端口和内部连线描述 105

5.5.7 代码解释 106

5.5.8 仿真分析 110

第6章 基础项目我在行,信手拈来显聪慧 111

6.1 二选一之战——我只是个新兵 111

6.1.1 写在前面的话 111

6.1.2 项目需求 111

6.1.3 系统架构 111

6.1.4 模块功能介绍 111

6.1.5 顶层模块端口描述 111

6.1.6 代码解释 112

6.1.7 仿真分析 113

6.1.8 二选一数据寄存 114

6.2 三态门之战——机关算尽太聪明 116

6.2.1 写在前面的话 116

6.2.2 项目需求 116

6.2.3 系统架构 117

6.2.4 模块功能介绍 117

6.2.5 顶层模块端口描述 117

6.2.6 代码解释 117

6.2.7 仿真分析 119

6.3 串并转换——你无处不在 120

6.3.1 写在前面的话 120

6.3.2 需求分析 120

6.3.3 顶层框架设计 120

6.3.4 顶层模块端口介绍 121

6.3.5 代码实现 121

6.4 generate语句——呵呵,你就会偷懒 125

6.4.1 写在前面的话 125

6.4.2 基本概念 126

6.4.3 generate_ for语句 126

6.4.4 generate_if语句 132

6.4.5 generate_case语句 133

6.5 边沿检测——如此高大上 135

6.5.1 写在前面的话 135

6.5.2 电路原理分析 135

6.5.3 顶层框架结构 136

6.5.4 顶层模块端口介绍 136

6.5.5 代码实现 136

6.5.6 仿真波形分析 138

6.6 按键消抖——且看老夫手段 139

6.6.1 写在前面的话 139

6.6.2 基于尖峰脉冲的按键消抖 139

6.6.3 项目需求 139

6.6.4 误区排除 139

6.6.5 设计思路 140

6.6.6 系统框架 140

6.6.7 顶层端口描述 141

6.6.8 代码解释 141

6.6.9 仿真分析 144

第7章 没有标准的方法,但见可行的技巧 146

7.1 异步复位同步释放——高端神秘你最帅 146

7.1.1 写在前面的话 146

7.1.2 基本概念 146

7.1.3 代码举例 146

7.1.4 异步复位同步释放电路 148

7.2 任意分频之战——一切都如此简单 155

7.2.1 写在前面的话 155

7.2.2 实现原理 156

7.2.3 系统框架 156

7.2.4 顶层模块端口描述 156

7.2.5 代码分析 156

7.2.6 仿真分析 159

7.3 二进制数转BCD——终极进化 160

7.3.1 写在前面的话 160

7.3.2 基本概念 160

7.3.3 逐步移位法原理 160

7.3.4 设计任务 161

7.3.5 顶层框图设计 161

7.3.6 代码实现 163

7.3.7 仿真分析 165

7.4 BCD转二进制——返璞归真 166

7.4.1 写在前面的话 166

7.4.2 基本概念 166

7.4.3 移位算法原理 166

7.4.4 顶层框架图 166

7.4.5 顶层模块端口介绍 167

7.4.6 代码实现 167

7.4.7 仿真分析 169

7.5 流水线设计之战——效率决定成败 170

7.5.1 写在前面的话 170

7.5.2 流水线的基本概念 170

7.5.3 流水线改造实例 171

7.6 Signaltap之战——奸细,哪里逃 177

7.6.1 写在前面的话 177

7.6.2 背景知识 178

7.6.3 典型的SignalTap Ⅱ调试流程 180

7.6.4 SignalTap Ⅱ调试具体操作步骤 180

7.6.5 具体步骤 181

第8章 进阶首选我当前,乘胜追击势必行 204

8.1 字符状态机之战——进来的,都要审查 204

8.1.1 写在前面的话 204

8.1.2 项目需求 204

8.1.3 解决方案 204

8.1.4 系统架构 204

8.1.5 模块功能介绍 204

8.1.6 顶层模块端口描述 205

8.1.7 代码解释 205

8.1.8 仿真分析 210

8.2 数码管之战——好像胜利的曙光 210

8.2.1 写在前面的话 210

8.2.2 项目需求 210

8.2.3 原理分析 210

8.2.4 单个数码管显示 212

8.2.5 6个数码管显示 215

8.3 PS2之战——键盘原来是这样 221

8.3.1 写在前面的话 221

8.3.2 项目需求 221

8.3.3 原理分析 222

8.3.4 系统架构 223

8.3.5 模块功能介绍 223

8.3.6 顶层模块端口描述 223

8.3.7 用Signaltap II分析波形 223

8.3.8 代码解释 225

8.3.9 仿真分析 232

8.4 矩阵键盘之战——严密的资源整合 233

8.4.1 写在前面的话 233

8.4.2 项目需求 233

8.4.3 矩阵键盘的原理 233

8.4.4 架构设计 235

8.4.5 模块功能介绍 235

8.4.6 顶层模块端口描述 235

8.4.7 代码解释 235

8.4.8 仿真分析 241

8.5 IIC之战——配置离不开你 241

8.5.1 写在前面的话 241

8.5.2 项目需求 242

8.5.3 IIC的原理分析 242

8.5.4 架构设计 246

8.5.5 模块功能介绍 246

8.5.6 顶层模块端口描述 246

8.5.7 代码解释 246

8.5.8 仿真分析 263

8.6 串口通信之战——通信终于畅通了 264

8.6.1 写在前面的话 264

8.6.2 项目需求 265

8.6.3 UART的原理分析 265

8.6.4 系统架构 266

8.6.5 模块功能介绍 268

8.6.6 模块端口和内部连线描述 268

8.6.7 代码解释 268

8.6.8 仿真分析 276

8.7 VGA之战——我型我酷炫 276

8.7.1 写在前面的话 276

8.7.2 什么是VGA 277

8.7.3 VGA接口 277

8.7.4 VGA显示原理 278

8.7.5 顶层框架 280

8.7.6 顶层模块端口描述 280

8.7.7 代码实现 280

8.7.8 仿真分析 285

8.8 12864液晶之战——心灵的窗口 285

8.8.1 写在前面的话 285

8.8.2 基本概念 285

8.8.3 硬件电路结构 286

8.8.4 官方代码解析 287

8.8.5 项目需求 293

8.8.6 系统架构 293

8.8.7 代码解释 294

8.8.8 仿真分析 305

8.9 DDS——形随心动 305

8.9.1 写在前面的话 305

8.9.2 项目需求 305

8.9.3 项目分析 305

8.9.4 系统架构 306

8.9.5 模块功能介绍 306

8.9.6 顶层端口和内部连线描述 306

8.9.7 波形数据的由来 307

8.9.8 波形发生器(不可调频和调相) 308

8.9.9 波形发生器(不可调频,但可以调相) 312

8.9.10 波形发生器(可以调频,可以调相) 315

8.9.11 最终设计 318

8.10 蜂鸣器之战——奏响凯旋的乐章 322

8.10.1 写在前面的话 322

8.10.2 什么是蜂鸣器 322

8.10.3 设计任务 323

8.10.4 顶层端口介绍 325

8.10.5 代码解释 325

8.10.6 仿真分析 331