一、FPGA:Field Programmable Gate Array 现场可编程门阵列

可编程输入/输出单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核。

可编程输入/输出单元(I/O)单元

输入/输出(Input/Ouput)单元简称 I/O 单元,它们是芯片与外界电路的接口部分,完成不同电气特性下对输入/输出信号的驱动与匹配需求,为了使 FPGA 具有更灵活的应用,目前大多数 FPGA 的 I/O 单元被设计为可编程模式,即通过软件的灵活配置,可以适配不同的电气标准与 I/O 物理特性;可以调整匹配阻抗特性、上下拉电阻、以及调整驱动电流的大小等。

基本可编程逻辑单元

组成 FPGA 的两个最基本的部分是组合逻辑以及时序逻辑,分别实现这两个基本部分的结构就是 FPGA 的基本单元。组合逻辑部分一般采用查找表(Look-Up-Table,LUT)的形式,时序逻辑部分一般采用触发器(Flip-Flop,FF)的形式。

Xilinx 7 系列 FPGA 中的可编程逻辑单元叫 CLB(Configurable Logic Block,可配置逻辑块)每个CLB 里包含两个逻辑片(Slice)。

时序逻辑的基本单元采用 D 触发器,这种触发器是一种在时钟的上升沿(或下降沿)将输入信号的变化转送至输出的边沿触发器。

  • 建立时间(setup-time):如果在 CLK=0 时,由于门的传输延时,输入信号没有稳定的保存到主锁存器中,那么当 CLK 从 0 变到 1,输入关闭,输出打开时,主锁存器就只能给输出端口提供一个不稳定的信号。为了避免这种情况的发生,需要输入信号在上升沿到来前已经稳定。
  • 保持时间(hold-time):当 CLK 从 0 变到 1,由于门的传输延时,门不可能立刻关闭,如果此时发生输入信号的变化,那当门关闭后实际保存的信号就可能是变化后的信号(相当于下一时刻的信号将我们需要的当前信号覆盖了)。为了避免这种情况的发生,需要输入信号在上升沿到来后保持一段时间的稳定。

根据数电中的知识,任何一个组合逻辑都可以表示成真值表的形式(逻辑输入对应逻辑输出),也就是任意的真值表所反映的内容都能由组合逻辑实现,查找表(LUT)就能完成这个任务。

存储器

  • 硬宏存储器:硬宏型存储器被称为块存储器(Block RAM,BRAM),实现方法就是以硬宏的形式在架构中嵌入存储器块。
  • 查找表存储器:查找表存储器被称为分布式存储器(Distributed RAM,分布式 RAM),使用 SLICEM 逻辑块查找表中的真值表作为小型的存储器,能实现 BRAM 不能实现的异步访问,但是一般需要小规模存储器时才采用这种方法(不能占用太多的用来实现逻辑的查找表资源)。

存储的一些知识

 DMA       Direct Memory Access 直接存储器存取

时钟部分

PLL Phase Lock Loop

由鉴相器、环路滤波器和压控振荡器组成,鉴相器用来鉴别输入信号Ui与输出信号Uo之间的相位差,并输出误差电压Ud。Ud中的噪声和干扰成分被低通性质的环路滤波器滤除。形成压控振荡器(Vco)的控制电压Uc,Uc作用于压控振荡器的结果是把它的输出震荡频率fo拉向环路输入信号频率fi,当二者相等时,环路被锁定,称为入锁。PLL并不是直接对晶振进行倍频,而是将频率稳定的晶振作为基准信号,与PLL内部振荡电路生成的信号分频后进行比较,使PLL输出的信号频率稳定,工作原理如下图所示。

DLL Delay Lock Loop

DLL是基于数字抽样方式,在输入时钟和反馈时钟之间插入延迟,使输入时钟和反馈时钟的上升沿一致来实现的。又称数字锁相环。一个最简单的DLL与PLL的主要不同在于DLL用延时线代替了PLL的压控振荡器,延时线产生输入时钟的延时输出。

二、体系结构

Von Neumann Architecture

系统总线 BUS

最高效的计算方式应该是怎样的?

现在大家应该都知道了,计算的瓶颈往往不在于运算单元数量的不够或是速度不够高,而是在内存带宽上,也就是数据读写来不及,运算单元喂不饱。那最高效的计算方式自然就是能充分利用片上高速内存,让运算单元等待数据的情况从不发生,同时尽可能的减少了对外部DDR的读写,这也同时降低了功耗,所以既要速度快又要功耗低这两者其实并不矛盾

为什么FPGA比GPU的能耗更低呢?上面讲的是原因之一,还有一个原因是FPGA是硬件可编程,所以它的数据通路是最直接的。比如说用FPGA算两个数相加,那直接把两个数从内存读进来送到加法器那去加就行了。但在GPU中还要进行指令译码,知道是做加法之后还要把这两个数往加法器那里送,这中间数据要经过一些选通器才会被正确的送到加法器那而不是别的运算单元那里。译码,数据经过选通,这些都会产生额外的功耗。而FPGA每次要做的运算都是固定的,所以不需要指令译码,也基本不需要数据的选通。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/90792.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/90792.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/90792.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker宿主机修改ip后起不来问题解决

确保容器已经连接到了正确的网络。如果没有,你可以使用以下命令将容器连接到网络: 1、停止docker网络 ifconfig docker0 down1. 停止 Docker 服务 sudo systemctl stop docker2. 删除 docker0 接口 sudo ip link delete docker03、删除旧的网桥 docker n…

G1 垃圾回收算法详解

目录 简介 G1 GC 的设计目标 内存结构 回收过程 初始标记(Initial Mark)并发标记(Concurrent Mark)最终标记(Final Mark / Remark)筛选回收(Cleanup / Evacuation) 混合回收&…

JavaEE多线程——锁策略 CAS synchronized优化

目录前言1.锁策略1.1 乐观锁和悲观锁1.2 重量级锁和轻量级锁1.3 挂起等待锁和自旋锁1.4 公平锁和非公平锁1.5 可重入锁和不可重入锁1.6 读写锁2.CAS2.1 CAS的应用2.2 CAS的ABA问题3.synchronized优化3.1锁升级3.2锁消除3.3锁粗化总结前言 本篇文章主要介绍多线程中锁策略、CAS…

Windows符号链接解决vscode和pycharm占用C盘空间太大的问题

Windows符号链接解决vscode和pycharm占用C盘空间太大的问题 参考文章:Windows符号链接 1、找到vscode和pycharm在C盘的缓存文件夹。 C:\Users\用户名\AppData\Roaming\Code C:\Users\用户名\.vscode\extensionsC:\Users\用户名\AppData\Local\JetBrains C:\Users…

赋能家庭、行业与工业场景,智微智能新一代Twin Lake 全栈智能终端发布

在数字化浪潮席卷全球的今天,智能终端已成为连接物理世界与数字世界的核心枢纽。智微智能基于Intel Twin Lake平台,推出覆盖家庭/行业应用及工业物联网的全场景产品矩阵,为不同场景下的用户提供高效、可靠的产品和解决方案。Intel Twin Lake架…

复习笔记 31

前言 好好复习。今天距离考研初试还剩一百六十一天。我的时间其实没剩多少了呀。我得好好加油。 归并排序 #include<algorithm> #include<iostream>using namespace std;const int N 100010; int n; int a[N], tmp[N];void merge ( int a[], int l, int r ) {if (…

el-tree 懒加载 loadNode

el-tree 是 Element UI 提供的树形组件&#xff0c;其懒加载功能通过 loadNode 方法实现&#xff0c;可以在用户展开节点时动态加载子节点数据&#xff0c;避免一次性加载大量数据。下面介绍 loadNode 的具体用法和示例。基本用法loadNode 是 el-tree 的一个重要属性&#xff0…

【机器学习入门巨详细】(研0版)二创OPEN MLSYS

自学机器学习&#xff0c;从入门到精通导论机器学习的基本框架设计目标机器学习框架基本组成原理机器学习生态机器学习工作流环境配置数据处理模型定义损失函数和优化器训练及保存模型测试及验证模型定义深度神经网络以层为核心定义神经网络神经网络层实现原理自定义神经网络层…

Excel 转 JSON by WTSolutions API 文档

Excel 转 JSON by WTSolutions API 文档 简介 Excel 转 JSON API 提供了一种简单的方式将 Excel 和 CSV 数据转换为 JSON 格式。该 API 接受制表符分隔或逗号分隔的文本数据&#xff0c;并返回结构化的 JSON。 接口端点 POST https://mcp.wtsolutions.cn/excel-to-json-api 请求…

git版本发布

cvs和svn都是集中式版本控制系统,而git是分布式版本控制系统。 1、集中式版本控制系统必须联网才能工作&#xff0c;如果在局域网内还好&#xff0c;带宽够大&#xff0c;速度够快&#xff0c;可如果在互联网上&#xff0c;遇到网速慢的话&#xff0c;呵呵。分布式版本控制系统…

138-EMD-KPCA-CPO-CNN-BiGRU-Attention模型!

138-EMD-KPCA-CPO-CNN-BiGRU-Attention基于经验模态分解和核主成分分析的长短期记忆网络改进多维时间序列预测MATLAB代码&#xff01;其中&#xff08;含CPO-CNN-BiGRU-attention、EMD-CPO-CNN-BiGRU-Attention、EMD-KPCA-CPO-CNN-BiGRU-Attention三个模型的对比&#xff09; 可…

系统思考:多元胜过能力

系统思考&#xff1a;从整体出发&#xff0c;打破瓶颈&#xff0c;拥抱多元 我们是否曾经陷入过这样的困境&#xff1f; 1、专注能力提升&#xff0c;却无法突破瓶颈&#xff1a;我和团队日复一日地努力提升个人能力&#xff0c;投入无数时间和精力&#xff0c;但始终无法打破现…

qt样式整合持续更新中(实测有效的)

// 仅显示上边框 一般可以作为直线使用 border-top: 2px solid black; //画虚线 border-bottom: 2px dashed white; //单个圆角 border-bottom-left-radius: 8px; border-bottom-right-radius: 8px; //透明背景 background:rgba(0,0,0,0); //设置字体 font:15pt; //给button设置…

[java][springboot]@PostConstruct的介绍和用法

在 Spring Boot&#xff08;以及整个 Spring Framework&#xff09;中&#xff0c;PostConstruct 是一个非常常用的注解&#xff0c;用于在 依赖注入完成后 执行一些初始化操作。import jakarta.annotation.PostConstruct; import org.springframework.stereotype.Component;Co…

Leaflet面试题及答案(41-60)

查看本专栏目录 文章目录 🟢 面试问题及答案(41-60)41. 如何判断某个点是否在地图可视区域内?42. 如何动态更新 Marker 位置?43. 如何清除地图上的所有图层?44. 如何保存地图截图?45. 如何检测浏览器是否支持触摸?46. Leaflet 是否支持 TypeScript?47. 如何修改默认图…

Redis事件机制

Redis 采用事件驱动机制来处理大量的网络IO。它并没有使用 libevent 或者 libev 这样的成熟开源方案&#xff0c;而是自己实现一个非常简洁的事件驱动库 ae_event。事件机制Redis中的事件驱动库只关注网络IO&#xff0c;以及定时器。该事件库处理下面两类事件&#xff1a;文件事…

Linux基础开发工具

目录 1.写在前面 2.权限 3.file命令 4.基础开发工具 1.软件包管理器 5.编辑器vim 1.写在前面 我们在上一讲解中讲解了权限是人事物属性&#xff0c;还知道了拥有者所属组其他人这三个概念&#xff0c;知道了33一组&#xff0c;rwx分别代表什么。那么下面我们继续进行权限…

ICCV2025 特征点检测 图像匹配 RIPE

目测对刚性物体效果比较好代码&#xff1a;https://github.com/fraunhoferhhi/RIPE 论文&#xff1a;https://arxiv.org/abs/2507.04839import cv2 import kornia.feature as KF import kornia.geometry as KG import matplotlib.pyplot as plt import numpy as np import torc…

Ubuntu22.0.4安装PaddleNLP

Ubuntu22.0.4安装PaddleNLP环境说明安装底层框架Paddle安装PddleNLP1. pip安装2. 验证安装3. 最后问题集锦环境说明 1. miniconda 25.5.1 2. python 3.12.11 3. pip 25.1 4. nvidia 570.144 5. cuda 12.8**注意&#xff1a;**安装过程可能遇到的一些问题&#xff0c;参考末尾的…

【HTTP服务端】Cookie?Session?Token?

文章目录cookie与sessiontoken什么是JWT&#xff1f;JWT的组成结构1. Header&#xff08;头部&#xff09;2. Payload&#xff08;负载&#xff09;3. Signature&#xff08;签名&#xff09;JWT工作原理JWT的特点安全注意事项cookie与session cookie有哪些属性 键值对&#xf…