求真百科欢迎当事人提供第一手真实资料,洗刷冤屈,终结网路霸凌。

FPGAVerilog开发实战指南查看源代码讨论查看历史

事实揭露 揭密真相
跳转至: 导航搜索

来自 孔夫子网 的图片

FPGAVerilog开发实战指南》,副标题:基于Intel Cyclone IV(基础篇,刘火良 杨森 张硕 著,出版社: 机械工业出版社。

截至2022年,机械工业出版社年出版新书近2700种,年引进和输出版权总量近800种,产品横跨科技出版、教育出版、大众出版三大板块,覆盖机械、电工电子、汽车、建筑、计算机、经管、心理[1]、生活、科普、艺术设计、文创等十多个专业领域,以及高等教育[2]职业教育、技能教育等不同教育层次。

内容简介

本书包括32个章节,按照先易后难的顺序进行讲解,分为硬件说明篇、软件安装篇、基础入门篇和学习强化篇四大板块。从基础的硬件介绍、软件安装到基本电路开发,手把手教学。考虑到大多数学习者为FPGA初学者,所以本书把操作中的每个步骤都尽可能详细的介绍和描述,并附上大量的截图以供学习者实操参考。

目录

前言

硬件说明篇

  • 1章 初识FPGA 2

1.1 FPGA是什么 2

1.1.1 名词解释 2

1.1.2 FPGA发展历程 2

1.2 FPGA的技术优势 7

1.3 FPGA的应用方向 9

  • 2章 硬件开发平台详解 15

2.1 开发板简介 15

2.2 国内外FPGA产业现状 19

2.3 选择Cyclone IV的理由 20

2.4 Cyclone系列FPGA芯片的命名方法 23

2.5 FPGA内部硬件结构简介 24

2.6 FPGA内部硬件结构与代码的关系 33

2.6.1 I/O的映射 34

2.6.2 组合逻辑映射 43

2.6.3 时序逻辑映射 45

2.6.4 指定PLL的映射位置 56

软件安装篇

第3章 Quartus软件和USB-Blaster驱动安装 66

3.1 Quartus II_13.0软件的安装 66

3.2 添加器件库 72

3.3 USB-Blaster驱动器的安装 76

第4章 ModelSim软件安装 80

第5章 Visio和Notepad++软件安装 87

5.1 Visio软件的安装 87

5.2 Notepad++软件的安装 93

第6章 实现Quartus和ModelSim、Notepad++软件关联 99

6.1 Quartus II_13.0和ModelSim_10.5se软件的关联 99

6.2 Quartus II_13.0和Notepad++软件的关联 101

基础入门篇

第7章 初识Verilog HDL 106

7.1 为什么选择用Verilog HDL开发FPGA 106

7.1.1 Verilog HDL和VHDL的比较 106

7.1.2 Verilog HDL和C语言的比较 107

7.2 Verilog HDL语言的基础语法 107

7.2.1 标识符 107

7.2.2 逻辑值 108

7.2.3 常量 108

7.2.4 变量 109

7.2.5 参数 109

7.2.6 赋值语句 110

7.2.7 注释 110

7.2.8 关系运算符 111

7.2.9 归约运算符、按位运算符和逻辑运算符 111

7.2.10 移位运算符 112

7.2.11 条件运算符 112

7.2.12 优先级 112

7.2.13 位拼接运算符 113

7.2.14 if-else与case 113

7.2.15 inout双向端口 115

7.2.16 Verilog语言中的系统任务和系统函数 116

7.3 章末总结 123

第8章 点亮LED灯 124

8.1 正确的设计流程 124

8.2 工程文件夹的管理 124

8.3 一个完整的设计过程 126

8.3.1 功能简介 126

8.3.2 硬件资源 126

8.3.3 新建一个Visio文件及其配置 127

8.3.4 模块和端口信号划分 130

8.3.5 波形设计 131

8.3.6 新建工程 133

8.3.7 RTL代码的编写 140

8.3.8 代码的分析和综合 143

8.3.9 查看RTL视图 144

8.3.10 Testbench的原理 145

8.3.11 Testbench代码的编写 147

8.3.12 仿真设置 151

8.3.13 设置NativeLink 153

8.3.14 打开ModelSim观察波形 155

8.3.15 仿真波形分析 162

8.3.16 引脚约束 162

8.3.17 全编译 165

8.3.18 通过JTAG将网表下载到开发板 168

8.3.19 未使用引脚的默认设置 172

8.3.20 程序的固化 174

8.4 章末总结 185

第9章 简单组合逻辑 186

9.1 理论学习 186

9.1.1 多路选择器 186

9.1.2 译码器 186

9.1.3 半加器 187

9.2 实战演练—多路选择器 187

9.2.1 实验目标 187

9.2.2 硬件资源 187

9.2.3 程序设计 188

9.3 实战演练—译码器 198

9.3.1 实验目标 198

9.3.2 程序设计 198

9.4 实战演练—半加器 205

9.4.1 实验目标 205

9.4.2 硬件资源 205

9.4.3 程序设计 206

9.5 章末总结 211

  • 10章 层次化设计 213

10.1 理论学习 213

10.2 实战演练 215

10.2.1 实验目标 215

10.2.2 硬件资源 215

10.2.3 程序设计 215

10.3 章末总结 225

  • 11章 避免Latch的产生 226

11.1 Latch是什么 226

11.2 Latch的危害 226

11.3 几种产生Latch的情况 226

11.4 章末总结 232

  • 12章 时序逻辑的开始——寄存器 234

12.1 理论学习 234

12.2 实战演练 234

12.2.1 实验目标 234

12.2.2 硬件资源 235

12.2.3 程序设计 236

12.3 章末总结 243

  • 13章 阻塞赋值与非阻塞赋值 245

13.1 理论学习 245

13.2 阻塞赋值 246

13.3 非阻塞赋值 248

13.4 章末总结 251

  • 14章 计数器 252

14.1 理论学习 252

14.2 实战演练 252

14.2.1 实验目标 252

14.2.2 硬件资源 252

14.2.3 程序设计 253

14.3 章末总结 262

  • 15章 分频器 263

15.1 理论学习 263

15.2 实战演练一 263

15.2.1 实验目标 263

15.2.2 硬件资源 264

15.2.3 程序设计 264

15.3 实战演练二 270

15.3.1 实验目标 270

15.3.2 硬件资源 271

15.3.3 程序设计 271

15.4 章末总结 278

  • 16章 按键消抖模块的设计与验证 279

16.1 理论学习 279

16.1.1 硬件消抖 280

16.1.2 软件消抖 281

16.2 实战演练 281

16.2.1 实验目标 281

16.2.2 程序设计 281

16.3 章末总结 288

  • 17章 流水灯 289

17.1 理论学习 289

17.2 实战演练 289

17.2.1 实验目标 289

17.2.2 硬件资源 289

17.2.3 程序设计 290

17.3 章末总结 294

  • 18章 状态机 295

18.1 理论学习 295

18.2 实战演练一 297

18.2.1 实验目标 297

18.2.2 程序设计 297

18.3 实战演练二 308

18.3.1 实验目标 309

18.3.2 程序设计 309

18.4 章末总结 316

  • 19章 数码管的动态显示 318

19.1 理论学习 318

19.1.1 数码管简介 318

19.1.2 八段数码管 318

19.1.3 74HC595简介 321

19.1.4 数码管动态显示简介 323

19.2 实战演练 324

19.2.1 实验目标 324

19.2.2 硬件资源 324

19.2.3 程序设计 325

19.3 章末总结 353

  • 20章 快速开发的法宝——IP核 354

20.1 理论学习 354

20.2 实战演练 358

20.2.1 IP核之PLL 359

20.2.2 IP核之ROM 376

20.2.3 IP核之RAM 406

20.2.4 IP核之FIFO 439

20.3 章末总结 463

学习强化篇

  • 21章 串口RS-232 466

21.1 理论学习 466

21.1.1 串口简介 466

21.1.2 RS-232信号线 467

21.1.3 RS-232通信协议简介 469

21.2 实战演练 470

21.2.1 实验目标 470

21.2.2 硬件资源 470

21.2.3 程序设计 472

21.3 章末总结 504

  • 22章 使用SignalTap II嵌入式逻辑分析仪在线调试 506

22.1 逻辑分析仪简介 506

22.2 SignalTap II的用法 508

  • 23章 简易频率计的设计与验证 528

23.1 理论学习 528

23.2 实战演练 529

23.2.1 实验目标 529

23.2.2 硬件资源 529

23.2.3 程序设计 530

23.3 章末总结 544

  • 24章 简易DDS信号发生器的设计与验证 545

24.1 理论学习 545

24.2 实战演练 548

24.2.1 实验目标 548

24.2.2 硬件资源 548

24.2.3 程序设计 551

24.3 章末总结 574

  • 25章 简易电压表的设计与验证 575

25.1 理论学习 575

25.2 实战演练 576

25.2.1 实验目标 576

25.2.2 硬件资源 577

25.2.3 程序设计 579

25.3 章末总结 591

  • 26章 VGA显示器驱动设计与验证 592

26.1 理论学习 592

26.1.1 VGA简介 592

26.1.2 VGA接口及引脚定义 593

26.1.3 VGA显示原理 595

26.1.4 VGA时序标准 596参数 598

26.2 实战演练 600

26.2.1 实验目标 600

26.2.2 硬件资源 600

26.2.3 程序设计 601

26.3 章末总结 623

  • 27章 HDMI显示器驱动设计与验证 624

27.1 理论学习 624

27.1.1 HDMI简介 624

27.1.2 HDMI接口及引脚定义 625

27.1.3 HDMI显示原理 628

27.2 实战演练 631

27.2.1 实验目标 631

27.2.2 硬件资源 631

27.2.3 程序设计 632

27.3 章末总结 655

  • 28章 TFT-LCD液晶屏驱动设计与验证 656

28.1 理论学习 656

28.1.1 TFT-LCD简介 656

28.1.2 RGB接口TFT-LCD时序 658

28.1.3 RGB接口TFT-LCD分辨率 660

28.2 实战演练 660

28.2.1 实验目标 660

28.2.2 硬件资源 661

28.2.3 程序设计 662

28.3 章末总结 683

  • 29章 FIFO求和实验 684

29.1 理论学习 684

29.2 实战演练 685

29.2.1 实验目标 685

29.2.2 程序设计 685

29.3 章末总结 701

第30章 基于Sobel算法的边缘检测设计与实现 702

30.1 理论学习 702

30.1.1 边缘检测 702

30.1.2 Sobel算法简介 702

30.2 实战演练 703

30.2.1 Sobel算法实现 703

30.2.2 实验目标 703

30.2.3 硬件资源 704

30.2.4 程序设计 704

30.3 章末总结 730

第31章 基于SPI协议的Flash驱动控制 731

31.1 理论学习 731

31.1.1 SPI物理层 731

31.1.2 SPI协议层 733

31.2 实战演练 735

31.2.1 SPI-Flash全擦除实验 736

31.2.2 SPI-Flash页写实验 755

31.2.3 SPI_Flash读数据实验 771

31.3 章末总结 793

第32章 基于I2C协议的EEPROM驱动控制 794

32.1 理论学习 794

32.1.1 I2C物理层 794

32.1.2 I2C协议层 795

32.2 实战演练 802

32.2.1 实验目标 802

32.2.2 硬件资源 802

32.2.3 程序设计 803

32.3 章末总结 844

后记 845

参考文献