【FPGA】相关介绍
什么是 FPGA ?
FPGA是Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。
什么是 CPU ?
中央处理单元(Central Processing Unit),是整个系统的核心,也是整个系统最高的执行单位。它负责整个系统指令的执行,数学与逻辑的运算,数据的存储与传送,以及对内对外输入与输出的控制。
什么是 MCU(单片机)?
微控制单元(Microcontroller Unit;MCU) ,又称单片微型计算机(Single Chip Microcomputer )或者单片机,是把中央处理器(Central Process Unit;CPU)的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。诸如手机、PC外围、遥控器,至汽车电子、工业上的步进马达、机器手臂的控制等,都可见到MCU的身影。
什么是 ASIC ?
ASIC(Application Specific Integrated Circuits,专用集成电路),是指应特定用户要求或特定电子系统的需要而设计、制造的集成电路。
《《《《《
可以这样说,
- CPU不用说了,就是用于处理数据的已经固化的数字电路;
- MCU里边装了个CPU还有其它各个外设,这个都是已经作死了的,不能再修改;
- ASIC是针对特定用途,做好了相应的电路逻辑,然后在里边作死了,不能更改;
- 而FPGA里边全是能够构成数字电路的资源,
- 自由:可以用它构建CPU(资源足够的话可以构建很多个同时用都行),构建纯数字外设(也可以结合外部构建数模混合等)。
- 灵活:而它的资源是可以用画电路图的方式来配置的(可反复擦写),而这种方法没有代码的方式好,所以现在基本上都是用HDL语言来描述它内部数字电路(注意,是描述,相当于画电路)。而其它三种都是固定的内部逻辑,不能更改。
- 强大:所以FPGA可以做出一些芯片的功能,也可以把单片机在其内部实现,这样假设一块板上是单片机和一堆数字芯片的话,就可以用一片FPGA芯片来实现整个系统了。
- 高速:而且单片机的速度低,最高100多兆,而FPGA轻松上几百,是单片机望尘莫及的。
》》》》》
工作原理
FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括 可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。 现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。
FPGA基本特点:
1) 采用FPGA设计ASIC电路(专用集成电路),用户不需要投片生产,就能得到合用的芯片。
2) FPGA可做其它全定制或半定制ASIC电路的中试样片。
3) FPGA内部有丰富的触发器和I/O引脚。
4) FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。
5) FPGA采用高速CMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
应用方向/领域
- IC设计的功能验证
- 逻辑粘合与实时控制
- 协议实现与信号处理
- 片上系统(SoC)
- 具体的用途
- 占有的份额
未来的趋势
- 最先进的生产工艺广泛应用于以FPGA为代表的可编程逻辑器件
- 越来越多的FPGA产品将包含CPU或DSP内核
- 传统ASIC和FPGA进一步融合
- 低成本的FPGA密度越来越高,价格越来越合理
[掌握FPGA可以找到一份很好的工作,对于有经验的工作人员,使用FPGA可以让设计变得非常有灵活性。掌握了FPGA设计,单板硬件设计就非常容易(不是系统设计),特别是上大学时如同天书的逻辑时序图,看起来就非常亲切。但FPGA入门却有一定难度,因为它不像软件设计,只要有一台计算机,几乎就可以完成所有的设计。FPGA设计与硬件直接相关,需要实实在在的调试仪器,譬如示波器等。这些硬件设备一般比较昂贵,这就造成一定的入门门槛,新人在入门时遇到一点问题或者困难,由于没有调试设备,无法定位问题,最后可能就会放弃。其实这时如果有人稍微指点一下,这个门槛很容易就过去。]本段转自http://www.21ic.com/wyzt/201208/135414_2.htm
实际上以前FPGA对大家造成的价格贵的概念根深蒂固了,其实现在价格也越来越平民了,甚至低于一些单片机。
开发流程
1.功能定义/器件选型
2.设计输入
3.功能仿真
4.综合优化
5.综合后仿真
6. 实现与布局布线
7.时序仿真
8. 板级仿真与验证
9.芯片编程与调试
厂商/工具
- Xilinx
- Altera
- Lattice
- (Actel)
- (atmel)
开发语言
- verilogHDL 最常用的,容易入门,和C语言长的像
- VHDL
转载于:https://www.cnblogs.com/tony-ning/p/5043470.html
【FPGA】相关介绍相关推荐
- 基于FPGA的SRIO的相关介绍和实现
SRIO的相关介绍和实现 1.SRIO简介 SRIO是面向嵌入式系统开发提出的高可靠.高性能.基于包交换的新一代高速互联技术,已于2004年被国际标准化组织(ISO)和国际电工协会(IEC)批准为IS ...
- (02)FPGA芯片厂商介绍
(02)FPGA芯片厂商介绍 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)FPGA芯片厂商介绍 5)结语 1.2 FPGA简介 FPGA(Field Programm ...
- (5)ZYNQ FPGA中断介绍
1.1 ZYNQ FPGA中断介绍 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)ZYNQ FPGA中断介绍: 5)结束语. 1.1.2 本节引言 "不积跬步 ...
- XCS30XL-4TQG144C相关介绍
XCS30XL-4TQG144C相关介绍 介绍 XCS30XL-4TQG144C是大批量生产的FPGA解决方案,可满足ASIC更换多达40,000个门的所有关键要求. 这些要 ...
- AI芯片-算力相关介绍
一.参考资料 TOPS(处理器运算能力单位) 芯片的算力到底有什么用?算力是怎么评估的? NPU架构与算力分析 二.相关介绍 1. FLOPS FLOPS(floating-point operati ...
- Xilinx FPGA全局介绍
Xilinx FPGA全局介绍 现场可编程门阵列 (FPGA) 具有诸多特性,无论是单独使用,抑或采用多样化架构,皆可作为宝贵的计算资产:许多设计人员并不熟悉 FPGA,亦不清楚如何将这类器件整合到设 ...
- pthread相关介绍
pthread相关介绍 int pthread_create(pthread_t *tid, const pthread_attr_t *attr, void*(*start_routine)(voi ...
- axios队列 vue_(十三 )Vue 封装axios(四种请求)及相关介绍
Vue 封装axios(四种请求)及相关介绍 首先axios是基于promise的http库 promise是什么? 1.主要用于异步计算 2.可以将异步操作队列化,按照期望的顺序执行,返回符合预期的 ...
- python映射类型-python映射类型的相关介绍
映射类型是一类可迭代的键-值数据项的组合,提供了存取数据项及其键和值的方法,在python3中,支持两种无序的映射类型:内置的dict和标准库中的collections.defaultdict类型. ...
- Android Pmem相关介绍
http://fangjian0518.blog.163.com/blog/#m=0 Android Pmem相关介绍 2011-10-18 09:40:26| 分类: Android PMEM | ...
最新文章
- Swift 5 发布,ABI 终于稳定了
- php json传值ajax,ajax 与PHP json 传值
- oracle dump函数
- 五、Linux实用指令
- Java之消息摘要之commons codec
- python进阶11并发之七多种并发方式的效率测试
- 【C语言视频教程完整版】从入门到进阶,适合C语言初学者计算机考研党考计算机二级大一大二学生学习观看~~~
- coreldraw快速撤回_CorelDRAW操作技巧,教你CDR撤销操作方法与设置技巧
- JTAG和SWD接口定义(20针)
- 蒸汽管道图纸符号_如何正确画工艺流程图?图标、符号、图示、标志及含义
- 开源电子书项目FBReader初探(五)
- 【Matlab】【碎碎念】 clc、close、close all、clear、clear all等的含义
- 多益网络社招iq_多益网络2018秋招iq测试题(二)
- vue mand-mobile按2.0文档默认安装的是1.6.8版本
- matlab 正态输入信号,用matlab或者spss做正态检验(转载)
- 1367:查找二叉树
- Redis数据库常用操作命令(查询db、key、value)
- 教你惠普重装系统win10教程
- TypeError: Direct assignment to the reverse side of a related set is prohibited. Use parent_id.set()
- pwn-栈迁移-ROP