新闻中心

EEPW首页>EDA/PCB>设计应用> 利用CPLD实现FPGA的快速加载

利用CPLD实现FPGA的快速加载

作者: 时间:2013-01-17 来源:网络 收藏

这种加载方式的原理是:先将的配置数据放在CPU外挂非易失性存储器中,CPU启动后,CPU通过GPIO模拟时序的方式将配置数据加载到中。CPU以这种方式产生的加载时钟只有kHz,加载一个10 MB大小的配置文件大概需要100 s。通过优化代码可以减小加载时间,但是软件不能模拟高频时钟是其固有的缺陷。可以利用外部高速时钟作为加载参考时钟,且由于它控制简单,扩展方便的特性,可以作为加载的桥梁,在CPU和之间建立快速加载的通道。
利用进行PS加载的电路连接设计如见图4。

本文引用地址://m.amcfsurvey.com/article/189703.htm

b.JPG


CPU要从外挂存储器中读取配置文件,然后发起加载任务,通知开始加载并通过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所示。

d.JPG


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,满足要求。

d.JPG


(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所示。

e.JPG



关键词:CPLDFPGA

评论


相关推荐

技术专区

关闭