APP下载

基于CPLD的FPGA从并快速加载方案

2014-10-24李春雨

中兴通讯技术 2014年4期
关键词:控制器启动

李春雨

摘要:提出了基于复杂可编程逻辑器件(CPLD)的现场可编程门阵列(FPGA)从并加载方案,及逻辑代码的实现过程,并给出仿真结果。该方案理论计算结果表明,当加载SPARTAN-6系列最高端的6SLX150T时,采用基于CPLD的从并加载方式,共需要加载时间为1.221 s,完全满足通信产品的快启动要求,具有较高的应用价值。

关键词: FPGA;CPLD;控制器;从并;加载;启动

Abstract: This paper describes field programmable gate array (FPGA) parallel loading scheme, which is based on complex programmable logic device (CPLD). This paper also describes the implementation process of logic code and provides simulation results. The calculation results of this scheme show that using a CPLD-based parallel-loading scheme when loading the 6SLX150T (highest level of SPARTAN-6), the loading time is just 1.221 s. This fully satisfies the quick boot of communication products and has higher application value.

Key words: FPGA; CPLD; controller; salve parallel; loading; boot

现场可编程门阵列(FPGA)作为专用集成电路(ASIC)领域的一种半定制电路[1],可以根据设计的需要灵活实现各种接口或者总线的输出,在设备端的通信产品中已得到越来越广泛的使用[2]。FPGA是基于静态随机存储器(SRAM)结构的,断电后程序丢失后的每次上电都需要重新加载程序。且随着FPGA规模的升级,加载程序的容量也越来越大,如Xilinx公司的Spartan -6系列中的6SLX150T,其加载容量最大可以达到4.125 MB [3]。在通信产品中,要求系统启动快,相应FPGA加载时间尽可能短,因此其加载方式是产品设计时必须要妥善解决的一个问题。文章介绍了通过复杂可编程逻辑器件(CPLD)对FPGA加载方式的并行实现,满足通信系统的加载速度快、占用资源少的要求。

1 FPGA常用配置方式

FPGA的配置数据通常存放在系统中的存储器件中,上电后控制器读取存储器中的bit文件并加载到FPGA中[4],配置方式有JTAG、从并、从串、主从[5]4种,不同厂家叫法不同,但实现方式基本都是一样的[6] 。

(1)边界扫描JTAG方式。单板调试阶段常用JTAG模式[7],该方式需要控制器,FPGA等芯片JTAG接口构成菊花链,且在该模式下,控制器其他功能不能使用。

(2)从串方式。从串加载方式占用资源少,主要是和FPGA相连的I/O接口较少,但是一个配置时钟只能传输一个bit数据,速度相对较低。

(3)主从方式。该方式最主要的缺点是配套使用的FLASH存储器必须是FPGA厂家指定的型号,且这个FLASH容量不大,不能和控制器的FLASH共用,使用这种方式,单板上就会有两个FLASH,增加产品成本,因此该方案使用较少。

(4)从并方式。即文章中探讨的FPGA加载方案。

2 从并加载方式的实现

以Xilinx公司Spartan -6系列FPGA为例,与从并加载相关的管脚如表1所示[8]。

由表1可以看出,从并加载接口占用的管脚资源是比较多的,即使加载数据总线使用8位,也要14个管脚,CPU一般没有这么多通用输入/输出(GPIO)口,因此从并加载一般和CPLD配套使用。其加载流程如图1所示。

3 基于CPLD的FPGA加载

方案

3.1方案介绍

在设备端通信产品中,基于CPLD的FPGA从并加载框如图2所示,配置数据存储在FLASH中,且在加载数据之前,CPU通过局部总线和双倍速内存(DDR)接口,将配置数据从FLASH中搬移到DDR颗粒;真正需要加载时,再通过DDR2接口将配置数据搬移到CPU的缓存中,DDR2接口速度很快,其时钟频率可以达到266 MHz,因此①、②两步加载时间可以忽略不计。

之后CPU通过和CPLD的接口③——8位的局部总线接口,将配置数据逐字节的写入CPLD的寄存器中。以MIPS系列CPU XLS408为例,XLS408工作时钟频率为66.7 MHz,写总线周期最快需要10个工作时钟周期[9],即6.67 MHz,这一步受局部总线速度限制。

数据写入到CPLD后,再通过接口④——CPLD与FPGA之间的从并接口,将数据加载到FPGA,从并接口是同步总线,加载时间受限于总线时钟CCLK频率。

本方案的优点为:①、②两条路径可以在加载之前处理,且运行速度快,不占用加载时间。加载时间只受③、④的限制,而③受限于写总线周期间隔,④受限于从并接口的时钟。

3.2程序实现

CPLD从并程序采用verilog[10-11]语言实现,该加载模块接口定义如下:

程序实现流如图3所示。

FPGA加载片选和写信号产生部分代码如下:

4 仿真及加载结果分析

基于modelsim 6.5SE[12-13]仿真波形可以看出CPU每加载1字节数据需要向CPLD写1次加载数据,这共需花费一个局部总线周期,局部总线频率最快为6.67 MHz。因此CPU加载4.125 MB数据到CPLD共需时间为:

CPLD需要1个CCLK周期写1字节数据到FPGA,CCLK则是利用CPU局部总线的写信号产生,可以实现CCLK和数据的同步,因此CCLK 时钟速率为6.67 MHz,因此加载4.125 MB数据到FPGA,共需时间为:

[4.125CCLK] = [4.125 6.67 MHz] = 0.61 s (2)

FPGA上电需要1 ms,因此当FPGA使用SPARTAN-6系列最高端的6SLX150T时,采用基于CPLD的从并加载方式,共需要的加载时间为1.221 s,满足通信产品FPGA加载时间小于2 s的要求。而如果采用从串等加载方式,使用ARM7处理器作为控制器,对于CycloneII系列中的EP2C35,配置文件大小1.16 MB,加载时间需要1.30 min[14];采用基于CPLD的从串加载方式,加载同样4.125 MB的FPGA数据,CPLD加载时钟33 MHz,则加载时间需要3.8 s[15],FPGA加载时间过长,则会影响系统的启动时间。

表2是常用加载方式加载6SLX150T型号FPGA芯片数据所需时间比较。

从上述分析可以得出结论,如果提高CPU的局部总线写速度,加载FPGA的时间就会更快。

5结束语

使用基于CPLD的FPGA从并加载方案,相对于其它几种加载方式,虽然加载管脚增多,但加载时间大大缩短,并且如果提高CPU局部总线的写速度,加载速度有进一步提高空间,满足通信系统快速启动的要求,具有很高的实用价值。

摘要:提出了基于复杂可编程逻辑器件(CPLD)的现场可编程门阵列(FPGA)从并加载方案,及逻辑代码的实现过程,并给出仿真结果。该方案理论计算结果表明,当加载SPARTAN-6系列最高端的6SLX150T时,采用基于CPLD的从并加载方式,共需要加载时间为1.221 s,完全满足通信产品的快启动要求,具有较高的应用价值。

关键词: FPGA;CPLD;控制器;从并;加载;启动

Abstract: This paper describes field programmable gate array (FPGA) parallel loading scheme, which is based on complex programmable logic device (CPLD). This paper also describes the implementation process of logic code and provides simulation results. The calculation results of this scheme show that using a CPLD-based parallel-loading scheme when loading the 6SLX150T (highest level of SPARTAN-6), the loading time is just 1.221 s. This fully satisfies the quick boot of communication products and has higher application value.

Key words: FPGA; CPLD; controller; salve parallel; loading; boot

现场可编程门阵列(FPGA)作为专用集成电路(ASIC)领域的一种半定制电路[1],可以根据设计的需要灵活实现各种接口或者总线的输出,在设备端的通信产品中已得到越来越广泛的使用[2]。FPGA是基于静态随机存储器(SRAM)结构的,断电后程序丢失后的每次上电都需要重新加载程序。且随着FPGA规模的升级,加载程序的容量也越来越大,如Xilinx公司的Spartan -6系列中的6SLX150T,其加载容量最大可以达到4.125 MB [3]。在通信产品中,要求系统启动快,相应FPGA加载时间尽可能短,因此其加载方式是产品设计时必须要妥善解决的一个问题。文章介绍了通过复杂可编程逻辑器件(CPLD)对FPGA加载方式的并行实现,满足通信系统的加载速度快、占用资源少的要求。

1 FPGA常用配置方式

FPGA的配置数据通常存放在系统中的存储器件中,上电后控制器读取存储器中的bit文件并加载到FPGA中[4],配置方式有JTAG、从并、从串、主从[5]4种,不同厂家叫法不同,但实现方式基本都是一样的[6] 。

(1)边界扫描JTAG方式。单板调试阶段常用JTAG模式[7],该方式需要控制器,FPGA等芯片JTAG接口构成菊花链,且在该模式下,控制器其他功能不能使用。

(2)从串方式。从串加载方式占用资源少,主要是和FPGA相连的I/O接口较少,但是一个配置时钟只能传输一个bit数据,速度相对较低。

(3)主从方式。该方式最主要的缺点是配套使用的FLASH存储器必须是FPGA厂家指定的型号,且这个FLASH容量不大,不能和控制器的FLASH共用,使用这种方式,单板上就会有两个FLASH,增加产品成本,因此该方案使用较少。

(4)从并方式。即文章中探讨的FPGA加载方案。

2 从并加载方式的实现

以Xilinx公司Spartan -6系列FPGA为例,与从并加载相关的管脚如表1所示[8]。

由表1可以看出,从并加载接口占用的管脚资源是比较多的,即使加载数据总线使用8位,也要14个管脚,CPU一般没有这么多通用输入/输出(GPIO)口,因此从并加载一般和CPLD配套使用。其加载流程如图1所示。

3 基于CPLD的FPGA加载

方案

3.1方案介绍

在设备端通信产品中,基于CPLD的FPGA从并加载框如图2所示,配置数据存储在FLASH中,且在加载数据之前,CPU通过局部总线和双倍速内存(DDR)接口,将配置数据从FLASH中搬移到DDR颗粒;真正需要加载时,再通过DDR2接口将配置数据搬移到CPU的缓存中,DDR2接口速度很快,其时钟频率可以达到266 MHz,因此①、②两步加载时间可以忽略不计。

之后CPU通过和CPLD的接口③——8位的局部总线接口,将配置数据逐字节的写入CPLD的寄存器中。以MIPS系列CPU XLS408为例,XLS408工作时钟频率为66.7 MHz,写总线周期最快需要10个工作时钟周期[9],即6.67 MHz,这一步受局部总线速度限制。

数据写入到CPLD后,再通过接口④——CPLD与FPGA之间的从并接口,将数据加载到FPGA,从并接口是同步总线,加载时间受限于总线时钟CCLK频率。

本方案的优点为:①、②两条路径可以在加载之前处理,且运行速度快,不占用加载时间。加载时间只受③、④的限制,而③受限于写总线周期间隔,④受限于从并接口的时钟。

3.2程序实现

CPLD从并程序采用verilog[10-11]语言实现,该加载模块接口定义如下:

程序实现流如图3所示。

FPGA加载片选和写信号产生部分代码如下:

4 仿真及加载结果分析

基于modelsim 6.5SE[12-13]仿真波形可以看出CPU每加载1字节数据需要向CPLD写1次加载数据,这共需花费一个局部总线周期,局部总线频率最快为6.67 MHz。因此CPU加载4.125 MB数据到CPLD共需时间为:

CPLD需要1个CCLK周期写1字节数据到FPGA,CCLK则是利用CPU局部总线的写信号产生,可以实现CCLK和数据的同步,因此CCLK 时钟速率为6.67 MHz,因此加载4.125 MB数据到FPGA,共需时间为:

[4.125CCLK] = [4.125 6.67 MHz] = 0.61 s (2)

FPGA上电需要1 ms,因此当FPGA使用SPARTAN-6系列最高端的6SLX150T时,采用基于CPLD的从并加载方式,共需要的加载时间为1.221 s,满足通信产品FPGA加载时间小于2 s的要求。而如果采用从串等加载方式,使用ARM7处理器作为控制器,对于CycloneII系列中的EP2C35,配置文件大小1.16 MB,加载时间需要1.30 min[14];采用基于CPLD的从串加载方式,加载同样4.125 MB的FPGA数据,CPLD加载时钟33 MHz,则加载时间需要3.8 s[15],FPGA加载时间过长,则会影响系统的启动时间。

表2是常用加载方式加载6SLX150T型号FPGA芯片数据所需时间比较。

从上述分析可以得出结论,如果提高CPU的局部总线写速度,加载FPGA的时间就会更快。

5结束语

使用基于CPLD的FPGA从并加载方案,相对于其它几种加载方式,虽然加载管脚增多,但加载时间大大缩短,并且如果提高CPU局部总线的写速度,加载速度有进一步提高空间,满足通信系统快速启动的要求,具有很高的实用价值。

摘要:提出了基于复杂可编程逻辑器件(CPLD)的现场可编程门阵列(FPGA)从并加载方案,及逻辑代码的实现过程,并给出仿真结果。该方案理论计算结果表明,当加载SPARTAN-6系列最高端的6SLX150T时,采用基于CPLD的从并加载方式,共需要加载时间为1.221 s,完全满足通信产品的快启动要求,具有较高的应用价值。

关键词: FPGA;CPLD;控制器;从并;加载;启动

Abstract: This paper describes field programmable gate array (FPGA) parallel loading scheme, which is based on complex programmable logic device (CPLD). This paper also describes the implementation process of logic code and provides simulation results. The calculation results of this scheme show that using a CPLD-based parallel-loading scheme when loading the 6SLX150T (highest level of SPARTAN-6), the loading time is just 1.221 s. This fully satisfies the quick boot of communication products and has higher application value.

Key words: FPGA; CPLD; controller; salve parallel; loading; boot

现场可编程门阵列(FPGA)作为专用集成电路(ASIC)领域的一种半定制电路[1],可以根据设计的需要灵活实现各种接口或者总线的输出,在设备端的通信产品中已得到越来越广泛的使用[2]。FPGA是基于静态随机存储器(SRAM)结构的,断电后程序丢失后的每次上电都需要重新加载程序。且随着FPGA规模的升级,加载程序的容量也越来越大,如Xilinx公司的Spartan -6系列中的6SLX150T,其加载容量最大可以达到4.125 MB [3]。在通信产品中,要求系统启动快,相应FPGA加载时间尽可能短,因此其加载方式是产品设计时必须要妥善解决的一个问题。文章介绍了通过复杂可编程逻辑器件(CPLD)对FPGA加载方式的并行实现,满足通信系统的加载速度快、占用资源少的要求。

1 FPGA常用配置方式

FPGA的配置数据通常存放在系统中的存储器件中,上电后控制器读取存储器中的bit文件并加载到FPGA中[4],配置方式有JTAG、从并、从串、主从[5]4种,不同厂家叫法不同,但实现方式基本都是一样的[6] 。

(1)边界扫描JTAG方式。单板调试阶段常用JTAG模式[7],该方式需要控制器,FPGA等芯片JTAG接口构成菊花链,且在该模式下,控制器其他功能不能使用。

(2)从串方式。从串加载方式占用资源少,主要是和FPGA相连的I/O接口较少,但是一个配置时钟只能传输一个bit数据,速度相对较低。

(3)主从方式。该方式最主要的缺点是配套使用的FLASH存储器必须是FPGA厂家指定的型号,且这个FLASH容量不大,不能和控制器的FLASH共用,使用这种方式,单板上就会有两个FLASH,增加产品成本,因此该方案使用较少。

(4)从并方式。即文章中探讨的FPGA加载方案。

2 从并加载方式的实现

以Xilinx公司Spartan -6系列FPGA为例,与从并加载相关的管脚如表1所示[8]。

由表1可以看出,从并加载接口占用的管脚资源是比较多的,即使加载数据总线使用8位,也要14个管脚,CPU一般没有这么多通用输入/输出(GPIO)口,因此从并加载一般和CPLD配套使用。其加载流程如图1所示。

3 基于CPLD的FPGA加载

方案

3.1方案介绍

在设备端通信产品中,基于CPLD的FPGA从并加载框如图2所示,配置数据存储在FLASH中,且在加载数据之前,CPU通过局部总线和双倍速内存(DDR)接口,将配置数据从FLASH中搬移到DDR颗粒;真正需要加载时,再通过DDR2接口将配置数据搬移到CPU的缓存中,DDR2接口速度很快,其时钟频率可以达到266 MHz,因此①、②两步加载时间可以忽略不计。

之后CPU通过和CPLD的接口③——8位的局部总线接口,将配置数据逐字节的写入CPLD的寄存器中。以MIPS系列CPU XLS408为例,XLS408工作时钟频率为66.7 MHz,写总线周期最快需要10个工作时钟周期[9],即6.67 MHz,这一步受局部总线速度限制。

数据写入到CPLD后,再通过接口④——CPLD与FPGA之间的从并接口,将数据加载到FPGA,从并接口是同步总线,加载时间受限于总线时钟CCLK频率。

本方案的优点为:①、②两条路径可以在加载之前处理,且运行速度快,不占用加载时间。加载时间只受③、④的限制,而③受限于写总线周期间隔,④受限于从并接口的时钟。

3.2程序实现

CPLD从并程序采用verilog[10-11]语言实现,该加载模块接口定义如下:

程序实现流如图3所示。

FPGA加载片选和写信号产生部分代码如下:

4 仿真及加载结果分析

基于modelsim 6.5SE[12-13]仿真波形可以看出CPU每加载1字节数据需要向CPLD写1次加载数据,这共需花费一个局部总线周期,局部总线频率最快为6.67 MHz。因此CPU加载4.125 MB数据到CPLD共需时间为:

CPLD需要1个CCLK周期写1字节数据到FPGA,CCLK则是利用CPU局部总线的写信号产生,可以实现CCLK和数据的同步,因此CCLK 时钟速率为6.67 MHz,因此加载4.125 MB数据到FPGA,共需时间为:

[4.125CCLK] = [4.125 6.67 MHz] = 0.61 s (2)

FPGA上电需要1 ms,因此当FPGA使用SPARTAN-6系列最高端的6SLX150T时,采用基于CPLD的从并加载方式,共需要的加载时间为1.221 s,满足通信产品FPGA加载时间小于2 s的要求。而如果采用从串等加载方式,使用ARM7处理器作为控制器,对于CycloneII系列中的EP2C35,配置文件大小1.16 MB,加载时间需要1.30 min[14];采用基于CPLD的从串加载方式,加载同样4.125 MB的FPGA数据,CPLD加载时钟33 MHz,则加载时间需要3.8 s[15],FPGA加载时间过长,则会影响系统的启动时间。

表2是常用加载方式加载6SLX150T型号FPGA芯片数据所需时间比较。

从上述分析可以得出结论,如果提高CPU的局部总线写速度,加载FPGA的时间就会更快。

5结束语

使用基于CPLD的FPGA从并加载方案,相对于其它几种加载方式,虽然加载管脚增多,但加载时间大大缩短,并且如果提高CPU局部总线的写速度,加载速度有进一步提高空间,满足通信系统快速启动的要求,具有很高的实用价值。

猜你喜欢

控制器启动
南京溧水电子3款控制器产品
水泥生料立磨压差变参数二型模糊控制器设计
基于NFV的分布式SDN控制器节能机制
电启动机的正确使用
俄媒:上合组织或9月启动扩员
智能液位控制器在排水系统中的应用
美启动对我金属丝网托盘的反倾销反补贴损害调查等
别用左手启动家电