Learn FPGA Design With VHDL (Intel/Altera)

所在平台: Udemy

课程主页: https://www.udemy.com/course/learn-fpga-design-with-vhdl/

课程评论:没有评论

第一个写评论        关注课程

课程简介

课程名称:使用VHDL学习FPGA设计(Intel/Altera) 课程概述: 本课程面向希望进入FPGA开发领域的学生和工程师,使用VHDL没有先验知识的假设,因此将从基础知识开始。学员需具备数字电子的基本知识,包括逻辑门和触发器。 课程总结: 本课程详细讲解VHDL语言,并通过大量逐步增加复杂性的有趣项目来巩固所学知识。在讲座之间,我们将完成多个项目,包括编写测试平台并实现若干针对UART项目的测试。课程还将深入介绍Intel Quartus软件,并讲解如何使用ModelSim模拟测试平台。 项目内容(在Cyclone IV开发板上实现和测试): 1. 读取开关输入并驱动LED输出 2. 简单状态机响应用户输入并驱动多个LED 3. 同步和去抖动开关输入 4. 生成PWM输出 5. 设计移位寄存器 6. 用于计数按钮按压次数的四位七段显示器 7. UART模块及状态机,用于通过RS232从PC回显接收到的字符 Intel Quartus软件内容: 1. 创建和编译新项目 2. 执行引脚分配 3. Quartus IP目录基础介绍 4. 使用USB Blaster通过JTAG编程FPGA 5. 使用Quartus网络列表查看器探索设计的硬件实现 6. 理解Quartus Fitter报告以更好地理解资源分配 7. 使用Quartus分配编辑器 8. Quartus设置、选项及优化概述 9. 时序分析器、时序约束及SDC文件基础介绍 Intel ModelSim初学者版软件内容: 1. 创建新ModelSim项目 2. 编写和编译测试平台 3. 运行仿真 4. 使用波形查看器分析结果 课程详细内容: 我们将首先讲解FPGA硬件基础,对于学习VHDL和代码在硬件上的实现至关重要。接下来详细讲解VHDL语言的各个方面,如信号与数据类型、关键字与操作符、并发与顺序语句、实体与架构等,使学员能够开发复杂的FPGA设计,并掌握基本的编程技巧。 随后,我们将探索VHDL的层次设计以及良好的FPGA设计实践,以避免常见错误。学员将学习如何编写测试平台,对设计进行验证,最后设计一个由状态机控制的UART模块。该项目将涉及多设计单元的分层设计,确保学员能独立完成FPGA设计和验证。 整体而言,本课程将为学员提供扎实的FPGA设计和VHDL编程基础,使他们能够在实际硬件上实现设计,并解决实际应用中的问题。

课程评论(0条)

课程详情

Course Audience:This course is aimed at students & engineers who want to get into the field of FPGA development using VHDL. No prior knowledge in VHDL/FPGA is assumed so we will start from the very basics. Students should have a basic knowledge of digital electronics including logic gates and flip-flops.Course Summary:This course covers the VHDL language in detail. In between lectures, we will complete a number of fun projects (please see below) with increasing complexity to consolidate the knowledge we have gained during the course. We will go through how to write Test Benches and we will implement a number of Test Benches to verify the UART project. We cover the Intel Quartus software in detail and also go through how to simulate Test Benches using using ModelSim.Projects (Implemented and Tested On a Cyclone IV Development Board):1. Reading a switch input and driving an LED output2. Simple State Machine which reacts to user input and drives a number of LEDs3. Synchronising and de-bouncing a Switch Input.4. Generating a PWM output.5. Designing a Shift Register.6. 4 Digit 7-Segment display for counting the number of push button activations7. UART module & State machine for echoing back characters received from a PC over RS232Intel Quartus Softare:1. Creating & Compiling a new project 2. Performing pin assignments.3. Basic introduction to Quartus IP Catalogue.4. Using the USB Blaster to program the FPGA via JTAG.5. Using the Quartus Net List Viewer to explore the hardware realisation of your design.6. Making sense of Quartus Fitter Reports to better understand resource allocation.7. Using the Quartus Assignment Editor.8. Overview of Quartus settings, options and optimisations.9. Basic introduction to timing analyser, timing constraints and SDC files.Intel ModelSim Starter Edition Software:1. Creating a new ModelSim Project.2. Writing & compiling Test Benches.3. Running simulations.4. Using the Waveform viewer to analyse results.Course Details:We will start by covering the basics of FPGA hardware. This hardware background is vital and as we learn how to write VHDL, we will also refer back to how our code gets implemented in hardware. In the second section of the course, we will cover the VHDL language in detail. We will cover all the aspects (Signals & Data types, VHDL Keywords & Operators, Concurrent & Sequential statements, Entity & Architecture, Process Block, Generics, Constants & Variables, Records, Component Instantiation, Procedures & Functions, Packages & Libraries and Type Conversions) that are needed to be able to develop complex and advanced FPGA designs. There will be plenty of simple examples to allow you to learn the VHDL language quickly and enable you to confidently write your own code. We will also look at how most of the VHDL language maps to hardware on the actual device.With this strong foundation in the language, we will look at how to build fundamental FPGA blocks starting from Tri-State Drivers, Registers, Comparators, Multiplexers, Shift Registers, Serialisers, RAMs & ROMs and Finite State Machines. We will look at how to code all of the above structures and also explore how these are implemented in real hardware in the FPGA.In the next section, we will look at hierarchical design with VHDL. This design practise is used when creating complex designs having more than one design unit. We will explore this concept from an example to see how design units can be joined together to form a hierarchical design.In the next section we will explore good FPGA design practise. From my experience most beginners in FPGA design make common mistakes and fall into certain traps. Some of these can lead to issues that are very difficult to debug and fix. The idea behind this section is to make you aware of these common pitfalls and explore ways in which we can circumvent these. We will talk about Latches, Generated Clocks, Clock & Data Gating, Benefits of a Register Rich Design, Benefits of Synchronous Design, Dealing With Asynchronous Inputs, Clock Domain Crossing, Designing for Reuse, Signal Initialisation, Synchronising Reset De-assertion, Routing Clocks & Resets and Using PLLs.By this stage, we would have covered a lot of the theory and also completed a number of design projects so you should have the knowledge to create your own FPGA designs independently. We will now cover design verification. This section will explore how to write test benches. We will explore aspects of VHDL coding styles for writing test benches. We will discuss how to perform file IO for creating input vectors and to store output results. We will also discuss self-checking test benches to help automate the test process.In the final section of the course, we will design a UART module controlled by a State machine. We will write VHDL code to implement the UART and state machine from scratch. We will use a hierarchical design approach where we will have a number of design units. We will write test benches for each design unit and perform simulations (using ModelSim) for verification. We will bring all design units together into our top level VHDL module and do a system level simulation. Next, we will explore how to create & configure a project in Intel Quartus to implement our design on our FPGA development board. We will look at how to do the pin assignments and also very briefly look at applying very basic timing constraints to get our design to pass. We will then test the design on real hardware to make sure our design works as intended.

课程标签

0人关注该课程

主题相关的课程