FPGA笔记 Altera Cyclone系列FPGA资源介绍
2016-01-02 16:21
330 查看
FPGA和单片机一样,是一颗芯片,既然是芯片,就有一些内部资源。 Altera的FPGA最基本的资源是LE,通过查看Cyclone系列FPGA手册可以看到,一个LE主要包括了一个四输入查找表,也就是LUT,LUT本质上就是一个RAM。目前Cyclone系列使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的16x1的RAM。当用户用程序描述了一个逻辑电路以后,FPGA开发工具会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。除了一个四输入查找表以外,还有一个可编程寄存器,至于为什么说可编程,是因为可以通过程序来配置为异步或者同步触发器,具体的结构可以看Cyclone系列的芯片手册。我们通常看Altera的FPGA资源大小,就是看他有多少个LE。
Cyclone系列芯片里面16个LE组成一个LAB,而每个LAB都有LAB控制信号,按照顺序排列在FPGA内部,每个LAB内部之间的LE数据通信通过Register chain传输,每个LAB之间的通过行或者列互联信号通信,相连的LAB,或者LAB周围的RAM,乘法器,PLL都可以通过互联线号驱动其周围的LAB。
Cyclone系列的FPGA有内部的RAM,起初Cyclone和CycloneII系列的RAM采用的M4K,也就是说一个RAM块有4K个位,如果包括校验位,那么有4608位,可以配置为不同模式不同位宽的RAM或者ROM,而CycloneIII和CycloneIV系列的FPGA的RAM采用M9K,也就是每一块有9K数据,其实只有8192位,加上校验位的话为9216位,所以,一个M9K可以配置的RAM最大数据宽度为8192,当然,不管M4K还是M9K,都可以配置为不同模式的RAM或者ROM。这里的ROM数据,实际上是最后写到编译后的文件SOF文件或者POF文件里面去的,如果只是要修改ROM数据,可以通过指令直接修改SOF文件或者POF文件。而不需要再重新编译。
Cyclone系列FPGA还有硬件乘法器,18*18的乘法器,可以配置为2个9*9的乘法器 ,当数据宽度大于18时候,采用多个乘法器合并实现,我们在VHDL或者Verilog里面的乘号,Altera的在FPGA软件综合自动采用乘法器替代。
除此之外,Cyclone系列FPGA还有内部PLL,在CycloneIV之前的Cyclone系列的PLL,基本上都是通用的PLL,也就是说,可以对时钟进行倍频、分频或者移相,也可以将PLL时钟输出到专用的PLL输出管脚上,通常SDRAM的时钟都是由这些专用时钟驱动,但是注意,输入时钟是有范围的,具体可以见手册。而CycloneIV的GX系列FPGA内部集成收发器,每个收发器都有专用的PLL。从CycloneIII开始内部的PLL支持实时动态重配,具体的动态重配方法可以通过Altera的ALTPLL_RECONFIG核来实现。
值得注意的是,FPGA时钟是至关重要的,时钟的好坏直接关系到系统的稳定,可以打个比方,电源如一个系统的血液,时钟就是一个心脏。所以,无论是Altera还是Xilinx,都会在FPGA设计上面重点提到全局时钟等概念。
除了以上资源外,还有就是IO口资源,FPGA的IO口资源相当丰富,FPGA的IO可以根据REF电平不同接收或输出不同的电平标准的信号,如3.3V LVTTL,如2.5V的LVDS,LVPECL或者SSTL-2等,并且可以通过程序来设置驱动电流强弱,片内OTC,差分匹配,DDR输出等,CyclonreIII以及CycloneIV还支持片内上拉电阻,输入输出延时等。CycloneIV
GX系列还带有高速收发器,PCIe硬核等。
另外,CycloneIII后的系列增加了一个在线重配模块SEU,这样,可以在线将配置程序少烧写到FPGA的配置芯片剩余的地方,FPGA自动通过该模块判断是否是可用程序以,如果是,FPGA可以用该模块将旧程序替换为新程序自己升级自己。类似于ARM德IAP。
以上就是Cyclone系列FPGA的一些基本资源,对于Stratix系列的FPGA,内部的资源相对于Cyclone系列的要更加丰富,功能更加强大,比如,逻辑资源不再是LE,二是ALM,不再是乘法器,而是DSP模块等,具体可以参看具体的芯片手册。
Cyclone系列芯片里面16个LE组成一个LAB,而每个LAB都有LAB控制信号,按照顺序排列在FPGA内部,每个LAB内部之间的LE数据通信通过Register chain传输,每个LAB之间的通过行或者列互联信号通信,相连的LAB,或者LAB周围的RAM,乘法器,PLL都可以通过互联线号驱动其周围的LAB。
Cyclone系列的FPGA有内部的RAM,起初Cyclone和CycloneII系列的RAM采用的M4K,也就是说一个RAM块有4K个位,如果包括校验位,那么有4608位,可以配置为不同模式不同位宽的RAM或者ROM,而CycloneIII和CycloneIV系列的FPGA的RAM采用M9K,也就是每一块有9K数据,其实只有8192位,加上校验位的话为9216位,所以,一个M9K可以配置的RAM最大数据宽度为8192,当然,不管M4K还是M9K,都可以配置为不同模式的RAM或者ROM。这里的ROM数据,实际上是最后写到编译后的文件SOF文件或者POF文件里面去的,如果只是要修改ROM数据,可以通过指令直接修改SOF文件或者POF文件。而不需要再重新编译。
Cyclone系列FPGA还有硬件乘法器,18*18的乘法器,可以配置为2个9*9的乘法器 ,当数据宽度大于18时候,采用多个乘法器合并实现,我们在VHDL或者Verilog里面的乘号,Altera的在FPGA软件综合自动采用乘法器替代。
除此之外,Cyclone系列FPGA还有内部PLL,在CycloneIV之前的Cyclone系列的PLL,基本上都是通用的PLL,也就是说,可以对时钟进行倍频、分频或者移相,也可以将PLL时钟输出到专用的PLL输出管脚上,通常SDRAM的时钟都是由这些专用时钟驱动,但是注意,输入时钟是有范围的,具体可以见手册。而CycloneIV的GX系列FPGA内部集成收发器,每个收发器都有专用的PLL。从CycloneIII开始内部的PLL支持实时动态重配,具体的动态重配方法可以通过Altera的ALTPLL_RECONFIG核来实现。
值得注意的是,FPGA时钟是至关重要的,时钟的好坏直接关系到系统的稳定,可以打个比方,电源如一个系统的血液,时钟就是一个心脏。所以,无论是Altera还是Xilinx,都会在FPGA设计上面重点提到全局时钟等概念。
除了以上资源外,还有就是IO口资源,FPGA的IO口资源相当丰富,FPGA的IO可以根据REF电平不同接收或输出不同的电平标准的信号,如3.3V LVTTL,如2.5V的LVDS,LVPECL或者SSTL-2等,并且可以通过程序来设置驱动电流强弱,片内OTC,差分匹配,DDR输出等,CyclonreIII以及CycloneIV还支持片内上拉电阻,输入输出延时等。CycloneIV
GX系列还带有高速收发器,PCIe硬核等。
另外,CycloneIII后的系列增加了一个在线重配模块SEU,这样,可以在线将配置程序少烧写到FPGA的配置芯片剩余的地方,FPGA自动通过该模块判断是否是可用程序以,如果是,FPGA可以用该模块将旧程序替换为新程序自己升级自己。类似于ARM德IAP。
以上就是Cyclone系列FPGA的一些基本资源,对于Stratix系列的FPGA,内部的资源相对于Cyclone系列的要更加丰富,功能更加强大,比如,逻辑资源不再是LE,二是ALM,不再是乘法器,而是DSP模块等,具体可以参看具体的芯片手册。
相关文章推荐
- grep、egrep
- 【设计模式】代理模式
- 多文件夹下编写Makefile详解
- C#之方法与函数
- Proximal Gradient Method近端梯度算法
- jquery中focus()函数实现当对象获得焦点后自动把光标移到内容最后
- NSTimer的使用以及NSTimer暂停和继续
- 【VBA研究】查找目录以下全部文件的名称
- 蓝桥杯 算法训练 未名湖边的烦恼
- 【ZYNQ-7000开发之八】OLED的驱动
- Java 图片提取RGB数组 RGBOfCharMaps (整理)
- nyoj--514--1的个数(贪心)
- bash shell 中的比较
- 通过SQL Server 2008数据库复制实现数据库同步备份
- VS插件-Resharper
- nyoj--514--1的个数(贪心)
- 最大流学习笔记
- failed to resolve com.android.support:appcompat-v7:23+ 解决方法
- 25、静态查找表(顺序表、索引顺序表、静态树表、折半查找) http://blog.163.com/zhoumhan_0351/blog/static/39954227200993093110226
- zzulioj--1712--Monty Hall problem(蒙提霍尔问题)