FPGA芯片内部硬件介绍
FPGA芯片内部硬件介绍
FPGA(Filed programmable gate device):现场可编程逻辑器件
FPGA基于查找表加触发器的结构,采用SRAM工艺,也有采用flash或者反熔丝工艺;主要应用高速、高密度大的数字电路设计。
FPGA由可编程输入/输出单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源(时钟/长线/短线)、底层嵌入功能单元、内嵌专用的硬核等组成;
目前市场上应用比较广泛的FPGA芯片主要来自Altera与Xilinx。另外还有其它厂家的一些低端芯片(Actel、Lattice)。
这里主要介绍AlteraCyclone II系列FPGA的内部硬件结构:
- FPGA器件结构
- 可编程输入/输出单元IOE
- 可编程逻辑单元LE
- 嵌入式块RAM
- 布线资源
- 底层嵌入功能单元
FPGA器件结构
Altera cyclone IV器件结构
FPGA的内部结构包括:
- 可编程逻辑门阵列,由最小单元LE组成
- 可编程输入输出单元IOE
- 嵌入式RAM块,为M4K块,每个的存储量为4K,掉电丢失
- 布线网络
- PLL锁相环,EP4CE6E22C8N最大的倍频至250MHz,这也是该芯片的最大工作频率
可编程输入/输出单元IOE
可编程I/O,可配置成OC门、三态门、双向IO、单端/差分等;支持各种不同的I/O标准:LVTTL、LVCOMS、SSTL、LVDS、HSTL、PCI等;
Altera 器件IOE结构
Altera器件的输入输出结构:可配置成三态、输入/输出、双向IO
Altera器件中cyclone系列中的IOE结构是基本的输入、输出、使能的触发器结构。
可编程逻辑单元LE
基本可编程逻辑单元LE由查找表(Look up table)触发器(FF)组成,而LE是组成LAB的最小单元;
LUT一般是4输入查找表,高端器件(xilinx v5)采用LUT-6结构;LUT可看成4位地址线的16x1的RAM 结构。
FF是可编程的触发器,可配置成同步/异步复位、同步/异步置位、使能、装载等功能触发器。
可编程逻辑块:
Altera:LAB
Xilinx:CLB
Xilinx CLB由四个SLICE构成;而Altera的LAB由16个/8个LE构成;
基本逻辑单元LE/SLICE:
Altera:LE
Xilinx:SLICE
xilinx 为SLICE:包括两个LUT-4/两个FF;
altera为LE:包括一个LUT-4/一个FF;
嵌入式块RAM
嵌入式块RAM可配置单/双端口RAM、伪双端口RAM、ROM、FIFO、SHIFT、CAM等;不同厂家的块RAM大小不一样:
Altera:M512、M4K M4K、M-RAM(512K);
Xilinx:18kbit;
Lattic:9kbit;
Altera:M4K:
布线资源
全局布线资源:用于全局时钟/全局复位/全局置位布线;
长线资源:用于BANK或者嵌入式功能单元的高速信号或者第二全局时钟的布线;
短线资源:用于其中逻辑单元间的逻辑互联与布线;
全局布线资源:
全局时钟树:
底层嵌入式功能块
主要是指PLL/DPLL、DCM、DSP48、乘法器、嵌入式硬核/软核;
Xilinx:DCM、DSP48/48E、DPLL、Multiplier等
Altera:PLL/EPLL/FPLL、DSPcore等;
Multiplier结构
PLL/DCM:嵌入式锁相环
Altera:PLL
Xilinx:DCM
Altera的Cyclone II器件最多有四个PLL,分布在芯片四个角;需要主要的是Altera的PLL是模拟锁相环,在电源/地方面要做考虑。
Xilinx的spatan-3器件最多有四个DCM,也是分布在芯片四个角。
两者的区别:Altera的PLL可支持较低的输入频率,可Xilinx的DCM支持的最低锁相频率为24/32MHz;但Xilinx的高端器件Virtex-5的DPLL可达到很低的输入频率。
内嵌专用硬核
指高速串行收发器;GMAC、SERDES、PCIe等;
Xilinx:GMAC、SERDES、PCI、GTX、GRX
Atera:GMAC、SERDES、PCIe、SPI.4/SFI.5
每日推送不同科技解读,原创深耕解读当下科技,敬请关注微信公众号“科乎”。
FPGA芯片内部硬件介绍的更多相关文章
- FPGA内部硬件结构简介
我们知道FPGA内部有很多可供用户任意配置的资源,其中包括:可编程逻辑.可编程I/O.互连线.IP核等资源,很多学过数字电路的人都知道与或非门可以构成几乎所有的数字电路,但是FPGA内部最基本的主要单 ...
- 嵌入式开发之zynq——赛灵思的一款两a9加一fpga芯片的开发板
没办法,回家入职新公司,做通信的,用到这款zynq加ad9163射频架构的开发版,要我做驱动,这可是初次接触zynq,带fpga的集成芯片,心里还是有点惊喜和忧愁,忧愁怎么最快啃下这个硬骨头,好吧上网 ...
- ArduinoYun教程之ArduinoYun硬件介绍
ArduinoYun教程之ArduinoYun硬件介绍 ArduinoYun的电源插座 Arduino Yun有两排插座,这些插座可以按类型分为三类:电源.数字IO和模拟输入.电源部分主要集中在如图1 ...
- s3c2440裸机-UART编程(一、UART硬件介绍及传输原理)
1.uart硬件介绍 UART的全称是Universal Asynchronous Receiver and Transmitter(异步收发器). uart主要用于: 1.打印调试 2.数据传输 串 ...
- 用显微镜观察cpu芯片内部
1. 先找到一块Intel公司的奔三(Pentium III)Coppermine芯片,主频800MHZ,生产于2000年.(我查了一下,网上的报价现在是15~30元人民币/块.) 下面是这块CPU的 ...
- 《VR入门系列教程》之6---VR硬件介绍及DK1
第二章 VR硬件介绍 本章主要介绍当前比较流行的消费版VR设备,包括VR头显以及应用运行的PC和手机平台. 即使是在这工业高速发展的时代,一些大厂(比如Facebook的Oculus ...
- 操作系统(1)——X86-32硬件介绍、实验环境相关配置、uCore部分技巧介绍
实验环境 本文假设已经创建虚拟机并配置好Ubuntu 16.04(网上太多教程了,所以这里就不赘述了). X86-32硬件介绍 x86指的是80386这种机器(一种32位CPU,在早期得到了广泛的应用 ...
- 关于Quartus构建nios软核以及eclipse建立c语言工程以及成功下载到FPGA芯片过程遇到的各种问题以及解决方法详解
这不是一篇构建nios的教程,而是遇到的各种问题以及解决方法.至于构建教程,网上一大把,我推荐正点原子的FPGA教程,比较新,比较详细,通俗易懂!!! 这里以一个点亮LED灯的Nios软核为例,很明显 ...
- eclipse建立c语言工程以及成功下载到FPGA芯片过程遇到的各种问题以及解决方法详解
推荐大家预先建立好一个工程目录文件夹,确实挺好用,参考正点原子的pdf教程,如下图所示, 我们eclipse在software文件夹建立一个workspace即可 选择用helloworld模板建立工 ...
随机推荐
- DOM事件揭秘-事件流
事件:文档/窗口中发生的特定的交互瞬间 瀑布流,图片轮播 动作都是通过事件触发的 课程内容: 1,理解事件流 2,使用时间处理程序 3,不同的事件类型 ie4.0以后, 事件流:描述的是从页面中接收事 ...
- mysql时间加减函数
先来看一个例子: select now(),now()+0; 可以看到now()函数可以返回一个时间也可以返回一个数字,就看大家如何使用.如果相对当前时间进行增加或减少,并不能直接加上或减去一个数字而 ...
- Sharepoint学习笔记—习题系列--70-576习题解析 -(Q121-Q123)
Question 121 You are designing a SharePoint 2010 workflow that will be used to monitor invoices. Th ...
- 获得appstore里面app的最新的版本信息,进行版本更新
版本更新有两种方式 一种是从服务器获得最新的版本信息和当前app的版本进行比较 另外一种是获得appStore上最新的版本信息和当前的app的版本进行比较 现在我来说一下如何通过appStore获得最 ...
- reason: '[<__NSDictionary0 0x7fda88f00c90> setValue:forUndefinedKey:]: this class is not key value c
reason: '[<__NSDictionary0 0x7fda88f00c90> setValue:forUndefinedKey:]: this class is not key v ...
- CocoaPods安装及使用详情
CocoaPods是什么? 当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,SDWebImage等等.可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而其他 ...
- 比Ansible更吊的自动化运维工具,自动化统一安装部署自动化部署udeploy 1.0 版本发布
新增功能: 逻辑与业务分离,完美实现逻辑与业务分离,业务实现统一shell脚本开发,由框架统一调用. 并发多线程部署,不管多少台服务器,多少个服务,同时发起线程进行更新.部署.启动. 提高list规则 ...
- 多行图片hover加边框兼容IE7+
问题: 遇到多行多列排列的图片时,hover上去加边框会把下面的图片挤到别处 ============================================================ ...
- EF如何操作内存中的数据以及加载相关联表的数据:延迟加载、贪婪加载、显示加载
之前的EF Code First系列讲了那么多如何配置实体和数据库表的关系,显然配置只是辅助,使用EF操作数据库才是每天开发中都需要用的,这个系列讲讲如何使用EF操作数据库.老版本的EF主要是通过Ob ...
- typedef 和 #define 的区别
本文已迁移至: http://www.danfengcao.info/c/c++/2014/02/25/difference-between-define-and-typedef.html typed ...