CN113657061B - 可实现不同配置应用过程间数据传递的fpga - Google Patents
可实现不同配置应用过程间数据传递的fpga Download PDFInfo
- Publication number
- CN113657061B CN113657061B CN202110954457.6A CN202110954457A CN113657061B CN 113657061 B CN113657061 B CN 113657061B CN 202110954457 A CN202110954457 A CN 202110954457A CN 113657061 B CN113657061 B CN 113657061B
- Authority
- CN
- China
- Prior art keywords
- fpga
- memory
- configuration
- user design
- hardware memory
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Logic Circuits (AREA)
Abstract
本发明公开了一种可实现不同配置应用过程间数据传递的FPGA,涉及FPGA技术领域,该FPGA内部包括硬件存储器,硬件存储器的写端口和读端口分别通过绕线路径连接可编程逻辑资源,硬件存储器中的数据在可编程逻辑资源的非正常运行阶段保持不变,利用该硬件存储器可以将一个配置应用过程中的用户设计产生的运行数据传递给之后的配置应用过程中的用户设计在运行时使用,拓展了FPGA的功能,可以满足多种不同场景下的应用需要。
Description
技术领域
本发明涉及FPGA技术领域,尤其是一种可实现不同配置应用过程间数据传递的FPGA。
背景技术
随着超大规模集成电路技术的发展,FPGA芯片(Field Programmable GateArray,现场可编程门阵列)依靠其优越的接口性能、丰富的逻辑和IP资源以及灵活方便的现场可编程能力得到了广泛的使用。
FPGA芯片内部具有可配置模块以及绕线资源,当用户设计映射到FPGA芯片时,用户设计可以通过定义配置内容(配置位的内容)来决定FPGA芯片内部可配置模块所实现的功能以及绕线资源所选择的绕线路径,从而定义FPGA芯片实现的功能。FPGA设计软件将用户设计输入经綜合、布局、布线处理,映射到FPGA芯片后,根据使用到可配置模块及绕线资源的配置内容,按预定的格式生成码流文件。码流经下载到FPGA芯片上的配置内存中,可正确的填写各配置内容,定义FPGA芯片功能,为了保持FPGA电路的正确性,在FPGA启动前,配置位的内容暂时与被配置模块隔开,避免下载过程中因配置不完成而引起的电路冲突(如产生短路、造成大电流)而损坏电路,当码流下载完成、全部码流数据写入配置位中后,再一齐使能利用全部配置位中的码流数据对各被配置模块进行配置,FPGA芯片启动运行即可实现用户设计功能。
若FPGA芯片需要切换实现其他的用户设计功能,则FPGA芯片下电,重新从片外下载新的码流到配置内存中,经由上述流程再重新启动运行新的用户设计功能。将FPGA芯片在断电状态下完成码流下载并启动运行的过程看作是对FPGA芯片的一次配置应用过程,可以重复利用同一块FPGA芯片进行多次配置应用过程,目前FPGA芯片的不同的配置应用过程之间是相互独立的、无法进行数据传递,限制了FPGA芯片的应用。
发明内容
本发明人针对上述问题及技术需求,提出了一种可实现不同配置应用过程间数据传递的FPGA,本发明的技术方案如下:
一种可实现不同配置应用过程间数据传递的FPGA,该FPGA内部包括可编程逻辑资源、配置内存以及硬件存储器,硬件存储器的写端口和读端口分别通过绕线路径连接可编程逻辑资源,硬件存储器中的数据在可编程逻辑资源的非正常运行阶段保持不变;
在FPGA的第一配置应用过程中,FPGA下载第一用户设计对应的第一配置码流并存储在配置内存中,第一配置码流下载完成后,FPGA基于配置内存中的第一配置码流利用可编程逻辑资源形成第一用户设计;第一用户设计在运行过程中将产生的第一运行数据按预定格式写入硬件存储器中存储;
在FPGA的第二配置应用过程中,FPGA下载第二用户设计对应的第二配置码流并存储在配置内存中,第二配置码流下载完成后,FPGA基于配置内存中的第二配置码流利用可编程逻辑资源形成第二用户设计,第二用户设计按照预定格式从硬件存储器中读取第一运行数据,并结合第一运行数据运行。
其进一步的技术方案为,可编程逻辑资源的非正常运行阶段包括可编程逻辑资源的供电停止至再次上电之间的阶段,以及FPGA在正常供电过程中执行码流下载操作和重置操作的阶段;
其中,FPGA执行的重置操作包括上电启动重置、全局重置以及部分重置中的至少一种。
其进一步的技术方案为,硬件存储器为具有独立不断电电源的存储器,或者,硬件存储器为采用NVM工艺制成的存储器;且硬件存储器的写端口在可编程逻辑资源的非正常运行阶段保持默认值。
其进一步的技术方案为,硬件存储器为具有独立不断电电源的RAM存储器或FIFO存储器。
其进一步的技术方案为,当硬件存储器为具有独立不断电电源的存储器时,存储器通过FPGA的独立供电管脚连接外部的独立不断电电源,或者,存储器通过绕线路径连接FPGA内部的独立不断电电源。
其进一步的技术方案为,可编程逻辑资源通过输入缓冲器连接硬件存储器的写端口,硬件存储器的读端口通过输出缓冲器连接可编程逻辑资源,输入缓冲器的输入端还设置有默认值提供电路,默认值提供电路由硬件存储器的独立不断电电源供电。
其进一步的技术方案为,默认值提供电路为上拉电路或总线维持电路。
其进一步的技术方案为,第一用户设计和第二用户设计是不同的用户设计,第一配置码流和第二配置码流不同。
其进一步的技术方案为,第一用户设计和第二用户设计是同一个用户设计,第一配置码流和第二配置码流相同。
其进一步的技术方案为,第一配置应用过程和第二配置应用过程为同一个用户设计的运行过程中的两个不同的运行阶段,第一运行数据用于表征第一用户设计在第一配置应用过程的运行状态,第二用户设计结合第一运行数据运行在第二配置应用过程恢复至第一配置应用过程的运行状态。
其进一步的技术方案为,FPGA在第一用户设计对应的运行阶段运行完成时下电,可编程逻辑资源的供电停止,第一配置应用过程结束。
其进一步的技术方案为,FPGA在第一用户设计运行过程中出现断电错误时,可编程逻辑资源的供电停止,第一配置应用过程结束。
其进一步的技术方案为,第一用户设计在运行过程中,每隔预定时间将数据覆盖写入硬件存储器中更新形成第一运行数据。
其进一步的技术方案为,用户设计对硬件存储器的读写位宽由用户设计产生的控制信号设定。
其进一步的技术方案为,第一用户设计和第二用户设计对硬件存储器的读写位宽相同或者不同。
其进一步的技术方案为,硬件存储器为带有ECC功能的存储器,或者,硬件存储器是连接有ECC电路的存储器。
其进一步的技术方案为,FPGA为包括若干个裸片的多裸片结构,则硬件存储器集成在其中一个FPGA裸片内,或者,硬件存储器为一个独立裸片。
本发明的有益效果为:
本申请公开了一种可实现不同配置应用过程间数据传递的FPGA,该FPGA包括在可编程逻辑资源的非正常运行阶段都能保持内部数据不变的硬件存储器,利用该硬件存储器可以将一个配置应用过程中的用户设计产生的运行数据传递给之后的配置应用过程中的用户设计在运行时使用,拓展了FPGA的功能,可以满足不同场景下的应用需要。
该FPGA实现数据传递的不同配置应用过程运行的可以是不同的用户设计,从而可以对一块FPGA进行分时应用分别实现多个用户设计,而且除FPGA之外无需使用额外的芯片就可以实现这不同的用户设计之间的数据传递。
该FPGA实现数据传递的不同配置应用过程运行的可以是相同的用户设计,则一方面可以通过暂存中间结果对一个完整运行过程较长的用户设计的分段执行以减少FPGA长时间运行的压力。另一方面可以在出现断电故障时继续运行任务,而无需从头开始运行,提高了运行可靠性。
附图说明
图1是本申请一个实施例公开的FPGA的内部结构示意图。
图2是本申请的FPGA在配置应用过程间进行数据传递的示意图。
具体实施方式
下面结合附图对本发明的具体实施方式做进一步说明。
本申请公开了一种可实现不同配置应用过程间数据传递的FPGA,如图1所示,该FPGA除了包含常规的FPGA芯片中的可编程逻辑资源和配置内存之外,还包括额外增加的硬件存储器M1,该硬件存储器M1采用ASIC方式由固定硬件资源实现,而不由FPGA中的可编程逻辑资源实现。图1中带填充的图示表示可编程逻辑资源,按照常见的Column-Based架构,可编程逻辑资源在FPGA内部按行列式结构排布,图1只是简单图示,未示出常规FPGA内部的所有结构关系。
硬件存储器M1的写端口和读端口分别通过绕线路径连接可编程逻辑资源。具体的,可编程逻辑资源通过输入缓冲器连接硬件存储器M1的写端口,硬件存储器M1的读端口通过输出缓冲器连接可编程逻辑资源。常规的可编程逻辑资源主要包括布线资源和可编程模块,实际硬件存储器M1的写端口和读端口通常是连接到布线资源,再由布线资源连接到可编程模块,实现可编程逻辑资源与硬件存储器M1之间的数据传输。
在一个实施例中,硬件存储器M1为具有独立不断电电源的普通易失性的存储器,独立是指相对于FPGA的可编程逻辑资源的供电独立,如图1中,可编程逻辑资源由Vcore供电,而硬件存储器M1中的存储器由独立不断电电源提供的VM1供电。当可编程逻辑资源的供电断开时,硬件存储器M1的供电仍然稳定不中断、保证存储的内容不丢失。可选的,硬件存储器M1为具有独立不断电电源的RAM存储器或FIFO存储器。硬件存储器M1的独立不断电电源主要有两种实现方式:一种实现方式是独立不断电电源是FPGA的外接电源,存储器通过FPGA的独立供电管脚连接外部的独立不断电电源。另一种实现方式是将独立不断电电源封装集成在FPGA内部,如图1以此为例,则存储器通过绕线路径连接FPGA内部的独立不断电电源。
在另一个实施例中,硬件存储器M1为采用NVM工艺制成的存储器,比如采用常见的FLASH工艺实现,则硬件存储器M1可以与可编程逻辑资源采用相同的供电,即便供电断开时,硬件存储器M1存储的内容也不丢失。
无论硬件存储器采用何种结构实现,硬件存储器M1的写端口在可编程逻辑资源的非正常运行阶段保持默认值。一个实施例提供的做法是:硬件存储器M1的写端口处设置有默认值提供电路,具体的默认值提供电路设置在输入缓冲器的输入端,默认值提供电路为上拉电路(pullup电路)或总线维持电路(bus holder电路)。默认值提供电路由独立不断电电源供电,当硬件存储器M1具有独立不断电电源时,该默认值提供电路即由硬件存储器的独立不断电电源供电;当硬件存储器M1不具有独立不断电电源时,默认值提供电路由单独的独立不断电电源供电,也有内置和外接两种实现方式,在此不赘述。由于默认值提供电路也需要使用独立不断电电源,因此硬件存储器M1更为常用的实现方式是普通易失性的存储器结合独立不断电电源。由于默认值提供电路的存在,可编程逻辑资源提供的输入信号要加上默认值才输入到硬件存储器M1中,使得硬件存储器M1的输入在可编程逻辑资源的非正常运行阶段也可以保持默认值、不影响输入。
由于硬件存储器M1中的数据在可编程逻辑资源的供电断开时可以保持不变,且硬件存储器M1的写端口在可编程逻辑资源的非正常运行阶段保持默认值,因此硬件存储器M1中的数据在可编程逻辑资源的非正常运行阶段都能保持不变。可编程逻辑资源的非正常运行阶段包括可编程逻辑资源的供电停止至再次上电之间的阶段,以及FPGA在正常供电过程中执行码流下载操作和重置操作的阶段。其中,可编程逻辑资源的供电停止包括正常下电导致的供电停止以及出现断电故障导致的供电停止。FPGA执行的重置操作包括上电启动重置、全局重置以及部分重置中的至少一种。
本申请的FPGA在工作时,在FPGA的第一配置应用过程中,FPGA下载第一用户设计对应的第一配置码流并存储在配置内存中,如图2中实现部分所示。第一配置码流下载完成后,FPGA进行上电启动重置、基于配置内存中的第一配置码流利用可编程逻辑资源形成第一用户设计。第一用户设计在运行过程中将产生的第一运行数据按预定格式写入硬件存储器M1中存储,第一运行数据是第一用户设计运行过程中产生的全部数据或部分数据,考虑到存储空间有限,因此通常是较为重要的部分数据,包括预先定义的需要传输给之后配置应用过程的执行结果数据,和/或,用于表征用户设计在配置应用过程的运行状态的数据。
在第一配置应用过程中,对于需要存储的数据,第一用户设计可以只写入一次,也即在第一配置应用过程结束时,将相应的数据写入硬件存储器M1中形成第一运行数据。或者,第一用户设计覆盖写入多次,也即第一用户设计在运行过程中,每隔预定时间将相应的数据覆盖写入硬件存储器M1中更新形成第一运行数据,不仅可以保证硬件存储器M1中最终存储的第一运行数据是最新的数据,而且可靠性也较高,可以避免第一用户设计在运行过程中突然出错而导致的无法在第一配置应用过程结束时写入数据的问题。
当FPGA的第一配置应用过程结束,在FPGA的另一个第二配置应用过程中,FPGA下载第二用户设计对应的第二配置码流并存储在配置内存中,如图2中虚线部分所示。第二配置码流下载完成后,FPGA进行上电启动重置、基于配置内存中的第二配置码流利用可编程逻辑资源形成第二用户设计。由于硬件存储器M1中的数据在可编程逻辑资源的非正常运行阶段都能保持不变,因此此时硬件存储器M1中仍然存储有第一用户设计写入的第一运行数据,第二用户设计按照预定格式从硬件存储器中读取第一运行数据,并结合第一运行数据运行,实现了两个配置应用过程间的数据传递。
第一用户设计以预定格式将第一运行数据写入硬件存储器M1,第二用户设计按照相同的格式取出使用,两个用户设计对硬件存储器的读写位宽相同或者不同。用户设计对硬件存储器M1的读写位宽并非由配置码流决定,而是由用户设计产生的控制信号设定。
本申请的FPGA所实现的两个配置应用过程间的数据传递的应用场景主要包括如下两种:
1、第一用户设计和第二用户设计是不同的用户设计,第一配置码流和第二配置码流不同。这种场景下,比较常用的情况是,第一用户设计在FPGA上运行完成后结束第一配置应用过程,第二用户设计在FPGA上运行完成后结束第二配置应用过程,也即一个配置应用过程是对应的用户设计的完整运行过程。但也有一些特殊情况下,第一用户设计在FPGA上运行过程中即可以结束第一配置应用过程,同样的第二用户设计在FPGA上运行过程中即可以结束第二配置应用过程,也即一个配置应用过程是对应的用户设计的部分运行过程。
无论是哪种情况,在该应用场景中,可以对一块FPGA进行分时应用分别实现多个用户设计,而且除FPGA之外无需使用额外的芯片就可以实现这不同的用户设计之间的数据传递。
2、第一用户设计和第二用户设计是同一个用户设计,第一配置码流和第二配置码流相同。同样的在该应用场景下,与上述应用场景类似,一个配置应用过程可以是对应的用户设计的完整运行过程也可以对应部分运行过程,但这种应用场景下一个配置应用过程是对应的用户设计的部分运行过程的情况更为常用,也即第一配置应用过程和第二配置应用过程为同一个用户设计的运行过程中的两个不同的运行阶段,一个用户设计在FPGA上运行一个运行阶段后结束形成第一配置应用过程,该用户设计继而可以在FPGA上运行后续的运行阶段形成第二配置应用过程。因此在这种情况下,第一运行数据用于表征第一用户设计在第一配置应用过程的运行状态,则第二用户设计结合第一运行数据运行时、在第二配置应用过程恢复至第一配置应用过程的运行状态,也即从第一配置应用过程的运行状态处继续运行。
在一个实施例中,预先对用户设计的完整运行过程设置若干个中继点分割形成多个运行阶段,FPGA在一个运行阶段运行完成时下电,可编程逻辑资源的供电停止,对应的配置应用过程结束,FPGA停止运算休息一段时间后,重新上电进入下一个运行阶段对应的配置应用过程,并从上一个配置应用过程的运行状态处继续运行。也即FPGA在第一用户设计对应的运行阶段运行完成时下电,可编程逻辑资源的供电停止,第一配置应用过程结束,第二配置应用过程从第一配置应用过程的运行状态处继续运行。这一特征使得该FPGA非常适用于实现完整运行过程较长的用户设计的场景,通过暂存中间结果可以分段执行运行任务,减少FPGA长时间运行的压力。
在另一个实施例中,一个用户设计的完整运行过程被断电错误而形成多个运行阶段,FPGA在运行用户设计过程中出现断电错误时,可编程逻辑资源的供电停止,当前的配置应用过程结束形成一个运行阶段,FPGA重新上电再次下载相同的配置码流,并从上一个配置应用过程的运行状态处继续运行。也即FPGA在第一用户设计运行过程中出现断电错误时,可编程逻辑资源的供电停止,第一配置应用过程结束,第二配置应用过程从第一配置应用过程的运行状态处继续运行。这一特征使得该FPGA在运行一个用户设计的过程中不受中间断电故障的影响,在出现断电故障时可以继续运行任务,而无需从头开始运行,提高了运行可靠性。
另外可选的在一个实施例中,硬件存储器M1为带有ECC功能的存储器,或者,硬件存储器M1是连接有ECC电路的存储器,则硬件存储器M1在实现不同配置应用过程间的数据传递的功能之外,还对传递的数据进行ECC校验纠错,保证传递的数据的准确性,进一步提高FPGA运行可靠性。
上述各实施例中提到的FPGA为单裸片FPGA,或者是多裸片FPGA,当FPGA为包括若干个裸片的多裸片结构时,硬件存储器M1集成在其中一个FPGA裸片内,或者,硬件存储器M1为多裸片FPGA内部的一个独立裸片而与其他FPGA裸片相连。
另外需要说明的是,上述第一配置应用过程和第二配置应用过程分别是FPGA的任意两个配置应用过程,常见的情况是这两个配置应用过程是两个连续的配置应用过程,也即FPGA在结束第一配置应用过程后,下一个执行的配置应用过程就是第二配置应用过程。但是这两个配置应用过程也可以是不连续的配置应用过程,比如FPGA在结束第一配置应用过程后,继续执行其他的配置应用过程比如第三配置应用过程,但在第三配置应用过程中不对硬件存储器中的第一运行数据进行修改,在结束第三配置应用过程后,硬件存储器中仍然存储有第一运行数据,此时FPGA再执行第二配置应用过程时仍然可以从硬件存储器中读取到第一运行数据,实现上述数据传递过程。而在第三配置应用过程中,对应的用户设计可以对硬件存储器中的第一运行数据只读不写或者不读不写,都可以保证不修改硬件存储器中的第一运行数据,因此不一定每个配置应用过程中的用户设计都会与硬件存储器中的数据进行交互,与硬件存储器中的数据交互时也可以只读不写,或者,只写不读,或者,又写又读。
实际FPGA可以有更多个配置应用过程,而上述各个实施例所描述的在第一配置应用过程和第二配置应用过程之间实现数据传递的过程可以适用于任意两个配置应用过程之间,一个配置应用过程在一个场景下可以作为第二配置应用过程从硬件存储器中读取在先的配置应用过程存储的运行数据,同时在另一个应用场景下又作为第一配置应用过程将自己产生的运行数据写入硬件存储器中传输给在后的配置应用过程,形成多个数据传递过程。比如,用户设计A在配置应用过程A将运行数据A写入硬件存储器M1中,用户设计B在配置应用过程B从硬件存储器M1中读取运行数据A运行并产生运行数据B写入硬件存储器M1中,用户设计C在配置应用过程C从硬件存储器M1中读取运行数据B运行并产生运行数据C写入硬件存储器M1中,以此类推。当各个配置应用过程对应同一个用户设计,且用户设计在每个配置应用过程都对读取到的运行数据修正后产生新的运行数据时,FPGA通过这些相互传递数据的配置应用过程即可以实现常见的机器学习应用。
另外该FPGA也可以兼容常规FPGA芯片的应用,也即将硬件存储器M1作为普通存储器来存储数据,而不用于实现不同配置应用过程间的数据传递。
Claims (17)
1.一种可实现不同配置应用过程间数据传递的FPGA,其特征在于,所述FPGA内部包括可编程逻辑资源、配置内存以及硬件存储器,所述硬件存储器的写端口和读端口分别通过绕线路径连接所述可编程逻辑资源,所述硬件存储器中的数据在所述可编程逻辑资源的非正常运行阶段保持不变;
在所述FPGA的第一配置应用过程中,所述FPGA下载第一用户设计对应的第一配置码流并存储在所述配置内存中,所述第一配置码流下载完成后,所述FPGA基于所述配置内存中的第一配置码流利用可编程逻辑资源形成第一用户设计;所述第一用户设计在运行过程中将产生的第一运行数据按预定格式写入所述硬件存储器中存储;
在所述FPGA的第二配置应用过程中,所述FPGA下载第二用户设计对应的第二配置码流并存储在所述配置内存中,所述第二配置码流下载完成后,所述FPGA基于所述配置内存中的第二配置码流利用可编程逻辑资源形成第二用户设计,所述第二用户设计按照所述预定格式从所述硬件存储器中读取所述第一运行数据,并结合所述第一运行数据运行。
2.根据权利要求1所述的FPGA,其特征在于,所述可编程逻辑资源的非正常运行阶段包括所述可编程逻辑资源的供电停止至再次上电之间的阶段,以及所述FPGA在正常供电过程中执行码流下载操作和重置操作的阶段;
其中,所述FPGA执行的重置操作包括上电启动重置、全局重置以及部分重置中的至少一种。
3.根据权利要求2所述的FPGA,其特征在于,所述硬件存储器为具有独立不断电电源的存储器,或者,所述硬件存储器为采用NVM工艺制成的存储器;且所述硬件存储器的写端口在所述可编程逻辑资源的非正常运行阶段保持默认值。
4.根据权利要求3所述的FPGA,其特征在于,所述硬件存储器为具有独立不断电电源的RAM存储器或FIFO存储器。
5.根据权利要求3所述的FPGA,其特征在于,当所述硬件存储器为具有独立不断电电源的存储器时,存储器通过所述FPGA的独立供电管脚连接外部的独立不断电电源,或者,存储器通过绕线路径连接所述FPGA内部的独立不断电电源。
6.根据权利要求5所述的FPGA,其特征在于,所述可编程逻辑资源通过输入缓冲器连接所述硬件存储器的写端口,所述硬件存储器的读端口通过输出缓冲器连接所述可编程逻辑资源,所述输入缓冲器的输入端还设置有默认值提供电路,所述默认值提供电路由所述硬件存储器的独立不断电电源供电。
7.根据权利要求6所述的FPGA,其特征在于,所述默认值提供电路为上拉电路或总线维持电路。
8.根据权利要求1-7任一所述的FPGA,其特征在于,所述第一用户设计和所述第二用户设计是不同的用户设计,所述第一配置码流和所述第二配置码流不同。
9.根据权利要求1-7任一所述的FPGA,其特征在于,所述第一用户设计和所述第二用户设计是同一个用户设计,所述第一配置码流和所述第二配置码流相同。
10.根据权利要求9所述的FPGA,其特征在于,所述第一配置应用过程和所述第二配置应用过程为同一个用户设计的运行过程中的两个不同的运行阶段,所述第一运行数据用于表征所述第一用户设计在所述第一配置应用过程的运行状态,所述第二用户设计结合所述第一运行数据运行在所述第二配置应用过程恢复至所述第一配置应用过程的运行状态。
11.根据权利要求10所述的FPGA,其特征在于,所述FPGA在所述第一用户设计对应的运行阶段运行完成时下电,所述可编程逻辑资源的供电停止,所述第一配置应用过程结束。
12.根据权利要求10所述的FPGA,其特征在于,所述FPGA在所述第一用户设计运行过程中出现断电错误时,所述可编程逻辑资源的供电停止,所述第一配置应用过程结束。
13.根据权利要求1-7任一所述的FPGA,其特征在于,所述第一用户设计在运行过程中,每隔预定时间将数据覆盖写入所述硬件存储器中更新形成所述第一运行数据。
14.根据权利要求1-7任一所述的FPGA,其特征在于,用户设计对所述硬件存储器的读写位宽由用户设计产生的控制信号设定。
15.根据权利要求1-7任一所述的FPGA,其特征在于,所述第一用户设计和所述第二用户设计对所述硬件存储器的读写位宽相同或者不同。
16.根据权利要求1-7任一所述的FPGA,其特征在于,所述硬件存储器为带有ECC功能的存储器,或者,所述硬件存储器是连接有ECC电路的存储器。
17.根据权利要求1-7任一所述的FPGA,其特征在于,所述FPGA为包括若干个裸片的多裸片结构,则所述硬件存储器集成在其中一个FPGA裸片内,或者,所述硬件存储器为一个独立裸片。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110954457.6A CN113657061B (zh) | 2021-08-19 | 2021-08-19 | 可实现不同配置应用过程间数据传递的fpga |
PCT/CN2021/128349 WO2023019747A1 (zh) | 2021-08-19 | 2021-11-03 | 可实现不同配置应用过程间数据传递的fpga |
US17/645,751 US20220113883A1 (en) | 2021-08-19 | 2021-12-23 | Field-programmable gate array (fpga) for implementing data transfer between different configuration and application processes |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110954457.6A CN113657061B (zh) | 2021-08-19 | 2021-08-19 | 可实现不同配置应用过程间数据传递的fpga |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113657061A CN113657061A (zh) | 2021-11-16 |
CN113657061B true CN113657061B (zh) | 2023-08-18 |
Family
ID=78481289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110954457.6A Active CN113657061B (zh) | 2021-08-19 | 2021-08-19 | 可实现不同配置应用过程间数据传递的fpga |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113657061B (zh) |
WO (1) | WO2023019747A1 (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104504975A (zh) * | 2014-12-29 | 2015-04-08 | 清华大学 | 基于现场可编程门阵列的便携式综合电子实验平台 |
CN105958995A (zh) * | 2016-04-27 | 2016-09-21 | 北京时代民芯科技有限公司 | 一种快速启动fpga的电路和方法 |
CN110417757A (zh) * | 2019-07-10 | 2019-11-05 | 广州博依特智能信息科技有限公司 | 一种基于边缘计算网关的工业数据存储系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI220738B (en) * | 2002-12-20 | 2004-09-01 | Benq Corp | Method for effectively re-downloading data to a field programmable gate array |
US10642492B2 (en) * | 2016-09-30 | 2020-05-05 | Amazon Technologies, Inc. | Controlling access to previously-stored logic in a reconfigurable logic device |
CN110073333B (zh) * | 2017-11-03 | 2020-11-17 | 华为技术有限公司 | 恢复fpga芯片中的逻辑的方法、系统和fpga设备 |
CN111680000B (zh) * | 2020-05-07 | 2023-08-18 | 中国科学院微电子研究所 | 现场可编程逻辑门阵列的配置系统和方法 |
CN111813432A (zh) * | 2020-06-01 | 2020-10-23 | 大唐微电子技术有限公司 | 一种fpga配置升级方法和fpga平台 |
-
2021
- 2021-08-19 CN CN202110954457.6A patent/CN113657061B/zh active Active
- 2021-11-03 WO PCT/CN2021/128349 patent/WO2023019747A1/zh unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104504975A (zh) * | 2014-12-29 | 2015-04-08 | 清华大学 | 基于现场可编程门阵列的便携式综合电子实验平台 |
CN105958995A (zh) * | 2016-04-27 | 2016-09-21 | 北京时代民芯科技有限公司 | 一种快速启动fpga的电路和方法 |
CN110417757A (zh) * | 2019-07-10 | 2019-11-05 | 广州博依特智能信息科技有限公司 | 一种基于边缘计算网关的工业数据存储系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113657061A (zh) | 2021-11-16 |
WO2023019747A1 (zh) | 2023-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8412918B1 (en) | Booting mechanism for FPGA-based embedded system | |
US11294660B2 (en) | Apparatus and method for configuring or updating programmable logic device | |
CN106293832B (zh) | 一种soc芯片引导启动方法及系统 | |
CN107704285B (zh) | 现场可编程门阵列多版本配置芯片、系统和方法 | |
US5974528A (en) | Microcomputer with embedded flash memory having on-chip programming capability and method of programming data into the embedded flash memory | |
US20070180223A1 (en) | Computer system and method of booting the system | |
US20120317340A1 (en) | Memory controller and non-volatile storage device | |
JP2005141718A (ja) | 内蔵型設定可能ロジックアレイのための、初期化機能上の設定付き回路内設定構造 | |
US7930535B1 (en) | Method and apparatus for loading configuration data | |
KR101542878B1 (ko) | 버퍼램을 포함하는 불휘발성 메모리 장치 및 그것의 부트 코드 관리 방법 | |
JP2006190132A (ja) | 制御プログラムダウンロード装置 | |
JP4040026B2 (ja) | 内蔵型設定可能ロジックアレイのための回路内設定構造 | |
US9104401B2 (en) | Flash memory apparatus with serial interface and reset method thereof | |
CN113657061B (zh) | 可实现不同配置应用过程间数据传递的fpga | |
US20140229707A1 (en) | Electronics apparatus able to revise micro-program and algorithm to revise micro-program | |
JP2005141717A (ja) | 内蔵型設定可能ロジックアレイのための不揮発性メモリ付、回路内設定構造 | |
CN110489167B (zh) | 双内核码流下载方法、装置、计算机设备及存储介质 | |
JP6334831B2 (ja) | Tigersharc dspブート管理チップおよび方法 | |
JP2005044341A (ja) | 書き込み防止可能なバッファメモリを有するメモリ装置及びそれを含む情報処理システム | |
US20130132659A1 (en) | Microcontroller and method of controlling microcontroller | |
US5734857A (en) | Program memory expansion using a special-function register | |
CN111858446A (zh) | Windows系统下基于双口RAM通信的CAN总线通信模块设计方法 | |
US20220113883A1 (en) | Field-programmable gate array (fpga) for implementing data transfer between different configuration and application processes | |
US6990575B2 (en) | Apparatus and process for a starting a data processing installation | |
CN114489743A (zh) | 一种片上可编程系统的程序烧写及加载运行方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |