原创 Altera Cyclone系列 FPGA 的配置

2011-4-19 15:51 6127 6 8 分类: FPGA/CPLD

        和单片机一样,FPGA运行也要有程序在里面,将程序烧写到FPGA内部的过程叫做FPGA的配置。FPGA的配置有很多种,但是无论那一种最终目的都是将程序弄到FPGA内部从而让FPGA能够运行。    

       从大方向可以分为两类,主动配置或者被动配置。Altera取名为Active和Passive配置,而Xilinx则取名为Master和Slave,根据配置数据位宽,又可以分为串行和并行两类。因此,Altera Cyclone系列 FPGA 的配置具体有以下四种:

       1:主动串行,最常用配置,具体过程这样,上电后FPGA从串行的FLASH里面一位一位的读取FLASH中的配置数据,注意,读FLASH的起始地址固定为0地址,数据全部读进FPGA后,由FPGA进行CRC校验,如果错误,FPGA会将nSTATUS管脚拉低表示内部配置出错。所以在配置过程中,nSTATUS管脚应该永远是高的。另外,FPGA还带有一个CRC_ERROR管脚,来显示CRC校验的成功与否。注意,有些Cyclone芯片没有该管脚,如Cyclone IV E系列的低电平1.0V内核器件就没有这个管脚。这种配置好处在于省事,数据的读取都有FPGA出时序,不需要我们考虑,缺点在于速度慢,反正串行的缺点慢是不可避免的,还有就是串行的FLASH为Altera公司的FLASH,Altera的配置文档上面始终始终只有自家的串行配置芯片EPCS系列,因而这个EPCS芯片就身娇价贵了,而且随着大容量的FPGA问世,要求EPCS的容量也越来越大,价格自然越来越贵。另外,早期的采用0.18um工艺的EPCS1和EPCS4只支持20MHZ速度,的确慢了点,后来EPCS16,EPCS64Y以及EPCS128由于容量大了,所以采用了0.15um更甚至0.13um,速度自然也上去了,值得注意的是,自CycloneIII开始,就不在支持EPCS1了,并且只支持0.15um技术的EPCS4。而且为了防止过压和不稳定,CycloneIII开始需要并联保护二极管和电容。不过Altera虽说只有EPCS系列可以用,但是市面上喝多25系列的串行FLASH其实都是支持该模式的,因为指令和EPCS系列的FLASH都一样。估计Altera的EPCS也是25系列的FLASH包了层皮,而性能却大了个折扣,据本人熟悉的25系列的FLASH,速度都要高于EPCS。

        2:主动并行,由于串行的确定,速度慢,串行FLASH容量太小,像Altera的大容量FPGA,例如EP4SGX530,最大的EPCS128都不够,还需要对数据压缩才够。所以可以采用并行的FLASH,这样FLASH容量就不在是问题。上电后,由FPGA自动读取并行FLASH里面的数据来配置FPGA自己,数据宽度采用16位,FLASH芯片选型也没有特定要求为Altera的了,只要和Numonyx的P30和P33标准兼容就可以了。这样的配置优点显而易见,就是速度快,FLASH容量不再受限制,还有一个优点就是可以用一块FLASH配置多个FPGA,当然,这个在主动串行配置也可以。缺点就是配置接口或者说管脚复杂,地址线,数据线,控制线加起来四五十更,布线就麻烦啦。不过这种方式也很常见。

        3:被动串行,很多产品都用该方式,所谓被动串行,就是上电后FPGA不再出时序,而是由外部控制器将数据按照时序要求一位一位的写到FPGA内部,全部写完后,FPGA工作。这种配置的书序和主动串行配置时序很相像,只是这个时候FPGA为被动器件。由外部的CPLD或者微处理器来配置数据,这种配置,尤其是以前,多用于需要升级FPGA程序的产品中,如远程升级等。这种方法优点就是时序控制简单明了,器件连接也简单,程序升级可控 ,缺点就是需要外部的控制器来配置,速度慢。可能上电后很久FPGA才配置完。

        4:被动并行,针对被动串行速度慢的情况下,就推出了这种模式,这时候数据位宽变为8位,这样速度就快了,但是缺点就是对处理器的IO口要多出来7根,布线就麻烦点,但是比主动并行还是好多了。

          除以上四种配置让FPGA工作外,还有一种最基本的就是JTAG下载程序,以前Altera的JTAG就扮演了和普通微处理器的JTAG一样的功能,下载程序到FPGA,注意,是到FPGA,调试程序,比如抓数据啊什么的,但是后来增加了两个功能,就是可以通过JTAG下载主动串行/主动并行外挂的FLASH,原理就是先在FPGA内部用JTAG下载一个Altera的IP,然后由这个IP将FPGA程序写到串行或者并行的FLASH中,其实说白了就是FLASH的一个写控制器。

        另外,从CycloneIII开始,芯片内部集成一种在线升级模块,Altera命名为SEU Mitigation,有了它,FPGA的IO口可以直接接收FPGA程序 ,然后将程序写到外挂的FLASH中空余的部分,写完以后通过该模块对写的程序进行检查是不是有效程序,CRC是否有错,然后该模块用心的程序覆盖之前0地址开始的程序,再复位FPGA,这样FPGA上电后就更新了程序。不过改功能只支持主动串行和主动并行配置,因为这两个外挂FLASH。这样,远程升级就不再需要微控制器了。再说明一点,如果外挂的FLASH还有空间剩余,咱们也可以用来存咱们需要的数据,或者NiosII的程序,而不像以前配置FLASH之能用于配置。这个已经是后话。            

        除此之外,CycloneV系列更是增加了CvP配置。并且主动串行支持四位,被动并行支持8位和16位,具体如何,可能还要等CycloneV的详细Datasheet出来,我们一起期待。总之,FPGA的配置和FPGA本身一样越来越神奇,让我们一起期待。

        以上的详细内容,各位可以去看各个Cyclone的DataSheet,里面都有详细的介绍。在此也只是抛砖引玉。


文章评论2条评论)

登录后参与讨论

用户1305701 2014-3-6 15:43

你好哈!请也发份给我,谢谢拉! qsh6666@foxmail.com!

用户1372824 2013-8-3 16:55

LZ我也要一份,帮忙发一下,谢谢! jiayong1913@163.com

路边侬 2013-7-12 09:26

写的非常详细清楚。受教了。 这么说串行主动配置也支持其他通用FLASH了?

用户1654288 2013-5-17 14:42

给我也发一份吧,kinglove45@163.com 谢谢

用户1557450 2013-3-21 13:33

请专家yulzhu给我一份,huapingwei@139.com

用户1604124 2013-1-30 09:19

学习了

用户377235 2012-12-10 22:59

哎呀,把邮箱写漏了,dpd1986@126.com,感谢!

用户377235 2012-12-10 22:58

能否发一份给我,感谢!最近在选一个TVS管,很多资料都没有波形系数那一块的介绍。

用户1433395 2012-12-8 10:54

请个我一份多谢!caobin52095@163.com

用户377235 2012-12-6 10:03

很好的资料,我想要一份,可以给我发吗?我是专业做大功率TVS管的,您能不能把TVS具体使用在什么地方和线路说的具体一点,我的邮箱renwei.rw@163.com,先谢谢您了。

相关推荐阅读
用户226122 2011-03-29 21:45
FPGA起步说
        FPGA设计说难不难,说简单不简单,就和练武一样,学习FPGA需要先大一点基础,就像练武之人也要扎马步一样,基础打好了,才能更好的 深入学习。            首先,我觉得最重要...
用户226122 2011-03-14 20:33
Altera编程杂谈
        不同的FPGA内部有不同的结构,就好比不同的单片机有不同的处理器一样,不同的处理器指令不一样,这是因为每个处理器的指令都是根据处理器硬件设计的,那么FPGA也一样,不同的FPGA编写代...
用户226122 2011-03-07 22:13
FPGA杂聊
        什么是FPGA,说白了FPGA就是一种芯片,英文翻译为Field Programmable Gate Array,也就是现场可编程门阵列,它可以通过你写的程序改变自身的逻辑结构,从而实...
用户226122 2011-03-07 21:54
Altera Cyclone系列FPGA资源介绍
         FPGA和单片机一样,是一颗芯片,既然是芯片,就有一些内部资源。         Altera的FPGA最基本的资源是LE,通过查看Cyclone系列FPGA手册可以看到,一个LE主...
用户226122 2011-03-05 21:40
开通博客
    今天开通EDN博客。      有些时候,人是有懒惰性的,有些时候,人也会忘记,有些时候,人还会骄傲。人毕竟是人,不是神,人吃五谷杂粮,也就只能做点点人间小事,今天开通这个博客,只是想记录一下...
我要评论
2
6
关闭 站长推荐上一条 /2 下一条