FPGA编程从零开始使用Verilog

FPGA编程从零开始使用Verilog"

作者:[美]西蒙·蒙克(SimonMonk)著李杨别志松译
ISBN:9787302501343
定价:¥49.80
字数:千字
页数:
出版时间:2018.07.01
开本:
版次:1-5
装帧:
出版社:清华大学出版社
简介

电子电路大师Simon Monk撰写的《FPGA编程从零开始 使用Verilog》一书指导你开始使用Mojo、Papilio One和Elbert 2这三种流行的FPGA开发板。本书语言风趣,通俗易懂,示例讲解清晰,并提供可下载的示例程序源代码和最终.bit文件。你将从头到尾为大量工程编写指令,包括LED译码器、计时器、单音生成器,甚至是存储器映射的视频显示器!本书既可作为电子产品爱好者的指导手册,也可作为专业开发人员的入门书籍。

前言

前    言

用自己的芯片完成想做的事,岂不是一件乐事?当然,现场可编程门阵列(Field-Programmable Gate Array,FPGA)可让你非常接近这一梦想。FPGA并非为你专门设计的芯片,而是通用芯片,能被配置用来完成你希望做的任何事情。

此外,要配置FPGA,既可绘制原理图,也可使用硬件定义语言Verilog;如果你的设计是成功的,Verilog也能用于生产真正的定制芯片。尽管《FPGA编程从零开始 使用Verilog》也将展示如何使用原理图编辑器进行设计,但《FPGA编程从零开始 使用Verilog》的重点是指导你学习Verilog语言。 

可根据自己的需要多次修改FPGA配置,使其成为原型化设计的优秀工具。如果设计问题浮出水面,你可对设备重新编程,直到消除所有漏洞为止。当你意识到可真正配置FPGA来包含能运行程序的处理器时,这种十分出奇的灵活性就会显现出来。

在《FPGA编程从零开始 使用Verilog》中,你将学习FPGA的一般使用原则,将学习《FPGA编程从零开始 使用Verilog》描述的示例,并在三种最流行的FPGA评估板(Mojo、Papilio One和Elbert 2)上运行这些示例。

尽管从逻辑上讲,微控制器可胜任FPGA能完成的大部分工作,但FPGA的运行速度更快;另外,一些人员发现,相对于实现复杂的算法,描述逻辑门和硬件更简单。你可使用FPGA实现微控制器或其他处理器(以及其他人的工作)。

在其中一种低成本FPGA开发板上使用Verilog编程,可能最令人信服的原因仅在于学习一些新知识,收获一些乐趣!

读者可访问https://github.com/simonmonk/pro-fpgas下载《FPGA编程从零开始 使用Verilog》各章的项目文件,也可扫描封底的二维码下载。

目录

目    录

第1章  逻辑  1

1.1  逻辑门  1

1.1.1  非门  2

1.1.2  与门  3

1.1.3  或门  3

1.1.4  与非门和或非门  4

1.1.5  异或门  5

1.2  二进制  6

1.3  添加逻辑  8

1.4  触发器  9

1.5  移位寄存器  11

1.6  二进制计数器  12

1.7  小结  13

第2章  FPGA  15

2.1  FPGA的工作原理  15

2.2  Elbert 2  17

2.3  Mojo  18

2.4  Papilio  20

2.5  软件设置  22

2.5.1  安装ISE  22

2.5.2  安装Elbert软件  24

2.5.3  安装Mojo软件  25

2.5.4  安装Papilio软件  26

2.6  项目文件  26

2.7  小结  27

第3章  绘制逻辑  29

3.1  数据选择器示例  29

3.1.1  步骤1:创建一个新项目  30

3.1.2  步骤2:创建一个新的原理图  34

3.1.3  步骤3:添加逻辑符号  36

3.1.4  步骤4:连接门  36

3.1.5  步骤5:添加IO标记  37

3.1.6  步骤6:创建用户约束文件  38

3.1.7  步骤7:生成.bit文件  42

3.1.8  步骤8:编写开发板  44

3.1.9  测试结果  46

3.2  一个4位计数器示例  48

3.2.1  绘制原理图  49

3.2.2  实现约束文件  49

3.2.3  测试计数器  52

3.3  小结  52

第4章  Verilog简介  53

4.1  模块  53

4.2  引线、寄存器和总线  54

4.3  并行执行  54

4.4  数字格式  54

4.5  使用Verilog编写的数据选择器  55

4.6  使用Verilog编写的计数器  59

4.7  同步逻辑  62

4.8  小结  62

第5章  模块化Verilog  63

5.1  七段译码器  63

5.2  按钮去抖  68

5.3  复用七段显示器和计数器  73

5.3.1  项目结构  74

5.3.2  display_7_seg  76

5.3.3  counter_7_seg  79

5.3.4  用户约束文件  81

5.3.5  导入模块源代码  82

5.3.6  设置顶层模块  82

5.3.7  3数位版本  83

5.3.8  测试  83

5.4  小结  84

第6章  计时器示例  85

6.1  状态机  85

6.2  状态机设计  87

6.3  硬件  88

6.3.1  你之所需  88

6.3.2  构建  88

6.4  模块  90

6.5  用户约束文件  91

6.6  计时器模块  92

6.6.1  输入和输出  92

6.6.2  按压按钮  92

6.6.3  报警器实例  93

6.6.4  建模时间和显示  93

6.6.5  状态机实现  94

6.6.6  任务  96

6.7  测试  98

6.8  小结  98

第7章  PWM和伺服电机  99

7.1  脉冲宽度调制  99

7.2  PWM模块  100

7.2.1  PWM模块输入和输出  101

7.2.2  PWM测试模块  101

7.2.3  试一试  104

7.3  伺服电机  104

7.4  硬件  105

7.4.1  你之所需  105

7.4.2  构建  106

7.5  伺服模块  109

7.6  小结  112

第8章  音频  113

8.1  单音生成  113

8.2  Mojo的音频输出  115

8.3  通用音/频发生器  116

8.3.1  单音模块  116

8.3.2  tone_tester模块  118

8.3.3  测试  118

8.4  播放音频文件  121

8.4.1  音频文件  121

8.4.2  RAM  122

8.4.3  wav_player模块  122

8.4.4  测试  125

8.4.5  准备自己的音频  125

8.5  小结  128

第9章  视频  129

9.1  VGA  129

9.2  VGA定时同步  132

9.3  绘制矩形  133

9.3.1  VGA模块  134

9.3.2  VGA和Elbert 2  137

9.4  使物体运动  138

9.5  存储器映射显示  141

9.6  小结  143

第10章  扩展内容  145

10.1  仿真  145

10.2  更深层次的内容  146

10.3  核和软处理器  147

10.4  更多Papilio内容  147

10.5  更多Mojo内容  149

10.6  小结  150

附录A  资源  151

附录B  Elbert 2参考  155

附录C  Mojo参考  165

附录D  Papilio One参考  173

作者简介

编辑推荐

    探索基本的数字电路和数字逻辑

? 学习Mojo、Papilio One和Elbert 2开发板的特性

? 设置计算机并深入学习Verilog编程

? 了解ISE Design Suite和用户约束文件

? 理解和应用模块Verilog编程方法

? 使用开发板GPIO端口生成电子脉冲

? 控制伺服电机并创建自己的声音

? 附接VGA TV或计算机显示器并生成视频

作者寄语

Simon Monk拥有控制和计算机科学学士学位,以及软件工程博士学位。Simon是一名全职作家,迄今已撰写多本书籍,包括Programming Arduino、Programming Raspberry Pi和Hacking Electronics,并参与撰写Practical Electronics for Inventors。Simon的个人网站是MonkMakes.com,Twitter是@simonmonk2。

电子资料

www.luweidong.cn

下一个