关于FPGA,我想做硬件的或多或少都听过。从上世纪80年代算来,FPGA已走过了30多个年头。我们以FPGA两大生产厂商,两大巨头之一的INTEL(altera)公司的FPGA为例,为大家逐步介绍FPGA的前世今生。

FPGA(Field-Programmable Gate Array),直译为现场可编程门阵列。是在PAL、GAL、CPLD等可编程器件的基础上进一步发展而来的。作为专用集成电路(ASIC)领域中的一种半定制电路出现,即解决定制电路的不足,又克服了原有可编程电路数有限的缺点。

ALTERA FPGA内部主要结构是逻辑单元。以CYCLONE IV为例,16个逻辑单元组成一个逻辑阵列块(LAB),大量的LAB组成了FPGA的基本结构。

逻辑单元LE,内部主要由查找表(LUT),进位逻辑(C),和输出寄存器(通常为DFF)组成。

现在的FPGA,我们不在会问内部的逻辑门数是多少,如果这么问,明显缺乏专业知识。我们通常会问这块FPGA内部逻辑单元有多少个。同样,逻辑单元已不在和逻辑门等效。逻辑单元内部包含了FPGA设计的最终要的结构,DFF。

LUT,本质是个4输入的查找表,用硬件描述语言描述一个组合逻辑后,开发软件会自动计算所有结构放入RAM,4输入相当于4根地址线进行查表就可以了。LUT不仅可以实现逻辑运算,主要的算数运算也是由LUT实现的。在实现逻辑运算时,LUT是4输入的,在实现算数运算(主要是加法)时,LUT是2输入的。进位逻辑通常是在做加法的时候使用的。输出寄存器,也就是触发器,是FPGA同步设计的核心,时序电路的核心。

一个LAB有16个LE,所以我们在设计多位计数器,时,应注意是否应当根据LAB的特点,将多位计数器分解成位宽较小的计数器,以提高电路频率。

上述,我们先介绍了FPGA最基本的结构和最基本的资源。后期,我们会慢慢介绍FPGA的其他资源。

说到FPGA的前世今生,我想,对于它的前世,我们稍做了解就可以了。FPGA不过是大规模数字电路发展的产物。从二极管,到三极管,从门电路,到触发器,从宏阵列到逻辑单元,从组合逻辑,到时序逻辑,从几千个门数量,到千万级门数量,从微米技术到纳米技术,无不说明着数字集成电路的飞速发展。对于FPGA的今生,无非就是当下主流FPGA的核心结构以及最终发展的极限。

FPGA的设计离不开数字电路。下面我们稍做一些学习建议。

对于初学者,特别是从软件转过来的,设计的程序既费资源又速度慢,而且很有可能综合不了,这就要求我们熟悉一些固定模块的写法,可综合的模块很多书上都有,语言介绍上都有,不要想当然的用软件的思想去写硬件。在学习FPGA开发过程,首先要对电路设计熟悉,明白电路的工作过程:电路是并行执行。

FPGA学习要多练习,多仿真,signaltapII是很好的工具,可以看到每个信号的真实值,建议初学者一定要自己多动手,光看书是没用的。关于英文文档问题,如果要学会Quartus II的所有功能,只要看它的handbook就可以了,很详细,对于IT行业的人,大部分知识来源都是英文文档,一定要耐心看,会从中收获很多的。当然,官网也有中文资料,但英文资料更加详细,而且很多东西一定要看英文原版资料,因为中文翻译不一定很准确。


版权所有权归卿萃科技,转载请注明出处

作者:卿萃科技ALIFPGA

原文地址:卿萃科技FPGA极客空间 微信公众号


扫描二维码关注卿萃科技FPGA极客空间


FPGA前世今生(一)的更多相关文章

  1. FPGA前世今生(四)

    前几期我们一直介绍FPGA内部资源,今天我们将用最后的篇幅来介绍剩下的内部资源部分,结束我们FPGA的前世今生.之所以起名字为FPGA前世今生,其实就是介绍一下FPGA内部资源,前世的内部结构资源就不 ...

  2. FPGA前世今生(三)

    上期介绍了关于FPGA的IOB单元,这期我们介绍一下FPGA内部的其他资源,这些都是学好FPGA的基础.不管前世的沧桑,还是后世的风光,我们都要把我现在的时光,打好基础,学好FPGA. 大多数FPGA ...

  3. FPGA前世今生(二)

    上期我们介绍了关于FPGA内部最基本的结构,在quartus下可以看到整体的结构. 这是在平面规划图下看到的结构,其中蓝色的小格代表一个LAB.四周边上浅棕色的小格代表IO口. 这是一个LAB的内部结 ...

  4. 转帖 IBM要推POWER9,来了解一下POWER处理器的前世今生

    https://blog.csdn.net/kwame211/article/details/76669555 先来说一下最新的POWER 9 在Hot Chips会议上首次提到的IBM Power ...

  5. 【调侃】IOC前世今生

    前些天,参与了公司内部小组的一次技术交流,主要是针对<IOC与AOP>,本着学而时习之的态度及积极分享的精神,我就结合一个小故事来初浅地剖析一下我眼中的“IOC前世今生”,以方便初学者能更 ...

  6. [C#] 回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性

    回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性 序 目前最新的版本是 C# 7.0,VS 的最新版本为 Visual Studio 2017 RC,两者都尚未进入正式阶段.C# 6.0 ...

  7. docker4dotnet #1 – 前世今生 & 世界你好

    作为一名.NET Developer,这几年看着docker的流行实在是有些眼馋.可惜的是,Docker是基于Linux环境的,眼瞧着那些 java, python, node.js, go 甚至连p ...

  8. Atitit 智能云网络摄像机的前世今生与历史 优点  密码默认888888

    Atitit 智能云网络摄像机的前世今生与历史 优点  密码默认888888 用户名admin  密码aaaaaa 网络摄像机是一种结合传统摄像机与网络技术所产生的新一代摄像机,它可以将影像通过网络传 ...

  9. FPGA与simulink联合实时环路系列——实验三 按键key

    实验三 按键key 实验内容 在FPGA的实验中,经常涉及到按键的使用,按键是必不可少的人机交互的器件之一,在这些实验中,有时将按键的键值读取显示到数码管.LCD或者是通过串口传送到PC的串口助手上进 ...

随机推荐

  1. JSP报错01

    ZC: 创建一个JSP之后,就报如下错误. 1.错误: 1.1. 2.处理: Exlipse for JEE --> Project Explorer 中选择项目 --> 右击项目名 -- ...

  2. shell awk使用(转)

    #####awk  " 对每一行操作的代码块"  操作的文件  awk -F:   '{print $1,$2,$3,$4,$5}' helloworld.sh      打印字段 ...

  3. 【转】安装OS X虚拟机错误vcpu-0:VERIFY vmcore/vmm/main/physMem_monitor.c:1123

    新建一个虚拟机, 选择客户机操作系统为Apple MacOS X 10.10, 其余参数可以默认. 注意建好之后不要急着打开客户机, 因为直接打开你会发现新建的客户机将会无法启动. 仔细阅读Mac O ...

  4. Qt类型转换

    (转自:http://qimo601.iteye.com/blog/1260479) 1.char * 与 const char *的转换 char *ch1="hello11"; ...

  5. TCP与UDP(实时通讯)

    1.TCP使用 导入AsyncSocket资源文件夹,此文件是arc混编,加入库文件,如下图: #import "ViewController.h" #import "A ...

  6. eclipse配置及常用快捷键

    1. eclipse查看一个方法被谁引用(调用)的快捷键四种方式 1.(首推)双击选中该方法,Ctrl+Alt+H  如果你想知道一个类的方法到底被那些其他的类调用,那么请选中这个方法名,然后按“Ct ...

  7. html的meta总结,html标签中meta属性使用介绍(转)

    html的meta总结,html标签中meta属性使用介绍 2014年11月5日 5928次浏览 引子 之前的我的博客中对于meta有个介绍,例如:http://www.haorooms.com/po ...

  8. Js中分号使用总结

    作者:尤雨溪链接:https://www.zhihu.com/question/20298345/answer/49551142来源:知乎著作权归作者所有,转载请联系作者获得授权. 没有应该不应该,只 ...

  9. java-正则表达式判断手机号

    要更加准确的匹配手机号码只匹配11位数字是不够的,比如说就没有以144开始的号码段, 故先要整清楚现在已经开放了多少个号码段,国家号码段分配如下: 移动:134.135.136.137.138.139 ...

  10. Lua基础---循环语句

    Lua的循环和C语言的循环的语法其实差不多,所以,理解起来就很好理解的啦,所以实现也很简单,跟C没什么两样,都差不多. 案例如下: test1.lua -- 1.while循环 --[[ 理解为C语言 ...