数字设计FPGA应用
数字设计FPGA应用
5万+ 人选课
更新日期:2025/04/27
开课时间2025/02/24 - 2025/06/30
课程周期18 周
开课状态开课中
每周学时-
课程简介

1)课程简介

本课程以目前流行的Xilinx 7系列FPGA的开发为主线,全面讲解FPGA的原理及电路设计、Verilog HDL语言及VIVADO的应用,并循序渐进地从组合逻辑、时序逻辑的开发开始,深入到FPGA的基础应用、综合应用和进阶应用。

课程紧密结合数字电路课程,对数字电路的实现进行验证,并提供了数字设计开发的平台。课程的Verilog HDL语言部分和C语言比较类似,因此可以借用C语言的一些知识来快速学习Verilog HDL,但硬件设计和软件是不同的,对其区别性在本课程中会重点强调。

本课程具有理论和实践紧密结合的特点,在内容的设计上既重视基础理论知识的认知过程,又通过由易到难的19个实践逐步提高理论知识及培养开发能力。通过这门课程的学习,可以达到的FPGA开发初级水平。

配套MOOC课程,电子科技大学“数字逻辑设计及应用”,负责人姜书艳。本课程和该课程可同步学习或在该课程之后学习。

 (2)课程的4条主要线索:

第一条线索是工程, 19个由易到难循序渐进的工程实例分散在第三章开始到第七章。例如最简单的工程是多数表决器,就是第三章组合逻辑设计实践的第一个工程,非常适合入门,通过这个工程掌握开发的各个步骤,巩固HDL语言,因此是我的第一个工程。最后一章的工程是实现多通道电压表和简单的示波器,就需要大量的逻辑处理,调用前面工程实现的模块和IP,最后为了调试加入的VIVADO内置逻辑分析仪解决调试方面的问题,难度与一般的工程应用接轨。

第二条线索是工程Verilog HDL的学习。在第二章是关于Verilog HDL的基础内容,虽然精简但是包含了所有核心的内容。读者完全通过只学习本课程中Verilog HDL部分就能完成所有的基础的FPGA设计开发。对于在工作中遇到需要特殊解决的问题,可以通过百度等手段查找资料或参考其他书籍和文献。

第三条线索就是VIVADO的开发,包括了VIVADO安装、工程和文件的组织、综合实现及下载、管脚约束、仿真、电路查看、IP核的使用和设计、VIVADOXADCBRAM的开发、内置逻辑分析仪的使用等等。VIVADO的开发单先简单在第二章的最后部分描述,然后在后续章节的实践中进行的应用,逐步掌握VIVADO

第四条线索是数字电路的应用,因此第三章是组合逻辑设计,第四章是时序逻辑的设计。我认为数字电路是学习FPGA的基础,而通过FPGA实践能够真正掌握数字电路。 

3)课程章节内容:

第一章是FPGA的原理和电路设计,因此后续的开发需要知道管脚的分配,所以将电路设计放在最前面。

第二章是Verilog HDL以及VIVADO的简介。

第三章是组合逻辑设计,包含了我的第一个工程”--多数表决器。

第四章是时序逻辑,通过第四章的学习后,学生如果认真实践,对数电的理解和掌握会加强,对FPGA的开发也有点熟练了。

第五章是实践部分。实现流水灯、数码管动态显示、VGA显示工程、行列按键识别及消抖、电子秒表,音频播放等,进一步提高开发和应用能力。

已更新增加BRAM和 电压表及示波器、图像识别等内容。

第六章是进阶部分

已添加新版考试

 

    

课程大纲
第一章 FPGA基础及电路设计(3-6学时)
1.1 FPGA基础及7系列FPGA基本原理
1.1.1 FPGA概述
1.1.2 FPGA基本逻辑结构
1.1.3  7系列FPGA CLB和IOB
1.1.4  7系列FPGA 的IOB
1.1.5  7系列FPGA及7a35tftg256-1特性
1.2 FPGA电路设计
1.2.1 FPGA的BANK电路
1.2.2 LED驱动电路
1.2.3 拨码开关电路
1.2.4 按键电路
1.2.5 七段数码管驱动电路
1.2.6 VGA显示驱动电路
1.2.7 RS-232驱动电路
1.2.8 配置电路
1.2.9 XADC接口和扩展接口
第二章 Verilog HDL语言与VIVADO(6-8学时)
2.1 Verilog HDL基本结构
2.1.1 一个简单的组合逻辑实例
2.1.2 一个简单的时序逻辑实例
2.1.3 Verilog HDL结构要求
2.2 数据类型及变量、常量
2.2.1 逻辑值和常量
2.2.2 线网型wire
2.2.3 寄存器类型reg
2.2.4 符号常量
2.2.5 存储器型变量
2.3 运算符
2.3.1 算术运算符
2.3.2 逻辑运算符
2.3.3 按位运算符
2.3.4 关系运算符
2.3.5 等式运算符
2.3.6 缩减运算符
2.3.7 移位运算符
2.3.8 条件运算符和拼接运算符
2.3.9 运算符的优先级
2.4 语句
2.4.1 赋值语句、结构说明语句、阻塞与非阻塞
2.4.2 条件语句
2.4.3 循环语句
2.5 VIVADO初步
2.5.1 VIVADO获取和安装
2.5.2 VIVADO主界面
第三章 组合逻辑电路与VIVADO进阶(6-8学时)
3.1 我的第一个工程—多数表决器
3.1.1多数表决器的分析和逻辑实现
3.1.2多数表决器的工程创建
3.1.3多数表决器的Verilog HDL源文件创建
3.1.4多数表决器的Verilog HDL代码实现及RTL分析
3.1.5综合
3.1.6约束
3.1.7实现
3.2 3-8译码器设计和IP核
3.2.1 译码器的实现
3.2.2 译码器IP核生成
3.3 调用IP核实现多数表决器
3.3.1 使用74x138实现多数表决器的设计
3.3.2 构建新工程并调用IP核
第4章 时序逻辑电路FPGA实现(12学时)
4.1 时钟同步状态机的设计
4.1.1时钟同步状态机及其设计流程
4.1.2时钟同步状态机设计方法构建序列发生器
4.1.2 状态图直接描述法实现序列发生器
4.2 同步计数器74x163的实现
4.3 移位寄存器的实现和应用
4.3.1 74x194的实现
4.3.2 使用74x194IP核实现11001序列发生器
第5章FPGA基本实践(24学时)
5.1 流水灯实践
5.2 数码管动态显示实践
5.3 VGA显示实践
5.4 行列键盘实践
5.5 串行通信实践
5.6 DAC实践
5.7蜂鸣器实践
6.8 BRAM实践
其他实践
第6章 FPGA进阶实践
6.1 基于XADC的电压表的设计
6.1.1XADC基本结构
6.1.2 XADC引I脚和端
6.1.3 XADC状态寄存器
6.1.4 XADC控制寄存器
6.1.5XADC操作模式和时序
6.1.6电压表成果展示
6.1.7XADC的IP核配置核模块生成