教程演示🔗
你会学到什么
-
我们将通过大量示例项目介绍 VHDL 语言和语法
-
将 VHDL 代码与硬件实现相关联
-
使用 VHDL 创建 FPGA 构建块
-
使用 VHDL 创建状态机
-
从头开始创建复杂的 FPGA 设计
-
突出良好的设计实践和常见的陷阱
-
用 VHDL 编写测试台
-
使用 ModelSim 仿真和调试 FPGA 设计
-
使用Intel Quartus软件编译和实现工程
-
使用 Quartus 执行管脚分配
-
使用 USB Blaster 对 FPGA 进行编程
-
使用 Quartus Netlist Viewer 查看硬件实现
-
理解 Quartus Fitter 报告
-
第四作业编辑
-
Quartus 设置、选项和优化
-
Quartus Timing Analyzer 基本介绍
-
实现一个通过 RS232 与 PC 通信的 UART 项目
-
实施状态机项目
-
实现 4 位 7 段显示器以打印计数值
-
实施项目以创建 PWM 输出
-
实现移位寄存器来驱动 LED
-
实施一个项目以涵盖开关去抖动和同步
要求
-
数字电子和逻辑门基础
-
二进制和十六进制数字系统的知识
描述
课程听众:
本课程面向希望使用 VHDL进入 FPGA 开发领域的学生和工程师。假设没有 VHDL/FPGA 的先验知识,因此我们将从最基础的知识开始。
学生应该具备数字电子学的基本知识,包括逻辑门和触发器。
课程总结:
本课程详细介绍了 VHDL 语言。在讲座之间,我们将完成一些有趣的项目(请参见下文),这些项目的复杂性不断增加,以巩固我们在课程中获得的知识。我们将介绍如何编写测试台,我们将实施一些测试台来验证 UART 项目。我们详细介绍了英特尔 Quartus软件,还介绍了如何使用ModelSim模拟测试台。
项目(在 Cyclone IV 开发板上实施和测试):
1.读取开关量输入并驱动LED输出
2. 响应用户输入并驱动多个 LED 的简单状态机
3. 开关输入的同步和去抖动。
4. 产生 PWM 输出。
5. 设计移位寄存器。
6. 用于计算按钮激活次数的 4 位 7 段显示器
7. UART 模块和状态机,用于回显通过 RS232 从 PC 接收到的字符
英特尔 Quartus 软件:
1.创建和编译一个新项目
2. 执行管脚分配。
3. Quartus IP Catalog基本介绍。
4. 使用USB Blaster通过JTAG 对FPGA 进行编程 。
5. 使用Quartus 网络列表查看器探索您设计的硬件实现。
6. 理解Quartus Fitter Reports以更好地理解资源分配。
7. 使用Quartus Assignment Editor。
8. Quartus 设置、 选项和优化概述。
9.时序分析器、时序约束和SDC文件的基本介绍。
英特尔 ModelSim 入门版软件:
1. 创建一个新的 ModelSim 项目。
2.编写和编译测试平台。
3.运行模拟。
4. 使用波形查看器分析结果。
课程详情 :
我们将从介绍FPGA 硬件的基础知识开始。这种硬件背景是至关重要的,在我们学习如何编写 VHDL 时,我们还将回顾我们的代码是如何在硬件中实现的。
在课程的第二部分,我们将详细介绍 VHDL 语言。我们将涵盖所有方面(信号和数据类型、VHDL 关键字和运算符、并发和顺序语句、实体和体系结构、过程块、泛型、常量和变量、记录、组件实例化、过程和函数、包和库以及类型转换) 需要能够开发复杂和先进的 FPGA 设计。将提供大量简单示例,让您快速学习 VHDL 语言并自信地编写自己的代码。我们还将了解大部分 VHDL 语言如何映射到实际设备上的硬件。
有了这个坚实的语言基础,我们将研究如何构建基本的 FPGA 模块,从三态驱动器、寄存器、比较器、多路复用器、移位寄存器、串行器、RAM 和 ROM 以及有限状态机开始。我们将研究如何对上述所有结构进行编码,并探讨如何在 FPGA 的实际硬件中实现这些结构。
在下一节中,我们将研究使用 VHDL 进行分层设计。当创建具有多个设计单元的复杂设计时,会使用这种设计实践。我们将从一个示例中探讨这个概念,以了解如何将设计单元 连接在一起以形成分层设计。
在下一节中,我们将探讨良好的 FPGA 设计实践。根据我的经验,大多数 FPGA 设计的初学者都会犯常见的错误并陷入某些陷阱。其中一些会导致很难调试和修复的问题。本节背后的想法是让您了解这些常见的陷阱并探索我们可以规避这些的方法。我们将讨论锁存器、生成时钟、时钟和数据门控、寄存器丰富设计的好处、同步设计的好处、处理异步输入、时钟域交叉、重用设计、信号初始化、同步复位取消断言、路由时钟& 复位和使用 PLL。
到这个阶段,我们已经涵盖了很多理论并完成了一些设计项目,因此您应该具备独立创建自己的 FPGA 设计的知识。我们现在将介绍设计验证。本节将探讨如何编写测试平台。我们将探讨用于编写测试平台的 VHDL 编码风格的各个方面。我们将讨论如何执行文件 IO 以创建输入向量和存储输出结果。我们还将讨论自检测试平台,以帮助自动化测试过程。
在课程的最后一部分,我们将设计一个 由状态机控制的 UART 模块。我们将从头开始编写 VHDL 代码来实现 UART 和状态机。我们将使用分层设计方法,其中我们将有许多设计单元。我们将为每个设计单元编写测试台并进行仿真(使用ModelSim)进行验证。我们会将所有设计单元整合到我们的顶级 VHDL 模块中,并进行系统级仿真。接下来,我们将探索如何在 Intel Quartus 中创建和配置项目以在我们的平台上实现我们的设计FPGA开发板。我们将了解如何进行引脚分配,并非常简要地了解应用非常基本的时序约束以使我们的设计通过。然后,我们将在真实硬件上测试设计,以确保我们的设计按预期工作。
本课程适合谁:
- 正在寻找 RTL 工程师或设计工程师职业的研究生
- 想进入FPGA设计领域的电子工程师/爱好者
- 那些对 FPGA 开发感兴趣并正在寻找入门课程的人
- 任何即将开始他们的第一个 VHDL 设计项目的人