一种适应于双FPGA系统上电加载设计方法与流程
本发明属于控制计算,涉及一种适应于双fpga系统上电加载设计方法。
背景技术:
1、目前,常见的计算机硬件架构涉及到dsp、fpga、arm以及两者或三者之间的组合形式,通常情况下,各处理器或主控芯片通过spi接口外接flash完成上电启动加载设计,且spi接口仅连接特定的flash芯片,对于dsp和arm芯片相对容易理解,该spi接口不会再做它用,但是,fpga在设计开发过程中更加灵活,从设计的角度出发,存在spi接口被复用的可能。
2、在某sip(system in apackage)芯片设计过程中,内部集成fpga、nor flash和ddr的裸片,其中,fpga作为核心器件,主要实现可编程逻辑设计,ddr主要用于大数据量的存储,norflash主要用于程序存储,实现上电加载,具体设计框图如图1所示。
3、图1中nor flash芯片与fpga之间采用spi接口通信,除电地信号外,接口信号包含:#cs、do(dq1)、#wp(dq2)、di(dq0)、clk、#hold/#rst(dq3)。sip设计过程中,为备份冗余设计,将接口信号全部引出到fpga的普通io上,方便外接flash芯片,如图2所示。
4、针对双fpga系统,及整个系统中包含图1所示的两个sip芯片,且两个芯片按照图2所示均引出一组sip芯片,在整个系统中,除双fpga外,还包含系统所需的主控器件,用于整个系统的流程控制及任务调度,如图3所示。在该设计中,sip芯片对外的普通io与主控芯片的io相连接,且为了方便fpga程序的开发设计,与两个sip芯片的连接位置保持一致,即与#cs连接的信号在sip1上是al33 pin脚,对应的在sip2上也连接到al33 pin脚,其他引脚连接关系与#cs一致。
5、针对图3的双fpga系统,无论是sip1还是sip2,其接口信号除与fpga相连外,同时,接口信号对外引出,与主控器件的io接口连接,实现了io接口复用的功能,但是在复用过程中,针对两个sip芯片的上电启动加载成为需要解决的问题,本专利提出了一种有效解决该问题的方法,在满足复用需求的基础上,实现两个sip芯片各自的上电启动加载功能。
6、图2中sip芯片正常上电启动加载时,fpga控制发出片选#cs信号和clk时钟信号,若采用四线制读取nor flash中数据,则会通过四根数据线do(dq1)、#wp(dq2)、di(dq0)、#hold/#rst(dq3)从nor flash中读取程序数据到fpga固定的程序运行空间cram中执行,待程序加载完成后,clk时钟信号变成高电平,且一直保持。
7、在fpga加载过程中,有两个关键的pin脚:init_b和done_0,其中,init_b引脚为输入输出引脚,表示配置存储器的初始化(低电平有效),待init_b为高电平时,fpga开始从nor flash中加载程序;done_0引脚为输入输出引脚,表示配置成功完成(高电平有效),通过检测done_0信号是否为高电平,可以判断上电加载是否完成。
8、以#cs信号为例,说明目前存在的问题:如图4所示,①fpga1访问nor flash1的片选信号;②为sip1芯片对外引出的#cs信号;④fpga2访问nor flash2的片选信号;③为sip2芯片对外引出的#cs信号;由于主控器件通过io接口分别与sip1芯片和sip2芯片连接,所以②和③连接在一起,因此①②③④全部串接在一起,导致上电加载过程中fpga1不一定从nor flash1中加载程序,同理,fpga2不一定从nor flash2中加载程序,甚至由于串接导致fpga1和fpga2根本无法加载。本专利提出的上电加载方法可以解决双fpga系统存在的这个问题。
技术实现思路
1、(一)发明目的
2、本发明的目的是:针对背景技术中提到的两个sip芯片的上电启动加载问题和由于串接导致fpga1和fpga2根本无法加载的问题,提供一种适应于双fpga系统上电加载设计方法。
3、(二)技术方案
4、为了解决上述技术问题,本发明提供一种适应于双fpga系统上电加载设计方法,其包括以下步骤:
5、步骤1:给系统上电;
6、步骤2:配置fpga1、fpga2的program信号均为高电平;
7、步骤3:fpga1的init_b拉高,fpga2的init_b拉低;
8、步骤4:检测fpga1的done_0信号是否为高电平,是则执行步骤5,否则持续步骤4中done_0信号电平检测;
9、步骤5:fpga1的init_b拉低,fpga2的init_b拉高;
10、步骤6:检测fpga2的done_0信号是否为高电平,是则执行步骤7,否则持续步骤6中done_0信号电平检测;
11、步骤7:双fpga系统完成启动加载。
12、进一步地,步骤1中,上电后fpga1先加载、fpga2后加载,fpga1和fpga2加载前,保证sip1和sip2对外接口未输入高低电平。
13、进一步地,步骤2中,program信号为fpga的配置启动控制信号,低电平有效,用于触发fpga加载外部配置文件到内部sram的启动流程。
14、进一步地,步骤2中,program信号被拉低并满足时序要求时,fpga会初始化配置接口并完成配置功能,待配置功能完成后,信号恢复高电平。
15、进一步地,步骤2中,两个fpga的program信号作置1处理,避免fpga重复进行上电加载。
16、进一步地,步骤3中,控制fpga1先加载,控制fpga2不进行程序的读取,即将fpga2的init_b拉低,待init_b配置为高电平时,fpga2开始程序的读取。
17、进一步地,步骤4中,fpga1处于加载过程,待加载完成后,fpga1的done_0信号拉高,通过检测done_0信号的高低电平判断fpga1是否已完成加载,如果完成加载,就执行步骤5,如果未完成加载,在步骤4继续检测。
18、进一步地,步骤5中,fpga1已完成加载,控制fpga2进行程序的读取,将fpga2的init_b拉高,同时将fpga1的init_b拉低,确保fpga1不进行加载。
19、进一步地,步骤6中,fpga2处于加载过程,待加载完成后,fpga2的done_0信号拉高,通过检测done_0信号的高低电平判断fpga2是否已完成加载,如果完成加载,就执行步骤7,如果未完成加载,在步骤6继续检测。
20、进一步地,步骤7中,两个fpga均完成启动加载,各自运行各自的程序,且sip1和sip2的对外引脚复用。
21、(三)有益效果
22、上述技术方案所提供的适应于双fpga系统上电加载设计方法,fpga的上电加载过程可以通过init_b信号进行控制,当init_b信号为低时,会控制不进行启动加载,直到init_b信号变为高电平,clk信号输出,才启动程序加载;由于fpga1与fpga2对外引脚中clk信号未串接在一起,因此,可以通过控制init_b信号,进而控制fpga1和fpga2的加载,实现先后加载的处理方式,本发明提出的设计方法即解决两个fpga上电后先后加载问题,实现正常启动和io复用功能。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com