FPGA computing systems: A Bird’s Eye View

所在平台: Coursera

课程主页: https://www.coursera.org/learn/fpga-computing-systems

课程评论:没有评论

第一个写评论        关注课程

课程简介

课程名称:FPGA计算系统:全景视角 课程概述:随着计算系统复杂性的急剧增加,程序员面临着如何高效利用极其强大的计算系统的挑战。这些系统的调试需要时间和相当高的技能,而手动调整系统在快速变化和不可预测的环境中显然不可行。因此,能够使系统自动适应不断变化的环境是十分理想的。该课程将分析这一问题,并采用全新的方法,介绍软件和硬件系统在执行过程中如何进行调整,同时引入现场可编程门阵列(FPGA)技术及其重新配置的概念。 课程大纲: 1. **适应计算系统的全景视角** - 介绍现代计算系统的复杂性,讨论依赖人类干预调节系统的局限,强调自动适应能力的重要性。 2. **可重构计算简介** - 讲解可重构计算的基本概念,比较通用处理器(GPP)和应用特定集成电路(ASIC)的优势,阐述可重构计算的灵活性与其缺乏标准计算模型的劣势。 3. **可重构计算与FPGA** - 从上世纪80年代中期开始,由于FPGA技术的发展,可重构计算逐渐受到关注。该模块详细解析FPGA技术,涵盖基本逻辑组件、编程互连以及动态执行与配置的能力。 4. **FPGA配置示例** - 介绍FPGA设计工具如何为用户提供基于数字设计概念的设计环境,并简要说明设计过程中的一些复杂步骤。模块通过示例演示如何从电路描述到FPGA配置所需的比特流。 通过本课程,学员将能理解FPGA如何在快速变化的环境中提供高适应性,并掌握可重构计算的基本原理与应用。

课程大纲

Name:A Bird's Eye View on Adaptive Computing Systems

Description:Nowadays the complexity of computing systems is skyrocketing. Programmers have to deal with extremely powerful computing systems that take time and considerable skills to be instructed to perform at their best. It is clear that it is not feasible to rely on human intervention to tune a system: conditions change frequently, rapidly, and unpredictably. It would be desirable to have the system automatically adapt to the mutating environment. This module analyzes the stated problem, embraces a radically new approach, and it introduces how software and hardware systems ca ben adjusted during execution. By doing this, we are going to introduce the Field Programmable Gate Arrays (FPGA) technologies and how they can be (re)configured.

Name:An introduction to Reconfigurable Computing

Description:Traditionally, computing was classified into General-Purpose Computing performed by a General-Purpose Processor (GPP) and Application-Specific Computing performed by an Application-Specific Integrated Circuit (ASIC). As a trade-off between the two extreme characteristics of GPP and ASIC, reconfigurable computing has combined the advantages of both. On one hand reconfigurable computing can have better performance with respect to a software implementation but paying this in terms of time to implement. On the other hand a reconfigurable device can be used to design a system without requiring the same design time and complexity compared to a full custom solution but being beaten in terms of performance. The main advantage of a reconfigurable system is its high flexibility, while its main disadvantage is the lack of a standard computing model. In this module we are presenting a first definition of reconfigurable computing, describing the rationale behind it and introducing how this field has been influenced by the introduction of the FPGAs.

Name:Reconfigurable Computing and FPGAs

Description:From the mid-1980s, reconfigurable computing has become a popular field due to the FPGA technology progress. An FPGA is a semiconductor device containing programmable logic components and programmable interconnects but no instruction fetch at run time, that is, FPGAs do not have a program counter. In most FPGAs, the logic components can be programmed to duplicate the functionality of basic logic gates or functional Intellectual Properties (IPs). FPGAs also include memory elements composed of simple flip-flops or more complex blocks of memories. Hence, FPGA has made possible the dynamic execution and configuration of both hardware and software on a single chip. This module provides a detailed description of FPGA technologies starting from a general description down to the discussion on the low-level configuration details of these devices, to the bitstream composition and the description of the configuration registers.

Name:Examples on how to configure an FPGA

Description:FPGA design tools must provide a design environment based on digital design concepts and components (gates, flip-flops, MUXs, etc.). They must hide the complexities of placement, routing and bitstream generation from the user. This module is not going through these steps in details, an entire course will be needed just for this, but it is important at least to have an idea of what it is happening behind the scene to better understand the complexity of the processes carried out by the tools you are going to use. Within this context, this module guides you through a simple example, which is abstracting the complexity of the underlying FPGA, starting from the description of the circuit you may be willing to implement to the bitstream used to configure the FPGA.

课程评论(0条)

课程详情

Nowadays the complexity of computing systems is skyrocketing. Programmers have to deal with extremely powerful computing systems that take time and considerable skills to be instructed to perform at their best. It is clear that it is not feasible to rely on human intervention to tune a system: conditions change frequently, rapidly, and unpredictably. It would be desirable to have the system automatically adapt to the mutating environment. This course analyzes the stated problem, embraces a radically new approach, and it introduces how software and hardware systems ca ben adjusted during execution. By doing this, we are going to introduce the Field Programmable Gate Arrays (FPGA) technologies and how they can be (re)configured.

课程标签

0人关注该课程

主题相关的课程