《轻松学会FPGA设计与开发》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:周新主编;刘杰,张海洁副主编
  • 出 版 社:北京:化学工业出版社
  • 出版年份:2015
  • ISBN:9787122210043
  • 页数:286 页
图书介绍:本书从FPGA开发入门和工程实践角度出发,深入浅出,逐步引导读者学习FPGA设计所需的的基础理论和工具应用。主要内容包括:FPGA硬件结构、VHDL的编写、使用ModelSim仿真软件、使用TestBench对设计进行仿真、Actel FPGA设计基础以及FPGA设计典型案例,使读者快速、全面地掌握FPGA的设计思路和设计细节。

第一章 Verilog HDL设计人门 1

第一节 Verilog HDL语言概述 1

第二节 数字电路设计方法简介 3

一、布尔方程设计 3

二、原理图的设计 3

三、硬件描述语言 3

第三节 Verilog HDL与VHDL对比 4

第四节 Verilog HDL与C语言对比 5

第二章 Verilog HDL基本语法 9

第一节 Verilog HDL注释及格式 9

一、注释说明 9

二、书写格式 9

第二节 Verilog HDL标识符 9

第三节 关键字 10

第四节 常量 11

一、数字常量 11

二、字符串 13

三、其他 13

第五节 数据类型 13

一、线网类型 14

二、寄存器类型 15

三、参数型(parameter) 16

第六节 运算符 16

一、算术运算符 17

二、等式运算符 18

三、关系运算符 19

四、逻辑运算符 19

五、移位运算符 20

六、位运算符 20

七、位拼接运算符 22

八、缩减运算符 22

九、条件运算符 23

十、赋值运算符 23

第七节 运算符的优先级 23

第三章 Verilog HDL基本语句 25

第一节 连续赋值语句 26

一、缺省连续赋值 26

二、缺省线网声明 26

第二节 单元块语句 27

一、顺序块begin-end 27

二、fork-join语句 28

第三节 条件语句 30

一、if-else语句 30

二、case语句 32

三、条件语句使用要点 35

第四节 循环语句 37

一、forever语句 37

二、repeat语句 37

三、while语句 38

四、for语句 38

五、循环语句对比举例 39

第五节 过程语句 40

一、always语句 40

二、initial语句 42

第四章 Verilog HDL的模块化设计和描述方式 44

第一节 Verilog HDL的模块结构 44

一、模块声明 44

二、Verilog HDL的模块例化 45

三、模块的使用要点 46

第二节 Verilog HDL的描述方式概述 47

第三节 结构描述 47

一、门级结构描述 48

二、单元模块例化的结构描述 52

三、UDP的结构描述 53

第四节 数据流描述 56

第五节 行为描述 57

第六节 混合建模 58

第五章 函数、任务和编译命令 59

第一节 函数和任务 59

一、函数 59

二、任务 60

第二节 任务和函数间的区别 62

第三节 系统函数和系统任务 62

一、$display任务 63

二、$write任务 64

三、$monitor任务 64

四、$strobe任务 64

五、$stop任务 65

六、$finish任务 65

七、$readmemb与$readmemh任务 65

八、$random函数 66

九、$time函数 66

十、$realtime函数 67

十一、其他任务 67

十二、系统任务和系统函数的使用要点 68

第四节 编译命令 68

一、'define 68

二、'undef 70

三、'ifdef、'else和'endif 70

四、'include 70

五、'timescale 72

第六章 数字电路基础 74

第一节 组合逻辑 74

一、组合逻辑电路概述 74

二、几种基本组合逻辑电路设计 75

三、几种常用组合电路设计 80

四、组合逻辑电路设计要点 95

第二节 组合逻辑电路中的竞争冒险 98

一、竞争冒险 98

二、竞争冒险的产生 98

三、竞争冒险的避免 98

第三节 时序逻辑 99

一、时序逻辑电路概述 99

二、几种基本时序电路设计 99

第四节 时序逻辑电路中的建立时间和保持时间 116

第七章 状态机 118

第一节 状态机概述与分类 118

一、状态机概述 118

二、状态机分类 118

第二节 状态机设计要点 122

一、有限状态机的设计流程 122

二、有限状态机的设计要点 122

三、状态机的描述方法 124

第八章 仿真 132

第一节 仿真概述 132

第二节 Testbench 133

第三节 仿真中的延时描述 133

一、延时的表示方法 133

二、路径延迟声明specify 134

第四节 Testbench设计与使用要点 134

一、Testbench设计 134

二、Testbench使用要点 137

第五节 仿真实例 138

一、组合逻辑电路仿真实例 138

二、时序电路仿真实例 141

第九章 EDA的设计流程及设计工具 145

第一节 EDA的设计实现流程 145

一、设计输入 145

二、综合 146

三、功能仿真 146

四、布局布线 146

五、时序仿真 146

六、编程下载 146

七、在线调试 146

八、板级测试 146

第二节 EDA常用设计工具汇总 147

一、常用工具汇总一览表 147

二、HDL前端输入与系统管理软件 147

三、HDL逻辑综合软件 148

四、仿真软件 148

第三节 推荐工具——文本编辑器gVim 148

一、gVim概述 148

二、下载和安装 149

三、gVim 7.3的界面和功能介绍 150

四、gVim常用快捷键和功能 152

第四节 推荐工具——ModelSim仿真工具 154

一、ModelSim概述 154

二、安装 154

三、界面介绍——菜单栏 155

四、界面介绍——工具栏 160

五、界面介绍——工作区 160

六、界面介绍——控制台 160

七、仿真流程 161

第十章 Verilog HDL设计经验 166

第一节 数据类型定义规则 166

一、模块内部定义的变量数据类型定义规则 166

二、模块端口数据类型定义规则 166

第二节 可综合的基础语法 169

一、可综合的Verilog HDL结构 169

二、可综合设计的要点 170

第三节 if-else与case语句的使用分析 170

第四节 阻塞赋值与非阻塞赋值分析 174

一、“=”阻塞赋值 174

二、“<=”非阻塞赋值 174

三、举例说明 174

四、阻塞和非阻塞的使用要点 179

第五节 模块层次化设计 180

一、结构层次化设计 180

二、模块划分的技巧 180

第六节 复位方式的分析 181

一、概述 181

二、同步复位 181

三、异步复位 182

四、异步复位、同步释放的复位方式 185

第七节 同步时序设计的重要性 187

一、异步时序设计 187

二、同步时序设计 187

第八节 如何提高系统速度 188

一、提高系统时钟 188

二、提高系统运行效率 189

第九节 Verilog HDL新增语法 189

一、模块声明扩展 189

二、always块的敏感变量扩展 189

三、always(*) 190

第十节 Coding Style 190

第十一节 Verilog HDL的理解误区 197

第十一章 Verilog设计实例 198

第一节 语法练习实例 198

一、简单组合逻辑电路设计 198

二、简单时序电路设计 199

三、用always块设计组合逻辑电路 199

四、简单状态机设计 200

第二节 Verilog HDL入门设计实例 201

一、点亮LED灯设计 201

二、闪烁LED灯设计 202

三、流水灯设计 202

四、按键控制不同灯的亮灭设计 203

五、有源蜂鸣器电路设计 205

六、数码管动态扫描显示设计 206

七、步进电机控制电路设计 209

八、数字秒表设计 211

九、抢答器设计 216

第三节 Verilog HDL进阶设计实例 225

一、串口通信 225

二、红外遥控进阶实验设计 237

三、利用DS1302芯片进行电子表设计 247

四、利用18B20芯片进行简易温度计设计 265

参考文献 286