原创 【FPGA笔记】初识

2014-2-23 20:38 1076 9 14 分类: FPGA/CPLD

    刚开始接触FPGA是13年11月份,那时候买了块Altera的板子(后来发现是进阶板)和特权同学的书,学了一周因为各种事停了一段时间,寒假继续学习。

    FPGA是逻辑器件,所以数电是基础,数电没点底子的话很多东西都看不懂。所以寒假大概花了一周左右在家啃数电,然后再重新开始学Verilog。

    说到FPGA,不过就是一块可编程器件。它与ASIC的区别就在于ASIC是定制IC(当然现在市场上也有半定制版的IC),内部功能已经完全固化了,而FPGA是可以根据用户的需求进行开发和设计的。一般的芯片都可擦除几千次。不过有一个特例,就是Actel公司出的反熔丝结构的FPGA,这种结构的芯片只能编程一次,之后就成为了与ASIC一样的固定逻辑器件。优点是很大程度的提高了系统的稳定性并且也提高了保密性,这个用在航天领域比较多。其他领域一般采用的是Xilinx和Altera公司生产的低高端芯片。高校一般用的是Altera的,企业一般用赛灵思的。


    FPGA和CPLD的区别是大部分相关书籍一开篇就要介绍的,主要是怕读者弄混淆。CPLD和FPGA都是PAL和GAL的延伸,但两者还是有点区别。CPLD是基于ROM结构的,下电后代码不丢失,硬件设计简单,逻辑资源不大,应用简单。而FPGA是基于RAM结构的,下电后代码丢失,硬件设计复杂,内部有数万甚至数百万的逻辑门,应用复杂。不过两者的开发流程都差不多。


    FPGA主要由五个部分组成:可编程输入/输出模块,基本可编程逻辑单元(查找表+寄存器),嵌入式块RAM,布线资源和底层嵌入单元。其中布线资源是架通FPGA个单元的桥梁,就像马路一样。它又分全局性专用布线资源、长线资源、短线资源和其他。而底层嵌入式单元主要是指嵌入式的软核和硬核。


    再谈谈应用领域,目前主要涉及无线通信、消费电子和逻辑接口。无线通信领域主要用在协议实现上,因为FPGA有丰富的电平接口,对于一些标准协议的非标准应用还是十分合适。消费电子领域的话个人觉得用的最多的还是实时控制(好吧,承认这点有点受特权同学的影响了。。),逻辑接口主要采用FPGA来简化外围设计(这块不太了解,主要是数据传送方面的。。)


    基本开发流程包括:设计输入、设计仿真、设计综合、布局布线和配置。
   
 

以上是每本入门书都会涉及的东西,下面来讲讲FPGA到底是个什么样的东西?

    大家高中的时候就学过电路,老师也应该讲过与门或门非门之类的门电路吧,其实这就是逻辑电路。一个现代的电子系统如果还是像以前一样画电路图的话现在的软件原理图界面肯定不够用,然而电路是有电路结构的,不同的结构用不同的逻辑符号表示(比如说与门,结构就是要两个开关同时关闭电路才能通),所以这时候系统图就可以简化了,这也就是刚学电子的人为什么有时候去百度上搜一张电路图发现常用的元器件什么的都没有了,因为电路图的部分全用逻辑器件替代了。再往上走一个层次,有些逻辑门组合在一起用的特别多,这时候就会出现定制版的IC芯片(比如,NE555,CD4069等),用的时候只需要接好对应的管脚就好了(这也就是为什么用芯片要看芯片资料的原因了),再往上走,集成度再高一点就是单片机了,资源再丰富一点,集成度再高一点,那就是现在的三大高科技方向——ARM,DSP和FPGA了。


     那FPGA到底是什么呢?想像一下,你面前有各种各样的逻辑门,资源十分丰富,在搭系统的时候你可能这会用这部分,换个系统又用到了其他的一部分,或者在一定的需求下要求你要从这部分电路跳到另一部分电路去。其实,FPGA就像是一个放满了各种各样逻辑门电路的盘子,它把数百万的逻辑门都集中在一块芯片里面。你在Quartus(开发工具)里面用Verilog(硬件描述语言)去编程,将不同的逻辑门组合在一起就成了一个系统。仿真之后那块FPGA芯片就成了你自己开发有特定功能的芯片了(它是块什么样的芯片完全取决于你)。

 

附注:个人认识,如果哪里理解有错,还请大神们指出!
    

PARTNER CONTENT

文章评论5条评论)

登录后参与讨论

用户401489 2014-3-10 09:09

支持美女工程蚰

用户381237 2014-3-8 12:35

FPGA验证工程师,就是芯片公司做芯片投产前,需要用FPGA进行验证。这部分工作最繁琐,因为逻辑是别人写的,FPGA逻辑工程师写的,而且,asic的RTL移植到FPGA上,需要做一些处理,memory替换啊,时序约束等等。还有些代码的修改!要懂FPGA硬件设计跟FPGA逻辑设计! 现在上海芯片公司很多,FPGA验证工程师也需要很多。个人要求很高。 之前在军工企业工作,DSP用的是高端DSP TI公司的6678,数字信号处理的.别的工程师调的要命!在学校,我看老师用TI 2系列的dsp 工业级别的。 然后现在嘛,公司做的芯片是基于arm架构的。 看你的博文,估计你做的也没做多么高深。因为在学校容易走向迷茫,觉得什么高端就做什么。 这样在学校可以被称为好学。 在工作中,称为不好学。因为工作就是:选定一个,好好做下去!选的时候慎重点,人生没有多少机会去选择啊!

用户381237 2014-3-8 12:34

FPGA有逻辑工程师 敲代码,比如说做算法,做接口转换(例如PCIE转换成AXI总线跟arm交互等),做controller(写一个ddr2 or ddr3 控制器)。 逻辑工程师要求学历有点高,原因吗,需要的背景知识比较多,可能在本科阶段,没有机会涉及高深算法,或者一些controller 比如说USB的控制器,以太网控制器,你没有深入理解协议,你根本写不出来,要知道,FPGA里的那些IP也是逻辑工程师写滴,只是不是一个人写的 是整个团队写的而已。但要规划好,团队的队员能力也要比较强! 当然上述说法也不是绝对的额,有些例外哈。工作吗,大部分跟学历没关系,跟工作时间,工作态度,工作激情有关,个人努力很重要,个人智慧潜能的挖掘最重要。学历只是参考。

用户381237 2014-3-8 12:32

FPGA 有三种分别: FPGA硬件工程师 在整个产品过程中,设计FPGA硬件部分,要注意的是管脚分配,IO电压,内核电压。电压是不能搞错的,比如DDR2,DDDR3,QDR+SRAM,LVDS等等。这部分的电压设计要正确,并且管脚分配是有讲究的,而且需要跟FPGA逻辑工程师配合,甚至是逻辑工程师给的。特别的PCIE,rapidio,rocketIO等的专用模块,设计起来时很有讲究的。 大公司有人做。小公司一个人做,从原理图设计,到逻辑设计,到layout。特别的layout在一些公司是专门人做的。比如我之前的公司,layout 24层板,30多层板,专人做的。

用户25837 2014-3-8 09:56

有意思,不错,谢谢分享!
相关推荐阅读
用户1736391 2014-03-05 10:05
【FPGA笔记】Verilog HDL设计基础(上)
    FPGA有两种硬件描述语言,一个是Verilog,一个是VHDL。Verilog适合系统级,算法级,寄存器传输级,逻辑级,门级和开关电路级的设计,而VHDL更适合特大型的系统级设计。由于一...
用户1736391 2014-02-11 21:20
写在前面:因为我们都是些为梦想执着的疯子
  因为我们都是些为梦想执着的疯子,今年1月份在微博上看到的,后来成了签名。可能对EDN的工程师们来说这句话太幼稚了,的确,没有考虑到的东西太多了。   今年20岁,普本大二电子在校生。两年前带着梦想...
我要评论
5
9
关闭 站长推荐上一条 /3 下一条