【FPGA篇章一】FPGA工作原理:详细介绍FPGA实现编程逻辑的机理
欢迎大家关注我的微信公众账号,支持程序媛写出更多优秀的文章
FPGA(Field Programmable Gate Array),即现场可编程逻辑门阵列,它是作为专用集成电路(ASIC)领域中一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA优势
(1)运行速度快
(2)FPGA引脚多,适合大规模的系统设计
(3)FPGA内部程序并行执行,工作效率高
(4)FPGA包含大量的IP核,方便开发
(5)FPGA设计灵活
FPGA开发流程
(1)设计规范
(2)设计输入:设计输入可以是原理图、可以是描述电路逻辑的代码(Verilog HDL或者VHDL)
(3)RTL仿真:又称为功能仿真,主要用来检查代码中的错误和代码行为的正确性
(4)综合仿真:将输入的文件转换成具体的门电路
(5)布局和布线
(6)门级仿真:RTL级别的仿真主要用来检查代码的语法错误并验证设计的组合逻辑是不是和理想中的一致,不考虑门电路之间的延时和连线上的延时;但是门级仿真是考虑的,主要用来验证设计的数字逻辑电路的实际工作情况是不是符合设计要求。
(7)时序分析
(8)上系统验证
FPGA内部结构
(1)
FPGA的内部结构主要包含六大部分,分别是:可编程的输入输出IO口、可编程的逻辑单元、底层嵌入式功能单元、嵌入式块RAM、布线资源和硬核。以下是具体的介绍。
1 可编程的输入输出IO口:可以使用软件配置成不用的电气标准和物理特性,比如可以调整上下拉电阻、匹配电阻等特性,使用灵活。
2 可编程逻辑单元:是可编程逻辑的主体,可以根据设计灵活地改变内部连接与配置,从而完成不同的逻辑功能,FPGA一般都是基于SRAM工艺,可编程逻辑单元基本都是基于查找表LUT(Look-Up-Table)和一些寄存器(主要是D触发器)组成。
3 底层嵌入功能单元:指的是在FPGA内部集成的一些通用程度较高的嵌入式功能模块,比如锁相环、DSP等。
4 布线资源:链接FPGA的内部所有单元,在实际FPGA布局布线时,布局布线的好坏会对设计的功能产生直接的影响。
5 硬核:这一部分比较少用,因为硬核的功能比较单一,在实际开发中使用的不多。
(2)
补充说明:实际开发中可以从这四个方面认识FPGA的内部结构,分别是:可配置逻辑块(CLB)、输入输出块(IOB)、布线通道(Routing Channels )、可编程开关(PSW)。
实际中,主要用CLB用来衡量FPGA的可使用资源数。
CLB主要包含查找表(LUT)和D触发器,分别组成FPGA的组合逻辑单元和时序单元,为数字电子系统设计做资源准备。
CLB在芯片内部以二维阵列的形式存在,这也是FPGA称之为现场可编程门阵列的原因。
CLB在实际生成数字电路的时候,使用布线资源进行连接,当需要输出或者是输入时,可以将CLB连接到输入输出模块。
FPGA的工作原理
注:在以下,EDA工具作为Quartus II、ISE、Vivado等。
FPGA的内部结构主要包含可配置的逻辑块(CLB)、输入输出块、布线资源和可编程开关。其中可配置的逻辑块是FPGA的主要资源指标,在芯片内部以二维阵列的形式排布。
在CLB中包含查找表和D触发器,查找表(LUT)负责给芯片提供组合逻辑,D触发器负责提供时序逻辑,为设计数字电子系统提供资源。
例如LUT-4查找表,近似是一个16*1的RAM,具有RAM的物理结构,但是在作用上是类似ROM,负责存储EDA工具综合生成的逻辑电路的各种可能的运行结果,在FPGA工作的时候,依据端口输入的数据流或者是逻辑流,在RAM中索引得出结果,配合D触发器可以完成数字电子系统需要的组合逻辑和时序逻辑。
设计者在进行软件设计的时候,依据设计目标,将电路功能以代码的形式描述出来,EDA工具负责对代码进行编译和综合,得到设计电路的各种可能结果,下载到FPGA的时候,这些数据都存储在CLB的查找表中。系统开始工作时,在数据流或者是逻辑流的驱动下,在查找表中取出对应的数字逻辑,然后和D触发器配合完成数字电子系统的组合逻辑设计和时序逻辑设计。
所以,有些地方说,基于LUT技术的FPGA,其实我们基于SRAM技术的FPGA就是这个基于LUT技术的FPGA的本质。
一旦SRAM单元被载入数据后,他将保持不放电,但如果整个供电系统断了的话,器件配置的数据将会丢失,这就是说这种器件在系统上电时需要重新配置。但是这种器件的特点是可迅速反复的编程,这就是当时选中SRAM技术实现FPGA的很大原因。
【FPGA篇章一】FPGA工作原理:详细介绍FPGA实现编程逻辑的机理的更多相关文章
- Unity3d 发动机原理详细介绍
Unity3d 发动机原理详细介绍 www.MyException.Cn 发布于:2013-10-08 16:32:36 浏览:46次 0 Unity3d 引擎原理详细介绍 体系结构 ...
- 单片机的基本构成、工作原理 LET′S TRY“嵌入式编程”: 1 of 6
单片机的基本构成.工作原理 LET′S TRY“嵌入式编程”: 1 of 6 本连载讲解作为嵌入式系统开发技术人员所必需具备的基础知识.这些基础知识是硬件和软件技术人员都应该掌握的共通技术知识.有了电 ...
- 初学Kafka工作原理流程介绍
Apache kafka 工作原理介绍 消息队列技术是分布式应用间交换信息的一种技术.消息队列可驻留在内存或磁盘上, 队列存储消息直到它们被应用程序读走.通过消息队列,应用程序可独立地执行--它们不需 ...
- hibernate篇章五--Hibernage工作原理
Hibernage工作原理: 1.配置hibernate对象关系映射文件.启动服务器 2.服务器通过实例化Configuration对象,读取hibernate.cfg.xml文件的配置内容,并根据相 ...
- HashMap工作原理的介绍!
HashMap的工作原理是近年来常见的Java面试题.几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道HashTable和HashMap之间的区别,那么为何这道面试题如此 ...
- Unity3d 引擎原理详细介绍
体系结构 为了更好地理解游戏的软件架构和对象模型,它获得更好的外观仅有一名Unity3D的游戏引擎和编辑器是非常有用的,它的主要原则. Unity3D 引擎 Unity3D的是一个屡获殊荣的工具,用于 ...
- Unity3d 引擎原理详细介绍、Unity3D引擎架构设计
体系结构 为了更好地理解游戏的软件架构和对象模型,它获得更好的外观仅有一名Unity3D的游戏引擎和编辑器是非常有用的,它的主要原则. Unity3D 引擎 Unity3D的是一个屡获殊荣的工具,用于 ...
- Unity3d 引擎原理详细介绍、Unity3D引擎架构设计 - zhibolife
时间 2014-03-24 11:18:00 博客园-所有随笔区原文 http://www.cnblogs.com/zhibolife/p/3620440.html 体系结构 为了更好地理解游戏的 ...
- jsonp实现原理详细介绍
主要是浏览器的同源同域(协议相同,域名相同及端口相同)策略需要使用跨域获取数据,故需要jsonp跨域获取数据.重点:img的src,link的href及script的src不遵循浏览器的同源同域策略, ...
随机推荐
- 利用numpy实现多维数组操作图片
1.上次介绍了一点点numpy的操作,今天我们来介绍它如何用多维数组操作图片,这之前我们要了解一下色彩是由blue ,green ,red 三种颜色混合而成,0:表示黑色 ,127:灰色 ,255:白 ...
- JavaScript基础1228JavaScript:void(0)开始----
JavaScript:void(0)含义 JavaScript:void(0)含义 我们经常会使用到JavaScript:void(0)这样的代码,那么在JavaScript中JavaScript:v ...
- 详解 继承(下)—— super关键字 与 多态
接上篇博文--<详解 继承(上)-- 工具的抽象与分层> 废话不多说,进入正题: 本人在上篇"故弄玄虚",用super();解决了问题,这是为什么呢? 答曰:子类中所有 ...
- 15分钟从零开始搭建支持10w+用户的生产环境(三)
上一篇文章介绍了这个架构中,选择MongoDB做为数据库的原因,及相关的安装操作. 原文地址:15分钟从零开始搭建支持10w+用户的生产环境(二) 三.WebServer 在SOA和gRPC大行其 ...
- vs code 打开文件时,取消文件目录的自动定位跟踪
文件-->首选项-->设置-->在搜索栏中搜索:explorer.autoReveal; 去掉勾选即可.
- Fabric的6大特性
文章目录 什么是Hyperledger Fabric 1. 成员准入 2. 性能,可伸缩性和信任级别 3 需要了解的数据 4 通过不可变的分布式账本进行复杂查询 5 支持插件组件的模块化架构 6 保护 ...
- java 之 继承 super关键籽 this关键字 final关键字
继承 语法: 使用 extends 来继承 class子类 extends父类{ 子类属性 子类方法 } 继承的特点: 1.子类会把父类所有的属性和方法继承下来,final修饰的类是不可以被继承 ...
- c语言----- 冒泡排序 for while do-while 递归练习
1. 冒泡排序简介(默认从小到大排序) 核心思想:只比较相邻的两个元素,如果满足条件就交换 5 8 2 1 6 9 4 3 7 0 目标:0 1 2 3 4 5 6 7 8 9 第一次排序: 5 ...
- 整整 Java 线程池
为什么用线程池 用官方文档来说,线程池解决了两个问题: 一是在执行大量的异步任务时,因为线程池减少了任务开始前的准备工作,如频繁创建线程,启动线程等工作,提升了性能表现:二是提供了一种绑定资源和管理资 ...
- 暑期档追剧指南曝光 HUAWEI nova 2系列再放实用三大招
火辣辣的夏季来啦,每年这时火热的不只天气,还有暑期黄金档影视剧的激烈争夺战.今年有<择天记>收视率珠玉在前,<欢乐颂2>更是引发全民追剧热潮,"小花"赵丽颖 ...