现场可编程门阵列(FPGA,Field Programmable Gate Array)是一种高密度可编程逻辑器材,其逻辑功用是经过把规划生成的数据文件装备进芯片内部的静态装备数据存储器(SRAM )来完结的,具有可重复编程性,能够灵敏完结各种逻辑功用。因为FPGA器材选用的是SRAM 工艺,在断电的情况下FPGA内的装备数据将丢掉。所以,在典型的选用FPGA器材的电子体系中一般将FPGA 的装备数据寄存于其兼容的SPROM 中,上电时由操控电路将SPROM中的装备数据装入FPGA器材中。可是一般的SPROM价格昂贵,且是一次性,不利于FPGA程序的更新,所以有必要剖析FPGA 的装备原理,选用廉价、能重复运用的办法装备FPGA。
本文首要依据Altera公司手册及曾经的经历,规划和完结了一种新的FPGA装备文件下载更新的办法。其首要原理是在每次发动体系时,由装备操控器从Flash中读出FPGA装备文件,再下载到FPGA中以完结器材的装备功用。当体系需求晋级更新FPGA装备文件时,可经过网络或许由主机经过JTAG(Joint Test Action Group)接口(未联网时)将装备文件发送给依据Nios II处理器的嵌入式体系中,由Nios II处理器更新体系中的Flash。当Flash内容更新后,体系就可完结在加电时由装备操控器主动将装备文件下载到FPGA中。而装备操控器是选用杂乱可编程逻辑器材(CPLD,Complex Programmable Logic Device),首要功用是完结并串转化。这样在不需求任何硬件动作和专业软件的情况下,只需求进行惯例软件操作就能够更新FPGA的装备文件。不只节省了本钱,还有效地缩小了体系体积,有利于今后体系工程的晋级更新。
1 依据Nios II的嵌入式体系简介
Nios II是Altera公司在第一代软核处理器Nios的基础上于2004年5月为其FPGA产品配套开发的软核CPU。Nios II是一种选用流水线技能、单指令流的依据RISC技能的通用嵌入式软核处理器、哈佛体系结构,地址、数据、指令均为32位,最高功用可到达200DMIPS (Dhrystones MIPS)。Nios II体系中的外设具有可装备性,用户可依据实践运用来裁剪,而且Nios II处理器有很好的自定义指令支撑,大部分指令均能够在一个时钟周期内完结,这也是可装备处理器的优势地点。Nios II在逻辑功用上是32位的精简指令集CPU;而在完结办法上,它是在FPGA上经过编程办法完结的,这也是与传统的CPU一个底子不同。Nios II的总线办法也选用了一种简略的总线体系结构——Avalon总线。该软核CPU为可编程片上体系SOPC给用户供给了一套归纳处理方案,它能够与用户自定义逻辑结合构成SOC体系,并下载到Altera的FPGA 芯片中,使得FPGA在嵌入式体系范畴的位置越来越重要。
依据Nios II的嵌入式体系首要完结了绞线式列车总线(WTB,Wire Train Bus) 网络节点机的功用,该体系是依据SOPC技能,首要定制Nios II的嵌入式CPU、必要的外部和相关装备的芯片,然后依照WTB规范和Nios II特有的Avalon总线接口规划并经过VHDL完结MAU的功用,由Nios II来操控WTB网络通讯功用。依据Nios II嵌入式软核WTB网络节点机硬件体系结构首要由FPGA、Flash nemory、SSRAM Memory、MAX7000装备操控器等硬件组成。FPGA 选用Altera公司的Cyclone系列的EP1C6Q240C8,运用Altera公司的MAX7000系列的EPM7256装备操控器完结对EP1C6Q240C8的装备,依据Nios II的嵌入式体系的原理图如图1所示。
其间图中的JTAG2标明有2个JTAG接口,一个用来在线装备调试,一个用来下载更新装备文件。
2 FPGA 器材的装备办法
FPGA的装备办法分为主动办法(AS,AcTIve Serial)、被迫办法(PS,Passive Serial)和JTAG办法,数据宽度有8位并行办法和串行办法两种。在主动办法下,FPGA在上电后,由PLD器材引导装备操作进程,它操控着外部存储器和初始化进程,主动将装备数据从相应的外存储器读入到SRAM 中,完结内部结构映射;而在被迫办法下,FPGA则作为隶属器材,由相应的操控电路或微处理器供给装备所需的时序,完结装备数据的下载。
下面临依据ICR(In-Circuit Reconfigurability)FPGA器材的装备办法进行详细剖析:
(1) 主动串行办法(AS,AcTIve Serial):首要运用EPC装备器材,适运用低速设备的装备;
(2) 被迫串行办法(PS,Passive Seria1):运用装备操控器的串行接口;
(3) 被迫并行同步办法(PPS,Passive Parallel Synchronous):运用装备操控器的并行同步接口;
(4) 被迫并行异步办法(PPA,Passive Parallel Asynchronous):运用装备操控器的并行异步接口;
(5) 鸿沟扫描办法(JTAG,Joint Test AcTIon Group):运用JTAG下载电缆。
依据AS办法装备运用EPC装备器材进行装备时,首要将装备文件从计算机下载到EPC装备器材中去,然后由EPC装备器材操控装备时序对FPGA进行装备。EPC装备器材有一次可编程和可擦写编程型两种:一次可编程型芯片只能写入一次,不适于开发阶段重复调试、修正及产品的便利晋级;可擦除编程型价格昂贵,且容量有限,关于容量较大的可编程逻辑器材,需求多片装备芯片组成菊花链进行装备,增加了体系规划的难度。
运用PS、PPS、PPA办法装备时,装备文件事前是以二进制办法保存在体系ROM 中,然后经过装备操控器将装备数据送进FPGA中。PS是经过串行办法送到FPGA中,PPS是以并行办法送给FPGA。FPGA在其内部将并行数据转化成串行数据,该数据转化时需求外部装备时钟的驱动。比较PS和PPS,所用的装备时刻简直相同,而PS的接口办法比较简略,所以嵌入式体系中一般挑选PS办法装备FPGA。运用PPA办法装备数据时,装备操控器将装备数据以并行办法送给FPGA,然后在FPGA内部进行数据串行化处理。与PPS不一样的当地是串行化处理时不需求装备外部时钟的驱动,但接口更杂乱,工程中很少运用。
鸿沟扫描办法需求衔接计算机,无法在现场运用,嵌入式体系中很少选用这种办法。
经过上述的剖析,在嵌入式体系中要运用FPGA时,能够选用专用EPC装备器材、PS、PPS、PPA和CPLD装备器材,可是PS、PPS、PPA比专用EPC装备更具本钱和体积优势。在PS、PPS、PPA中,PS又是最优的通讯办法。所以在嵌入式体系中,挑选运用CPLD装备器材的PS被迫串行办法来装备FPGA最为适宜。
而本文正是运用CPLD装备操控器依据PS办法进行FPGA装备的新办法,在每次发动体系时,由装备操控器从Flash中读出FPGA装备文件的数据信息,再下载到FPGA中以完结器材的装备功用。当体系需求晋级更新FPGA装备文件时,可经过网络或许由主机经过JTAG接口(未联网时)将装备文件发送给依据Nios II处理器的嵌入式体系中,由Nios II处理器更新体系中的Flash。当Flash内容更新后,体系就可完结在加电时由CPLD装备操控器主动将装备文件下载到FPGA中。这样在不需求任何硬件动作和专业软件的情况下,只需求进行惯例软件操作就能够更新FPGA的装备文件。CPLD装备操控器首要是在装备FPGA时将FLASH寄存的装备文件中的并行数据转化为串行数据,完结体系的加电自运转。
3 嵌入式体系中FPGA 的装备电路规划
3.1 PS办法装备时序
在嵌入式体系中,装备操控器能够产生装备时序,能够和FPGA直接通讯,将FLASH 中的装备文件传输到FPGA 的SRAM 中去。一般运用PS被迫串行办法进行装备FPGA,下面就通讯中运用到的5根信号线的装备时序进行阐明。
5根信号线分别为nCONFIG、nSTATUS、CONF_DONE、DCLK、DATA,衔接装备操控器的5个I/O 口和对应的FPGA的引脚,装备时序图如图2所示。
装备操控器上的5个I/O端口衔接上述5个信号线。其间衔接nCONFIG、DCLK、DATA端口设置成输出态,nSTATUS、CONF_DONE端口设置成输入态。当装备操控器开端与FPGA通讯时,装备操控器首要在nCONFIG上送出一个大于8 um的负脉冲,而且检测nSTATUS 上的信号。当FPGA 接纳到nCONFIG上的下降沿时,迅速将nSTATUS和CONF_DONE拉低,而且坚持低电平信号一直到nCONFIG举高电平。当nCONFIG上举高电平后过1 um,nSTATUS也将电平举高,装备操控器检测到nSTATUS上的改变后以为FPGA 现已做好了接纳数据的预备。下一步装备操控器将产生装备时钟脉冲,装备时钟的第一个上升沿至少要比nSTATUS上升沿晚1 um。又因为装备数据和装备时钟上升沿同步,所以在装备时钟上升沿产生之前,数据线有必要现已有了装备数据信号。装备数据是依照低位在前高位在后的次第把数据送上数据线。当一切数据都传输结束后,CONF_DONE线上电平被举高以示装备结束。假如传输中呈现了反常,FPGA迫使nSTATUS拉低电平,装备操控器一旦检测到了这种现象将从头开端装备。因为装备文件中现已包含了FPGA初始化的一些代码,所以传输完装备文件后,FPGA就能够正常作业了。
3.2 依据CPLD装备操控器的装备电路规划
CPLD是一种用户依据各自需求而自行结构逻辑功用的数字集成电路。其根本规划办法是凭借Quartus II开发软件渠道,经过JTAG下载电缆将代码传送到方针芯片中,完结体系装备所需的时序要求和功用需求。而更重要的是CPLD装备操控器能够进行上万次的烧写操作。
嵌入式体系中FPGA 的PS办法装备办法电路规划如图3所示。FPGA和FLASH、SSRAM组成了一个最根本的嵌入式体系,其间将Nios II软核处理器嵌入到FPGA中。FLASH 作为程序的存储器,其间存储着体系的整个软件运用程序和装备文件。SSAM作为体系程序运转空间,能够有效地处理装备操控器本身SRAM容量小的问题。
在图3所示的规划中,MSEL0和MSEL1是装备专用线,假如MSEL0接高电平(VCC),MSEL1接地(GND),则此刻的装备办法为PS办法; 假如MSELO 和MSEL1都接地(GND),则装备办法为AS办法。CPLD操控器的操控信号MAX_control_signal首要包含flash_CS_n (片选)、flash_OE_n (输出使能)、flash_RW_n (读写使能)、flash_RESET_n(重置)、flash_BYTE_n (字节传输)等信号线。
装备文件经过Altera的Quartus II软件以.pof(Programmer Object Files)文件格局下载到EPM7256装备操控器内,假如装备有过错,该装备操控器能够进行屡次下载,直至终究完结装备功用。
FLASH中存储的程序包含体系装备程序文件、软件程序,其格局为.flash。体系加电后,装备操控器从FLASH 的0地址开端将装备文件进行并/串转化后(行将图3中的flash_DATA[7..0]转化为DATA0)加载到FPGA中,完结体系加电时的主动装备功用;一起Nios II处理器将FLASH 中的运用程序移至到SSRAM 中运转,然后完结嵌入式体系的初运转。经过Nios II IDE东西能够将装备文件FPGA 的.sof文件格局转化为Flash存储器所需求的。 flash文件格局。
4 装备文件的规划与完结
为了保证装备进程的正确,进步体系的装备功用,在装备文件规划时应严厉依照FPGA的Ps装备流程进行,并在装备进程中一直监控装备作业状况,在完善的装备程序合作下能够纠正如上电次第导致装备不正常等过错。该装备程序是选用VHDL言语编写的,编写完结后,将装备文经过JTAG接口下载到EPM7256装备操控器内,依据图2的PS装备时序,其装备流程如下:
(1)装备信号的初始化:DATAO=0,DCLK=0,nCONFIG=0,CONF_DONE=1和nSTATUS=1,并坚持2 us以上。
(2)检测nSTATUS,假如为“0”,标明FPGA 已呼应装备,可开端进行装备,不然报错,并回来1。正常情况下,nCONFIG=0后1 us内nSTATUS为“0”。
(3)置nCONFIG=1,并延时5 us。
(4)DATAO上放置数据(低位在前),DCLK=1,延时。
(5)DCLK=0,并检测nSTATUS,若为“0”,则报错,重返1。
(6)预备下一位数据,并从头履行(4)、(5),直到数据发送完停止。
(7)此刻CONF_DONE应变成“1”,标明FPGA已完结装备,假如数据发送完后,CONF_DONE为“0”,有必要从头装备回来1。
(8)装备完结后,再送出299个周期(Cyclone要求的)的DCLK,以便FPGA完结初始化。
5 结束语
本文介绍了经过用CPLD 的MAX7000 系列装备操控器EPM7256和Flash完结Cyclone系列的EP1C6Q240C8 FPGA装备文件下载更新的办法。与传统的JTAG或PROM 串行下载装备办法比较,此办法具有更新装备文件灵敏便利、易于操作、愈加有利于体系装备文件的晋级等特色。与常用的串行装备办法比较,该装备办法更具有装备时刻短,准确率高、易于完结等长处。尽管该装备操控电路是为装备Altera公司cyclone系列的FPGA器材而规划的,但稍加修正也适用于其它系列的。FPGA器材,故其有必定的通用性,选用此办法特别适用于需求不断更新的体系规划中,具有较为宽广的运用远景。