您的位置 首页 系统

一种根据CPLD加载FPGA的方案设计详解

一种基于CPLD加载FPGA的方案设计详解-现代通信技术发展日新月异,通信系统必须具备良好的可升级能力以适应时代的发展。现场可编程门阵列(Field Programmable Gate Array,FPGA)由于同时具备硬件电路高速运行和软件可编程的双重优点,被广泛应用于通信领域中。FPGA在上电后,需要加载配置文件对内部各功能模块进行初始化,而配置文件加载的效率直接影响系统的初始化时间。因此如何设计一种高效的FPGA加载方案,是通信系统设计中的一个重要环节。

0 导言

现代通讯技术开展一日千里,通讯体系有必要具有杰出的可晋级才能以习惯年代的开展。现场可编程门阵列(Field Programmable Gate Array,FPGA)因为一起具有硬件电路高速运转和软件可编程的两层长处,被广泛运用于通讯领域中。FPGA在上电后,需求加载装备文件对内部各功用模块进行初始化,而装备文件加载的功率直接影响体系的初始化时刻。因而怎么规划一种高效的FPGA加载计划,是通讯体系规划中的一个重要环节。

文献的加载计划选用外部专用的E2PROM器材存储装备文件,并在上电后由FPGA操控整个加载进程。这种自动加载的装备办法需求专门的外部存储芯片,运用面窄,无法完结灵敏的在线晋级,而且因为EEPROM的容量有限,只能用于加载一些小的FPGA逻辑文件。文献提出选用CPU外挂FLASH存储装备文件,选用通用输入/输出(General Purpose Input/Output,CPU GPIO)管脾模仿被迫串行(Passive Serial,PS)加载时序进行装备文件加载的计划,可是这种计划需求占用CPU名贵的GPIO资源,尽管选用PS办法加载能够节约必定的管脚,可是因为CPU没有专门的PS加载操控器,有必要经过软件操控GPIO来模仿PS加载的时序,关于软件最遍及运用的C言语,每一步操作都需求数条指令,消耗时刻。关于有多个FPGA,要求长途晋级,且对装备速度要求高的大型体系来说,这样的加载时刻是无法忍受的。

本文介绍了一种依据CPLD加载FPGA的计划:FPGA装备文件被存放在CPU外挂的FLASH存储器中,加载时由CPU将装备文件读出,再经过衔接CPLD的Local Bus总线将数据以并行办法送给CPLD,CPLD运用速度较高的时钟将数据串行送入FPGA。该计划既能够节约CPU和FPGA的管脚,又能够完结FPGA在线快速加载。

1 FPGA及其加载办法介绍

FPGA是一种可编程器材,用户可经过软件手法装备FPGA器材内部的衔接结构和逻辑单元,完结所需的数字电路功用。现在市场上有三种根本的FPGA编程技术:SRAM,反熔丝和FLASH。其间依据SRAM的FPGA因为其速度快且具有可重编程才能,是现在运用最广泛的一种。可是这种FPGA是易失性的,每次掉电后,FPGA康复白片,内部逻辑消失,上电时需求从头为FPGA加载装备数据。

大部分FPGA的加载办法都能够分为自动加载和被迫加载。自动加载和被迫加载最大的差异在于加载进程是由谁来操控,自动加载的加载进程是由FPGA本身操控,FPGA自动从外部存储器中读取逻辑信息来为自己进行装备,FPGA内部的振荡器发生加载时钟。

被迫加载的整个加载进程都是由外部操控器操控,FPGA接纳装备时钟,装备指令和装备数据,给出装备状况信号以及装备完结指示信号等。

为了挑选一种适宜的加载办法,这儿将Altera公司FPGA产品的各种加载办法的比照于如图1所示。需求留意的是,装备速度的快慢仅仅相对的,其他一些要素如闪存的读取时刻,驱动时钟频率等也会影响装备的时刻。

一种依据CPLD加载FPGA的计划规划详解

从图中能够看到,并行加载办法尽管速度较快可是消耗较多的管脚;而串行加载则能够节约管脚、降低成本。在几种串行加载办法中,PS加载办法是大部分器材都支撑的办法,因而本文后续的规划计划挑选PS加载办法进行完结。

2 加载计划的规划

整个加载计划主要由硬件电路,CPLD逻辑,软件代码几部分组成。

2.1 硬件规划

在第1节的评论中挑选了PS加载办法。PS加载一般要用到5根信号线,分别是nconfig,dclk,data,nstatus和conf_done,它们的意义如图2所示。

一种依据CPLD加载FPGA的计划规划详解

在传统的PS加载办法中,CPU与FPGA的连线如图3所示。

这种加载办法的原理是:先将FPGA的装备数据放在CPU外挂非易失性存储器中,CPU发动后,CPU经过GPIO模仿时序的办法将装备数据加载到FPGA中。CPU以这种办法发生的加载时钟只需kHz,加载一个10 MB巨细的装备文件大约需求100 s。经过优化代码能够减小加载时刻,可是软件不能模仿高频时钟是其固有的缺点。CPLD能够运用外部高速时钟作为加载参阅时钟,且因为它操控简略,扩展便利的特性,能够作为加载的桥梁,在CPU和FPGA之间树立快速加载的通道。

运用CPLD进行PS加载的电路衔接规划如见图4。

一种依据CPLD加载FPGA的计划规划详解

CPU要从外挂存储器中读取装备文件,然后建议加载使命,告诉CPLD开端加载并经过Local Bus向CPLD发送加载数据。常用的CPU Local Bus参阅时钟约为66 MHz,加载1 B的数据需求约15璐。CPLD对外部参阅时钟(可挑选,本文选用66 MHz晶振)进行4分频后作为加载时钟,此时钟约为16.5 MHz,其加载功率比CPU GPIO加载办法进步10倍以上。

2.2 CPLD加裁模块的规划

CPLD加载模块主要是运用CPLD逻辑代码完结PS加载时序,到达快速加载的意图。FPGA的PS加载时序如图5所示。

一种依据CPLD加载FPGA的计划规划详解

PS加载的进程如图6所示。

依据PS加载的时序和流程图,规划经过CPU和CPLD对FPGA进行加载的进程如下:CPLD在收到CPU宣布的加载开端指令后,将nconfig信号拉低(器材时序对nconfig的低电平脉宽有要求),当FPGA收到nconfig的低脉冲有用信号后,会立刻铲除现有的程序进入加载状况,拉低nstatus和conf_done信号,在nconfig信号变高500 μs(器材要求)后CPLD能够开端向FPGA送时钟和数据进行加载,加载完结后,FPGA将conf_done信号拉高,递知CPLD,CPLD再告诉CPU加载已完结,PPGA进入初始化阶段。

要完结成功的加载,有必要确保加载进程正确,加载时序满意器材要求。还要留意与CPU软件程序的合作。

(1)nconfig信号时序的操控。nconfig信号时序操控由CPU软件完结,在硬件衔接上,将nconfig信号运用外部电阻上拉,软件对CPLD寄存器中的configbit先写0,再写1,中心推迟10μs,确保nconfig信号的脉宽到达芯片要求。

实践测验波形如图7所示,横轴表明时刻,靠上的信号线为nconfig信号,靠下的为nstatus信号,nconfig脉宽约为11μs,满意要求。

(2)dclk时序的操控。dclk由CPLD的参阅时钟elk_ref四分频发生。器材要求dclk在nconfig信号变高后至少500 μs后才输出,这个时序是由CPU软件来操控,软件先将nconfig信号拉低10 μs,等候FPGA回应的nstatus,当nstatus高电平到来后,推迟600μs开端经过Local Bus向CPLD发送数据,一起置位时钟使能标志位,CPLD以此时钟标志位来触发dclk,以此确保dclk的时序。实践测验波形如图8所示。横轴表明时刻,靠上的信号线为nconfig,靠下的为dclk,从nconfig变高到dclk输出的推迟约为605μs,满意要求。

(3)CPLD与CPU标志位的操控完结。有必要操控CPLD加载口在CPU送数据完结之后再作业,不然会引起数据堵塞。为了完结这一操控,CPU会送出一个标志位,即CPU在第一个Local Bus的拜访周期发送8 b加载数据,鄙人一个周期CPU会对标志寄存器进行取反操作,CPLD会去检测标志位的沿(上升沿下降沿都可),当CPLD检测到这个沿,阐明CPU的数据现已发送完结,CPLD会发生加载时钟,并运用此时钟将加载数据送入FPGA。CPLD只对边缘进行检测能够削减Local Bus的拜访周期,假如用0,1电平或许只用上升沿(只用下降沿),CPU传送完数据后,需求先读标志寄存器的值,再对标志位进行操作,而用上升沿和下降沿,CPU只需求在第一次传送数据完结后读标志寄存器,随后的数据传送完结后只需求对其进行取反即可。完结程序如图9所示。

一种依据CPLD加载FPGA的计划规划详解

(4)加载模块。当检测到CPU的标志时CPLD开端发送数据对FPGA进行加载,加载完结后对本身的发送完结标志取反,封闭输出使能。要留意不同芯片厂家的加载高低位次序不同。FPGA是靠dclk的上升沿来采样数据的,所以在dclk的下降沿将数据从CPLD送出,这样在FPGA端采样时dclk的上升沿正好对着数据的中心,能取得最大的时序窗口,如图10所示。

一种依据CPLD加载FPGA的计划规划详解

完结程序如图11所示。

(5)加载完毕后,FPGA将conf_done信号拉高,CPLD告诉FPGA加载现已完结。

3 功用、功能测验

为了验证计划的有用性,选用Altera的FPGA(EP4SGX530),CPLD(EPM570F256CS),MPC8548搭建了一个加载体系,测验成果如图12所示,横轴表明时刻,有固定周期的信号为dclk。由图可知加载成功,加载时钟频率约为17 MHz。整体加载时刻可由conf_done信号指示,如图所示横轴表明时刻,从图上能够看出,加载一个10 MB巨细的FPGA装备文件大约需求10 s。

一种依据CPLD加载FPGA的计划规划详解

4 定论

CPU直接对FPGA进行加载的传统办法,加载一个10 MB的FPGA装备文件大约需求100 s,运用CPLD对FPGA进行加载,只需求约10 s(Local Bus的拜访周期约为200 ns,相关于CPLD对FPGA的加载时刻能够忽略不计,两者能够并行进行),加载速度进步了10倍左右。在有两个乃至多个FPGA需求加载的体系,其优势更为显着。该办法对只需有CPU,CPLD和FPGA的体系即可移植,而且能够支撑Altera,XILINX和LATTICE三大厂家的逻辑器材。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/xitong/101747.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部