CN100371892C - 一种现场可编程门阵列的加载方法 - Google Patents

一种现场可编程门阵列的加载方法 Download PDF

Info

Publication number
CN100371892C
CN100371892C CNB2005100329683A CN200510032968A CN100371892C CN 100371892 C CN100371892 C CN 100371892C CN B2005100329683 A CNB2005100329683 A CN B2005100329683A CN 200510032968 A CN200510032968 A CN 200510032968A CN 100371892 C CN100371892 C CN 100371892C
Authority
CN
China
Prior art keywords
loading
data
epld
fpga
programmable gate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2005100329683A
Other languages
English (en)
Other versions
CN1808374A (zh
Inventor
祝文刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNB2005100329683A priority Critical patent/CN100371892C/zh
Publication of CN1808374A publication Critical patent/CN1808374A/zh
Application granted granted Critical
Publication of CN100371892C publication Critical patent/CN100371892C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Logic Circuits (AREA)

Abstract

一种现场可编程门阵列的加载方法,包括以下步骤:首先在CPU和FPGA之间设置EPLD;然后执行S5-1:启动加载;S5-2:检测加载是否结束,即判断FPGA的DONE信号为结束时,停止加载,判断所述DONE信号为未结束时,执行下面的步骤;S5-3、S5-4:所述CPU一次性将一个字节的需加载数据写入到所述EPLD加载数据寄存器中;S5-5:由所述EPLD的内部逻辑完成将所述数据按位加载到所述FPGA中;S5-6:延迟一定时间;重复步骤S5-2至S5-6直至加载结束。从而减少对EPLD的操作次数,降低加载时间,提高加载速度,大大减少了系统启动时间,降低了系统的故障恢复时间,提高了产品性能和指标。

Description

一种现场可编程门阵列的加载方法
技术领域
本发明涉及向现场可编程门阵列(FPGA,field-programmable gate arrays)中加载文件的方法,特别涉及利用可擦除编程逻辑器件(EPLD,erasableprogrammable logic device)对FPGA进行文件加载的方法。
背景技术
现场可编程门阵列(FPGA)是一种可擦除的可编程只读存储器。通常在单板上电初始化时,将相关程序和数据加载到FPGA中,在FPGA初始化后,可以完成复杂的逻辑控制,来实现各种业务处理功能。由于FPGA是一种掉电不保存数据的逻辑芯片,所以要求每次上电启动都要重新加载,即将数据重新写入FPGA芯片中,使其能够正常工作。
现有的一种现场可编程门阵列的加载方法是将需要加载的文件存储在闪存(FLASH,Flash memory)12中,在上电启动后中央处理器(CPU)11通过其总线从FLASH12中读取数据,然后再通过CPU11的输出/输入(I/O)接口或其他专用接口加载到FPGA13中去,其连接关系如图1所示。所述FPGA加载信号如下表所示:
  名称   含义
  nCONFIG   逻辑芯片复位管脚
  nSTATUS   逻辑芯片复位完成状态管脚
  DONE   逻辑加载完成状态管脚
  DCLK   加载时钟信号
  DATA   加载数据信号
其中,每个加载信号都需要单独连接到一个管脚上,并由软件实现对各个管脚的控制。这种加载方法对应用场合、环境和方式有较多的要求和限制,不利于实现;而且,通常需要CPU11由5-6根额外的I/O管脚提供加载使用,然而CPU11的I/O管脚是相对有限的,在很多系统中很难实现;特别是在没有I/O管脚的情况下,就无法实现CPU11加载FPGA13。
为了解决上述方法的缺点,通常使用一个实现简单的逻辑控制的可擦除可编程逻辑器件(EPLD,erasable programmable logic device)来克服对CPU管脚的需求,可参考中国专利申请第02123505.8号。如图2所示,将FPGA13加载管脚连接到一个EPLD14上,其中,EPLD14与FPGA13相连的管脚电平状态由EPLD14内部寄存器141位来控制,然后EPLD14的配合工作时钟142,通过软件控制CPU11的总线接口来控制EPLD14内部寄存器141的每一位来完成加载,对nCONFIG、DONE、STATE、DCLK、DATA每个信号对应一位寄存器,其中对nCONFIG、DONE、STATE信号的操作是一次性的,而对DCLK、DATA信号的操作是重复的。
请参阅如图3所示的利用后一种方法控制一个字节(BYTE)加载的操作流程,包括以下步骤:
首先进行步骤S3-1:对nCONFIG信号进行处理,启动对FPGA进行加载;然后进行步骤S3-2:判断DONE信号,检测所有加载数据是否加载完成,如果加载完成则结束(S3-12);如果加载未完成,则进入步骤S3-3:CPU从FLASH中读取一个字节的数据a到其内存中;然后进行步骤S3-4:设定从数据a的低位或高位开始加载,将数据按位加载到所述EPLD的加载寄存器中,然后所述EPLD将加载寄存器的数据按位加载到FPGA中;然后检测8位的字节是否加载完成(S3-5),如果加载完成则跳转到步骤S3-2;如果加载未完成则读取EPLD的加载寄存器的当前值(S3-6);然后将加载时钟位与“0”写入EPLD(S3-7)的加载寄存器,使输出时钟位为“0”;为确保每次加载数据a的一位,再次读取EPLD加载寄存器的当前值(S3-8),然后判断加载数据位(BIT)的电平,写到EPLD加载寄存器(S3-9);然后再次读取EPLD加字寄存器当前值(S3-10),改变加载时钟位为高(S3-11),完成一个数据位的输出;再次检测一个字节数据的8位是否加载完成(S3-5),直到8位加载完毕。
这种方法由于操作FLASH和EPLD使用同一CPU接口总线,因而在操作时序上必须兼容FLASH的存取时间和EPLD的片选有效时间。然而,由于读写FLASH的时间一般较长,因此,每次访问EPLD寄存器的片选有效时间也应该较长。并且,一般数据从EPLD加载到FPGA中是按照每一个BIT操作的,在使用本方法加载时,每加载一个BIT就要访问至少6次EPLD(上述步骤S6-S11),加载一个BYTE就要访问48次EPLD,在加载文件很大时(随着内部资源规模的不断增大,加载文件也不断增大),会导致加载时间过长,影响了整个系统的启动速度。
发明内容
本发明要解决的技术问题在于,提供一种提高加载速度、降低系统启动时间、降低系统故障恢复时间的现场可编程门阵列的加载方法。
本发明解决其技术问题所采用的技术方案是:提供一种现场可编程门阵列的加载方法,包括以下步骤:
S1:在CPU和现场可编程门阵列FPGA之间设置可擦除可编程逻辑器件EPLD;
S2:启动加载;
S3:检测加载是否结束,即判断FPGA的DONE信号为结束时,停止加载,判断所述DONE信号为未结束时,执行下面的步骤;
S4:所述CPU一次性的将一个字节的需加载数据写入到所述EPLD的加载数据寄存器中;
S5:由所述EPLD的内部逻辑完成将所述数据一次性的加载到所述FPGA中;
S6:延迟一定时间,使所述CPU操作数据的时间大于所述EPLD处理加载数据的时间;
重复上述步骤S3至S6直至加载结束。
上述的现场可编程门阵列的加载方法在所述步骤S5中,还包括设置逻辑工作时钟作为加载使用的时钟的步骤。
上述现场可编程门阵列的加载方法所述设置逻辑工作时钟的步骤是将外部工作时钟2分频作为加载使用的时钟。
上述现场可编程门阵列的加载方法在所述步骤S5中,在所述CPU将数据写入所述EPLD加载数据寄存器的同时设置一标志位,所述标志位控制在所述时钟的下降沿输出所述数据到所述FPGA中。
上述现场可编程门阵列的加载方法的步骤S5中,在所述EPLD中设置8位计数器,当所述计数器计数到8个时钟信号时,取消所述标志位,完成对FPGA的一个字节的加载,并且输出一个时钟信号到所述FPGA,停止对所述FPGA进行数据加载,然后执行所述步骤S6。
上述现场可编程门阵列的加载方法所述步骤S6中,所述的延迟一定时间通过CPU操作加延时实现,通过计算比较CPU接口操作时间和EPLD处理8位数据输出到所述FPGA中的时间,来使得所述CPU操作数据的时间大于所述EPLD处理加载数据的时间。
上述现场可编程门阵列的加载方法所述的步骤S4中,所述需加载数据由所述CPU从FLASH中读取,并存储到其内存中。
实施本发明的现场可编程门阵列的加载方法,通过延迟一定时间,使CPU操作数据的时间略大于EPLD处理加载数据时间,从而CPU可以连续的将数据写到EPLD的加载数据寄存器中;并且由EPLD的内部逻辑将其加载数据寄存器中的一个字节的数据一次性的加载到FPGA中,从而可以减少对EPLD的操作次数,大幅度的降低了加载时间,提高了加载速度,从而大大减少了系统启动时间,从另一角度来看降低了系统的故障恢复时间,提高了产品性能和指标。
附图说明
图1是现有一种现场可编程门阵列的加载方法的连接示意图;
图2是现有另一种现场可编程门阵列的加载方法的连接示意图;
图3是图2的可编程门阵列的加载方法的加载流程图;
图4是本发明现场可编程门阵列的加载方法的连接示意图;
图5是本发明现场可编程门阵列的加载方法的加载流程图;
图6是本发明现场可编程门阵列的加载方法的EPLD的逻辑内部示意图。
具体实施方式
请参阅图4至图6,是本发明的现场可编程门阵列的加载方法的一个优选实施方式,首先如图4在CPU11和现场可编程门阵列FPGA13之间设置可擦除可编程逻辑器件EPLD14。所述CPU11通过总线与EPLD14和FLASH12连接,实现将存储在FLASH12中的需要加载文件通过EPLD14快速加载到FPGA13中。所述EPLD14设置有控制寄存器31、8位加载数据寄存器32以及时钟输出逻辑33,并且在所述EPLD14加有外部工作时钟142。所述控制寄存器31与FPGA13的控制信号管脚(nCONFIG、DONE、STATE)连接,所述加载数据寄存器32与FPGA13的数据输入管脚连接,而所述时钟输出逻辑33与FPGA13的时钟输入管脚连接。
如图5所示,在需要进行加载时,首先启动加载(S5-1),可以通过对nCONFIG管脚发出使能信号,使FPGA13处于可被加载状态。然后,检测加载是否结束(S5-2),即判断FPGA13的DONE信号为结束时,停止加载(S5-7);判断所述DONE信号为未结束时,所述CPU11从FLASH12中读取需加载的数据,并存储到其内存中(S5-3)。然后,所述CPU11一次性将一个字节的需加载数据写入到所述EPLD14的加载数据寄存器32中(S5-4)。然后,由所述EPLD14的内部逻辑完成将所述数据一次性加载到所述FPGA13中(S5-5):即设置外部逻辑工作时钟142作为加载使用的时钟,在本实施例中,如图6所示,为了保证EPLD14输出更可靠,将外部工作时钟142通过分频器36进行2分频作为加载使用的时钟,当然,不进行分频同样也可以实现;并且,在所述CPU11将数据写入所述EPLD14加载数据寄存器32的同时设置一标志位34,所述标志位34控制在所述时钟的下降沿输出所述数据到所述FPGA13中;还可以在所述EPLD14中设置8位计数器35,当所述计数器35计数到8个时钟信号时,取消所述标志位34,完成对FPGA13的一个字节的加载,并且输出一个时钟信号到所述FPGA13,停止对所述FPGA13进行数据加载,从而在CPU11写入数据到EPLD14时防止数据写入FPGA13中。然后,延迟一定时间(S5-6),通过CPU11操作加延时实现,通过计算比较CPU11接口操作时间和EPLD14处理8位数据输出到所述FPGA13中的时间,来使得所述CPU11操作数据的时间大于所述EPLD14处理加载数据的时间,从而CPU11只需要不断地将需加载数据写到EPLD14的加载数据寄存器中即可,并且可由EPLD14的内部逻辑完成对FPGA13的数据加载,而无需不断的访问EPLD14的状态,从而可以减少对EPLD14的操作次数,大幅度的降低了加载时间,提高了加载速度,从而大大减少了系统启动时间,从另一角度来看降低了系统的故障恢复时间,提高了产品性能和指标。重复上述步骤S5-2至步骤S5-6,直至完成所有需加载的数据的加载。

Claims (7)

1.一种现场可编程门阵列的加载方法,其特征在于,包括以下步骤:
S1:在CPU和现场可编程门阵列FPGA之间设置可擦除可编程逻辑器件EPLD;
S2:启动加载;
S3:检测加载是否结束,即判断FPGA的DONE信号为结束时,停止加载,判断所述DONE信号为未结束时,执行下面的步骤;
S4:所述CPU一次性的将一个字节的需加载数据写入到所述EPLD的加载数据寄存器中;
S5:由所述EPLD的内部逻辑完成将所述数据一次性的加载到所述FPGA中;
S6:延迟一定时间,使所述CPU操作数据的时间大于所述EPLD处理加载数据的时间;
重复上述步骤S3至S6直至加载结束。
2.根据权利要求1所述的现场可编程门阵列的加载方法,其特征在于,在所述步骤S5中,还包括设置逻辑工作时钟作为加载使用的时钟的步骤。
3.根据权利要求2所述的现场可编程门阵列的加载方法,其特征在于,所述设置逻辑工作时钟的步骤是将外部工作时钟2分频作为加载使用的时钟。
4.根据权利要求2或3所述的现场可编程门阵列的加载方法,其特征在于,所述步骤S5中,在所述CPU将数据写入所述EPLD加载数据寄存器的同时设置一标志位,所述标志位控制在所述时钟的下降沿输出所述数据到所述FPGA中。
5.根据权利要求4所述的现场可编程门阵列的加载方法,其特征在于,在所述步骤S5中,在所述EPLD中设置8位计数器,当所述计数器计数到8个时钟信号时,取消所述标志位,完成对FPGA的一个字节的加载,并且输出一个时钟信号到所述FPGA,停止对所述FPGA进行数据加载,然后执行所述步骤S6。
6.根据权利要求5所述的现场可编程门阵列的加载方法,其特征在于,所述步骤S6中,所述的延迟一定时间通过CPU操作加延时实现,通过计算比较CPU接口操作时间和EPLD处理8位数据输出到所述FPGA中的时间,来使得所述CPU操作数据的时间大于所述EPLD处理加载数据的时间。
7.根据权利要求1所述的现场可编程门阵列的加载方法,其特征在于,所述步骤S4中,所述需加载数据由所述CPU从FLASH中读取,并存储到其内存中。
CNB2005100329683A 2005-01-21 2005-01-21 一种现场可编程门阵列的加载方法 Expired - Fee Related CN100371892C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005100329683A CN100371892C (zh) 2005-01-21 2005-01-21 一种现场可编程门阵列的加载方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005100329683A CN100371892C (zh) 2005-01-21 2005-01-21 一种现场可编程门阵列的加载方法

Publications (2)

Publication Number Publication Date
CN1808374A CN1808374A (zh) 2006-07-26
CN100371892C true CN100371892C (zh) 2008-02-27

Family

ID=36840291

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100329683A Expired - Fee Related CN100371892C (zh) 2005-01-21 2005-01-21 一种现场可编程门阵列的加载方法

Country Status (1)

Country Link
CN (1) CN100371892C (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102129379B (zh) * 2011-02-18 2014-01-15 杭州迪普科技有限公司 一种用于数据加载的逻辑器件
US8433979B2 (en) 2011-02-28 2013-04-30 International Business Machines Corporation Nested multiple erasure correcting codes for storage arrays
US9058291B2 (en) 2011-02-28 2015-06-16 International Business Machines Corporation Multiple erasure correcting codes for storage arrays
US8874995B2 (en) 2012-02-02 2014-10-28 International Business Machines Corporation Partial-maximum distance separable (PMDS) erasure correcting codes for storage arrays
CN106775791A (zh) * 2015-11-20 2017-05-31 海思光电子有限公司 光模块中固件加载的方法以及光模块
CN106293843B (zh) 2016-08-15 2019-11-26 华为技术有限公司 一种数据加载系统
CN107122213B (zh) * 2017-04-28 2020-08-07 北京疯景科技有限公司 程序的运行方法及装置
CN115033263A (zh) * 2022-06-30 2022-09-09 西安易朴通讯技术有限公司 电子设备及时钟芯片的固件更新方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1321922A (zh) * 2000-07-29 2001-11-14 深圳市中兴通讯股份有限公司 含有现场可编程门阵列的cpu系统复位方法
US6667641B1 (en) * 1998-11-03 2003-12-23 Altera Corporation Programmable phase shift circuitry
CN1464421A (zh) * 2002-06-28 2003-12-31 华为技术有限公司 一种对现场可编程门阵列的在线加载方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6667641B1 (en) * 1998-11-03 2003-12-23 Altera Corporation Programmable phase shift circuitry
CN1321922A (zh) * 2000-07-29 2001-11-14 深圳市中兴通讯股份有限公司 含有现场可编程门阵列的cpu系统复位方法
CN1464421A (zh) * 2002-06-28 2003-12-31 华为技术有限公司 一种对现场可编程门阵列的在线加载方法

Also Published As

Publication number Publication date
CN1808374A (zh) 2006-07-26

Similar Documents

Publication Publication Date Title
CN100371892C (zh) 一种现场可编程门阵列的加载方法
KR102668599B1 (ko) 하드웨어 가속을 위한 하드웨어 리소스들의 임베디드 스케줄링
US6539500B1 (en) System and method for tracing
US7805638B2 (en) Multi-frequency debug network for a multiprocessor array
CN104620234A (zh) 减小外围部件快速互连链路中的延迟
EP1674989A1 (en) Information processing device, information processing method, semiconductor device, and computer program
US11150899B2 (en) Selecting a precision level for executing a workload in an electronic device
CN101354657B (zh) 现场可编程门阵列的加载方法及加载电路
CN109901890A (zh) 一种控制器加载多核固件的方法、装置、计算机设备及存储介质
KR20160125137A (ko) 애플리케이션 프로세서와 시스템 온 칩
EP0398189B1 (en) Noncacheable address random access memory
JP2762138B2 (ja) メモリコントロールユニット
CN106372008A (zh) 一种数据缓存方法及装置
CN101504567B (zh) 一种cpu、cpu指令系统及降低cpu功耗的方法
CN105045335A (zh) 一种内嵌8051ip核的fpga信息处理系统
CN104346132A (zh) 应用于智能卡虚拟机运行的控制装置及智能卡虚拟机
CN112100950B (zh) 用于芯片设计的方法、系统、设备以及存储介质
KR900002438B1 (ko) 프로세서간 결합방식
US8332798B2 (en) Using synthesis to place macros
CN114327660B (zh) 基于fpga的外接内存的初始化方法
CN202795364U (zh) 一种动态可重构的测试测量仪
CN114895969A (zh) 一种操作系统休眠方法、装置、计算设备和存储介质
CN1333344C (zh) 减轻片上系统软件负载的方法
US20190371373A1 (en) Methods and systems for serial memory device control
CN101539849B (zh) 一种处理器以及一种寄存器选通方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080227

Termination date: 20170121