
本书以FPGA高级开发系统为平台,安排了12个实验,所有实验均详细介绍了实验内容、实验原理,并且都有详细的步骤和源代码,以确保读者能够参照本书内容顺利完成实验。每章的最后都安排了任务,作为本章实验的延伸和拓展。本书中的程序均按照《Verilog HDL程序设计规范》(LY-STD010—2019)来编写,所有实验均基于模块化设计,以便于将模块应用在不同的项目和产品中。 本书配有丰富的资料包,包括FPGA高级开发系统原理图、例程、软件包、硬件包,以及配套的PPT、视频等。这些资料会持续更新,下载链接可通过微信公众号“卓越工程师培养系列”获取。
FPGA系统设计是电子信息工程、通信工程、电子设计及自动化、生物医学工程、医疗器械工程、康复工程等专业的核心课程,读者既要掌握FPGA设计的基本技能,还要将这些技能熟练应用于各种电子技术领域。要想成为一名优秀的FPGA系统设计工程师,还需要进一步掌握软硬件联合调试的技能,具备模块化设计思想,能够从宏观角度进行系统架构设计,并灵活地将各种技术规范融入设计中。 本书是一本介绍Xilinx Spartan-6系列FPGA设计的教程,从严格意义上讲,本书也是一本实训手册。本书以FPGA高级开发系统为平台,安排了12个实验,所有实验均详细介绍了实验内容、实验原理,并且都有详细的实验步骤和源代码,以确保读者能够顺利完成实验。每章的最后都安排了任务,作为本章实验的延伸和拓展。 目前主流FPGA的功能比以往强大得多,要想掌握其知识点,就必须花费大量的时间和精力熟悉FPGA的集成开发环境、程序下载工具、仿真综合工具等。为了减轻初学者查找资料和熟悉开发工具的负担,能够将更多的精力聚集在实践环节,以快速入门,本书将每个实验涉及的知识点汇总在“实验原理”中,将FPGA集成开发环境、程序下载工具、仿真综合工具等的使用方法穿插于各章节中。这样,读者就可以通过本书和FPGA高级开发系统,秉承“勇于实践+深入思考”的思想,轻松踏上学习FPGA之路,在实践过程中逐渐掌握各种知识和技能。 本书的特点如下。 (1)以FPGA高级开发系统为实践载体,FPGA选取XC6SLX16芯片。这主要考虑到Xilinx是目前市面上使用最为广泛的FPGA芯片厂商之一,并且该系列的FPGA芯片具有成本低、使用成熟、逻辑规模小、配套资料多、开发板种类多等优势。 (2)详细介绍12个实验所涉及的知识点,未涉及的内容尽量不予介绍。以便于初学者快速掌握FPGA系统设计的核心要点。 (3)将各种规范贯穿于整个FPGA系统设计过程,如ISE开发环境参数设置、工程和文件命名规范、版本规范、软件设计规范等。 (4)所有实验严格按照统一的工程架构设计,每个子模块按照统一标准设计。 (5)配有丰富的资料包,包括FPGA高级开发系统原理图、例程、软件包、硬件包,以及配套的PPT、视频等,这些资料会持续更新,下载链接可通过微信公众号“卓越工程师培养系列”获取。 本书中的程序严格按照《Verilog HDL程序设计规范》(LY-STD010—2019)来编写。设计规范要求每个模块的实现必须有清晰的模块信息,模块信息包括模块名称、模块摘要、当前版本、模块作者、完成日期、模块内容和注意事项。 钟世达、张沛昌、袁涛和张胜利对本书的编写思路和大纲进行了总体策划,指导全书的编写,对全书进行统稿,并参与了部分章节的编写;董磊、刘宇林、黄荣祯、彭芷晴负责本书所有实验例程编写及验证,并且参与了本书部分内容的编写;周小安对全书进行了审核;本书涉及的实验基于深圳市乐育科技有限公司的LY-SPTN6M型FPGA高级开发系统,该公司提供了充分的技术支持;本书的出版还得到了电子工业出版社的鼎力支持,张小乐编辑为本书的顺利出版做了大量工作。在此一并致以衷心的感谢! 由于编者水平有限,书中难免有不成熟和错误的地方,恳请读者批评指正。读者反馈发现的问题、获取相关资料或遇实验平台技术问题,可发电子邮件至深圳市乐育科技有限公司官方邮箱:ExcEngineer@163.com。
第1章 FPGA和开发环境 1 1.1 FPGA基础概念 1 1.2 FPGA开发流程 6 1.3 XC6SLX16芯片介绍 7 1.4 FPGA开发工具的安装和配置 9 1.5 Verilog HDL语法基础 16 1.6 FPGA高级开发系统简介 23 1.7 FPGA高级开发系统可以开展的部分 实验 25 本章任务 25 本章习题 25 第2章 分频器实验 27 2.1 实验内容 27 2.2 实验原理 27 2.3 实验步骤 29 本章任务 48 本章习题 49 第3章 流水灯实验 50 3.1 实验内容 50 3.2 实验原理 50 3.3 实验步骤 52 本章任务 56 本章习题 56 第4章 独立按键去抖实验 57 4.1 实验内容 57 4.2 实验原理 57 4.3 实验步骤 61 本章任务 67 本章习题 67 第5章 七段数码管显示实验 68 5.1 实验内容 68 5.2 实验原理 68 5.3 实验步骤 73 本章任务 77 本章习题 77 第6章 矩阵键盘扫描实验 78 6.1 实验内容 78 6.2 实验原理 78 6.3 实验步骤 85 本章任务 90 本章习题 91 第7章 OLED显示实验 92 7.1 实验内容 92 7.2 实验原理 92 7.3 实验步骤 96 本章任务 105 本章习题 105 第8章 串口通信实验 106 8.1 实验内容 106 8.2 实验原理 106 8.3 实验步骤 113 本章任务 129 本章习题 129 第9章 读写外部EEPROM实验 130 9.1 实验内容 130 9.2 实验原理 130 9.3 实验步骤 138 本章任务 147 本章习题 148 第10章 读写外部Flash实验 149 10.1 实验内容 149 10.2 实验原理 149 10.3 实验步骤 156 本章任务 165 本章习题 165 第11章 SHT20温/湿度测量实验 166 11.1 实验内容 166 11.2 实验原理 166 11.3 实验步骤 170 本章任务 177 本章习题 177 第12章 DAC实验 178 12.1 实验内容 178 12.2 实验原理 178 12.3 实验步骤 188 本章任务 194 本章习题 194 第13章 ADC实验 195 13.1 实验内容 195 13.2 实验原理 195 本章任务 203 本章习题 203 附录A FPGA开发常用模块引脚约束 204 附录B 《Verilog HDL程序设计规范》 (LY-STD010 —2019)简介 207 附录C ASCII码表 214 参考文献 215