CN113626376B - 基于fpga的软件化实时动态可重构控制方法和系统 - Google Patents
基于fpga的软件化实时动态可重构控制方法和系统 Download PDFInfo
- Publication number
- CN113626376B CN113626376B CN202110879594.8A CN202110879594A CN113626376B CN 113626376 B CN113626376 B CN 113626376B CN 202110879594 A CN202110879594 A CN 202110879594A CN 113626376 B CN113626376 B CN 113626376B
- Authority
- CN
- China
- Prior art keywords
- data
- reconstruction
- module
- dynamic
- ddr
- 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
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7871—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
-
- 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)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种基于FPGA的软件化实时动态可重构控制方法和系统,包括:1、处理流程1~N对应的重构数据输入,每个处理流程下配置M个动态区;重构数据缓存至DDR中处理流程对应的存储空间或直接进行重构;若直接进行重构,则跳转到3,否则执行2;2、将重构数据缓存至DDR,并对数据执行校验;若校验成功,则置为1,否则置0;3、若选择缓存数据且校验成功标志为1则读出数据,否则选择外部直接输入的数据;4、对重构数据进行跨时钟域转换及格式适配;5、配置ICAP原语参数,调用其完成动态重构。本发明采用ICAP原语进行动态重构,支持重构bit数据缓存后根据应用场景重构,也支持直接执行动态区功能的在线重构。
Description
技术领域
本发明涉及FPGA动态可重构领域,尤其涉及一种基于FPGA的软件化实时动态可重构控制方法和系统。
背景技术
动态可重构技术是在FPGA运行过程中,动态地对FPGA的部分资源进行重新配置,以实现不同的硬件功能。因此该技术可通过资源的时分复用来提高FPGA的资源利用率,在不增加系统体积和功耗的情况下,满足信号处理系统多种功能共存的要求。
然而,目前动态可重构基于厂商提供的ICAP库IP进行,重构速率仅为理论最大值400MB/s的约1/6,即67MB/s。重构效率低下,例如对于15MB大小的动态区bit文件,重构时间长达224ms。这在应用场景快速变化,要求功能实时切换的信号处理系统中是不可接受的,因此现有模块已不适用于应用场景快变的情况。
发明内容
为解决现有的技术问题,本发明提供了一种基于FPGA的软件化实时动态可重构控制方法和系统。
本发明的具体内容如下:一种基于FPGA的软件化实时动态可重构控制方法,基于FPGA实现,包括如下步骤:
步骤一:处理流程1~N对应的重构数据输入,每个处理流程下配置M个动态区,其中,M为正整数,N为大于1的正整数;重构数据缓存至DDR中处理流程对应的存储空间,或者直接进行重构;若直接进行重构,则跳转到步骤三,否则,执行步骤二;
步骤二:将重构数据缓存至DDR,并对数据执行校验;若校验成功,则置校验成功标志为1,否则置0;
步骤三:若选择缓存数据且校验成功标志为1,则读出数据,否则选择外部直接输入的数据;
步骤四:对重构数据进行跨时钟域转换及格式适配;
步骤五:配置ICAP原语的参数,调用其完成动态重构。
进一步的,步骤二中对数据校验包括数据头、尾校验及累加和校验。
进一步的,步骤四中,在进行重构数据的跨时钟域转换及格式适配之前,先根据重构数据的来源选择外部直接输入数据或者DDR缓存数据。
进一步的,步骤五中ICAP原语的参数包括读写选择、重构使能以及解耦使能信号。
进一步的,在应用场景发生变化,需要切换FPGA运行在处理流程N时,若处理流程N的校验标志为1,则从DDR中处理流程N数据存储的相应位置读出重构数据;若为0,则通知上一级重新发送处理流程N的重构数据,新的重构数据不经过缓存,直接执行动态重构。
本发明还公开了一种基于FPGA的软件化实时动态可重构控制系统,包括重构控制模块(1)、数据缓存及校验模块(2)、重构数据读取模块(3)、数据格式转换模块(4)和ICAP原语模块(5);重构控制模块(1)分别控制数据缓存及校验模块(2)、重构数据读取模块(3)、数据格式转换模块(4)和ICAP原语模块(5),重构数据输入数据缓存及校验模块(2)或者数据格式转换模块(4)中,数据缓存及校验模块(2)和重构数据读取模块(3)均与DDR的存储空间相连。
进一步的,重构控制模块(1)控制数据缓存,重构数据从DDR读取或者由外部直接输入,进行ICAP原语参数的配置和管理;
数据缓存及校验模块(2)根据处理流程,将bit数据缓存至DDR对应的存储空间,并进行bit数据的校验;
重构数据读取模块(3)根据处理流程,从DDR指定地址读取bit数据,以供后续动态重构使用;
数据格式转换模块(4)选择外部直接输入数据或者DDR缓存数据,进行时钟域转换,并将数据转换为重构所需的数据格式;
ICAP原语模块(5)执行动态重构,完成FPGA动态区运行功能的切换。
本发明的基于FPGA的软件化实时动态可重构控制方法和系统,采用ICAP原语进行动态重构,支持重构bit数据缓存后根据应用场景重构,也支持直接执行动态区功能的在线重构,能够满足应用场景快变情况下,处理功能实时切换的需求。
附图说明
下面结合附图对本发明的具体实施方式做进一步阐明。
图1为本发明的动态可重构控制流程图;
图2为本发明的动态可重构控制系统模块框图;
图3为本发明的动态可重构时序图。
具体实施方式
本实施例公开了一种基于FPGA(Field Programmable Gate Array,现场可编程门阵列)的软件化实时动态可重构控制方法和系统,基于FPGA运行。
如图2所示,系统包括如下模块:重构控制模块1、数据缓存及校验模块2、重构数据读取模块3、数据格式转换模块4和ICAP(内部配置访问端口)原语模块5;重构控制模块1分别控制数据缓存及校验模块2、重构数据读取模块3、数据格式转换模块4和ICAP原语模块5,重构数据输入数据缓存及校验模块2或者数据格式转换模块4中,数据缓存及校验模块2和重构数据读取模块3均与DDR(双倍速率同步动态随机存储器)的存储空间相连。
重构控制模块1用于控制数据缓存,重构数据可从DDR读取或者由外部直接输入,进行ICAP原语参数的配置和管理,参数包括读写选择、重构使能以及解耦使能信号;
数据缓存及校验模块2根据处理流程,将bit数据缓存至DDR对应的存储空间,并进行bit数据的校验,包括数据头、尾校验及累加和校验;
重构数据读取模块3根据处理流程,从DDR指定地址读取bit数据,以供后续动态重构使用;
数据格式转换模块4选择外部直接输入数据或者DDR缓存数据,进行时钟域转换,并将数据转换为重构所需的数据格式;
ICAP原语模块5用于执行动态重构,完成FPGA动态区运行功能的切换。
如图1所示,本实施例的方法包括如下步骤:
步骤一:处理流程1~N(N为大于1的正整数)对应的重构数据输入。每个处理流程下需要配置M(M为正整数)个动态区,重构数据由各动态区bit文件拼接而成。重构控制模块1根据控制字选择将输入的重构数据缓存至DDR中处理流程对应的存储空间,或者直接进行重构。若直接进行重构,则跳转到步骤三,否则,执行步骤二;
步骤二:数据缓存及校验模块2将重构数据缓存至DDR,并对数据校验。若校验成功,则置校验成功标志为1,否则置0;
步骤三:若选择缓存数据且校验成功标志为1,重构控制模块1调用重构数据读取模块3读出数据,否则选择外部直接输入的数据;
步骤四:数据格式转换模块4完成重构数据的跨时钟域转换及格式适配;
步骤五:重构控制模块1配置ICAP原语5的参数,调用其完成动态重构。
其中,在应用场景发生变化,需要切换FPGA运行在处理流程N时,若处理流程N的校验标志为1,则从DDR中处理流程N数据存储的相应位置读出重构数据;若为0,则通知上一级重新发送处理流程N的重构数据,新的重构数据不经过缓存,直接执行动态重构。
结合本实施例的方法,以三个处理流程进行动态重构为例,处理流程1运行在3个动态区,直接进行功能部署;处理流程2运行在1个动态区,通过动态重构替换掉处理流程1;处理流程3运行在2个动态区,通过动态重构替换掉处理流程2。
处理流程1的重构数据输入后,不经过DDR缓存。直接进入数据格式转换模块模块4,完成200MHz时钟到100MHz时钟的跨时钟域转换。然后将32bit的数据进行重排,每8bit数据进行大小端转换,使之符合重构对输入数据格式的要求。重构控制模块1配置ICAP原语模块5的参数,ICAP原语模块5接收格式重排后的数据,完成处理流程1各个动态区的功能部署。
处理流程2的重构数据输入后,重构控制模块1控制数据缓存及校验模块2将数据存入DDR中对应于处理流程2的存储空间。若校验正确,则将校验成功标志置1,否则置0。当应用场景发生变化,需要切换FPGA运行在处理流程2时,重构控制模块1检测处理流程2的校验标志。若为1,重构数据读取模块3从DDR相应位置读出重构数据。若为0,重构控制模块1通知上一级重新发送处理流程2的重构数据,新的重构数据不经过缓存,直接执行动态重构。数据格式转换模块4完成数据格式转换,ICAP原语模块5完成处理流程2各个动态区的功能部署,从而完成对处理流程1的替换。
处理流程3的重构数据输入后,重构控制模块1控制数据缓存及校验模块2将数据存入DDR中对应于处理流程3的存储空间。若校验正确,则将校验成功标志置1,否则置0。当应用场景发生变化,需要切换FPGA运行在处理流程3时,重构控制模块1检测处理流程3的校验标志。若为1,重构数据读取模块3从DDR相应位置读出重构数据。若为0,重构控制模块1通知上一级重新发送处理流程3的重构数据,新的重构数据不经过缓存,直接执行动态重构。数据格式转换模块4完成数据格式转换,ICAP原语模块5完成处理流程3各个动态区的功能部署,从而完成对处理流程2的替换。
图3为本实施例的方法的动态可重构的时序图。重构使用100MHz的时钟信号,首先将读写选择信号拉低,选择重构数据输入模式。然后将重构使能信号(低有效)拉低,同时输入重构数据至ICAP原语模块5。
重构数据输入完成后,立即拉高重构使能,再拉高读写选择信号。在重构数据输入期间,拉高解耦使能信号,将动态区与静态区解耦合,从而保证静态区功能的正常运行。这样就完成了处理流程1的功能部署及处理流程2、3的功能切换。其中,重构控制模块1发送的信号中,重构使能信号用于使能重构过程,读写选择信号用于重构数据的读取,解耦使能信号用于ICAP原语模块5对处理流程N各个动态区的功能部署。
本实施例中,处理流程1的bit文件由3个动态区bit文件拼接而成,总的大小为11.47MB,实测重构耗时为30ms。重构速率为382.3MB/s,重构效率达到了理论最大速率400MB/s的95.6%。处理流程2的bit文件包含1个动态区的bit文件,大小为4.73MB,实测重构耗时为12.4ms。重构速率为381.5MB/s,重构效率达到了理论最大速率400MB/s的95.4%。处理流程3的bit文件由2个动态区bit文件拼接而成,总的大小为7.53MB,实测重构耗时为19.7ms。重构速率为382.2MB/s,重构效率达到了理论最大速率400MB/s的95.6%。
可见采用本发明的方法和系统采用ICAP原语进行动态可重构,重构时间缩短,重构效率大幅提升,使得动态可重构适用于应用场景快速变化的情况;支持多种处理流程的重构数据缓存或者直接重构,实现了参数化配置,通用性强;进行重构数据校验,动态可重构可靠性高。
在以上的描述中阐述了很多具体细节以便于充分理解本发明。但是以上描述仅是本发明的较佳实施例而已,本发明能够以很多不同于在此描述的其它方式来实施,因此本发明不受上面公开的具体实施的限制。同时任何熟悉本领域技术人员在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
Claims (4)
1.基于FPGA的软件化实时动态可重构控制方法,其特征在于:基于FPGA实现,包括如下步骤:
步骤一:处理流程1~N对应的重构数据输入,每个处理流程下配置M个动态区,其中,M为正整数,N为大于1的正整数;重构数据缓存至DDR中处理流程对应的存储空间,或者直接进行重构;若直接进行重构,则跳转到步骤三,否则,执行步骤二;
步骤二:将重构数据缓存至DDR,并对数据执行校验;若校验成功,则置校验成功标志为1,否则置0;
步骤三:若选择缓存数据且校验成功标志为1,则读出数据,否则选择外部直接输入的数据;
步骤四:对重构数据进行跨时钟域转换及格式适配;
步骤五:配置ICAP原语的参数,调用其完成动态重构;
ICAP原语的参数包括读写选择、重构使能以及解耦使能信号;
在应用场景发生变化,需要切换FPGA运行在处理流程N时,若处理流程N的校验标志为1,则从DDR中处理流程N数据存储的相应位置读出重构数据;若为0,则通知上一级重新发送处理流程N的重构数据,新的重构数据不经过缓存,直接执行动态重构。
2.根据权利要求1所述的基于FPGA的软件化实时动态可重构控制方法,其特征在于:步骤二中对数据校验包括数据头、尾校验及累加和校验。
3.根据权利要求1所述的基于FPGA的软件化实时动态可重构控制方法,其特征在于:步骤四中,在进行重构数据的跨时钟域转换及格式适配之前,先根据重构数据的来源选择外部直接输入数据或者DDR缓存数据。
4.基于FPGA的软件化实时动态可重构控制系统,其特征在于:包括重构控制模块(1)、数据缓存及校验模块(2)、重构数据读取模块(3)、数据格式转换模块(4)和ICAP原语模块(5);重构控制模块(1)分别控制数据缓存及校验模块(2)、重构数据读取模块(3)、数据格式转换模块(4)和ICAP原语模块(5),重构数据输入数据缓存及校验模块(2)或者数据格式转换模块(4)中,数据缓存及校验模块(2)和重构数据读取模块(3)均与DDR的存储空间相连;
重构控制模块(1)控制数据缓存,重构数据从DDR读取或者由外部直接输入,进行ICAP原语参数的配置和管理,参数包括读写选择、重构使能以及解耦使能信号;
数据缓存及校验模块(2)根据处理流程,将bit数据缓存至DDR对应的存储空间,并进行bit数据的校验,包括数据头、尾校验及累加和校验;
重构数据读取模块(3)根据处理流程,从DDR指定地址读取bit数据,以供后续动态重构使用;
数据格式转换模块(4)选择外部直接输入数据或者DDR缓存数据,进行时钟域转换,并将数据转换为重构所需的数据格式;
ICAP原语模块(5)执行动态重构,完成FPGA动态区运行功能的切换。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2021104892277 | 2021-04-30 | ||
CN202110489227 | 2021-04-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113626376A CN113626376A (zh) | 2021-11-09 |
CN113626376B true CN113626376B (zh) | 2023-08-18 |
Family
ID=78382015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110879594.8A Active CN113626376B (zh) | 2021-04-30 | 2021-08-02 | 基于fpga的软件化实时动态可重构控制方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113626376B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7512777B2 (ja) | 2020-09-03 | 2024-07-09 | 富士フイルムビジネスイノベーション株式会社 | 情報処理装置、及びプログラム |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102135951A (zh) * | 2011-03-07 | 2011-07-27 | 哈尔滨工业大学 | 基于运行时重构的ls-svm算法fpga实现方法 |
CN103837086A (zh) * | 2014-03-28 | 2014-06-04 | 常州工学院 | 一种基于fpga和高精度光幕的板坯长度动态检测装置 |
CN106886505A (zh) * | 2017-01-20 | 2017-06-23 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 多波形运行的局部动态可重构系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020069375A1 (en) * | 2000-10-12 | 2002-06-06 | Matt Bowen | System, method, and article of manufacture for data transfer across clock domains |
-
2021
- 2021-08-02 CN CN202110879594.8A patent/CN113626376B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102135951A (zh) * | 2011-03-07 | 2011-07-27 | 哈尔滨工业大学 | 基于运行时重构的ls-svm算法fpga实现方法 |
CN103837086A (zh) * | 2014-03-28 | 2014-06-04 | 常州工学院 | 一种基于fpga和高精度光幕的板坯长度动态检测装置 |
CN106886505A (zh) * | 2017-01-20 | 2017-06-23 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 多波形运行的局部动态可重构系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113626376A (zh) | 2021-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6434660B1 (en) | Emulating one tape protocol of flash memory to a different type protocol of flash memory | |
US6421274B1 (en) | Semiconductor memory device and reading and writing method thereof | |
US7782683B2 (en) | Multi-port memory device for buffering between hosts and non-volatile memory devices | |
RU2137186C1 (ru) | Запоминающее устройство данных и шина процессора | |
CN101849262B (zh) | 具有数据控制的存储器 | |
CN113553277A (zh) | 一种ddr5 sdram的高吞吐率、低延迟phy接口电路装置 | |
KR100783049B1 (ko) | 반도체기억장치 | |
CN111752484B (zh) | 一种ssd控制器、固态硬盘及数据写入方法 | |
CN107077882B (zh) | 一种dram刷新方法、装置和系统 | |
JPH11219600A (ja) | 半導体集積回路装置 | |
CN100426793C (zh) | 一种存储器的控制器及控制方法 | |
EP3129986A1 (en) | Apparatuses and methods for storing and writing multiple parameter codes for memory operating parameters | |
JPH10301841A (ja) | メモリ集積回路並びにこれを用いた主記憶システム及びグラフィクスメモリシステム | |
CN109669888A (zh) | 一种可配置且高效的嵌入式Nor-Flash控制器及控制方法 | |
US6523755B2 (en) | Semiconductor memory device | |
CN113626376B (zh) | 基于fpga的软件化实时动态可重构控制方法和系统 | |
JP3640350B2 (ja) | マイクロコードと有限状態機械セルフテストを組み合わせるプログラマブル・メモリビルトイン・セルフテスト | |
CN111108564A (zh) | 堆叠式ddr存储器的存储器测试控制 | |
KR100358622B1 (ko) | 데이터 패러렐/시리얼 변환 기능을 가짐과 동시에 동작테스트를 효율적으로 실행 가능한 반도체 기억 장치 | |
CN112148649A (zh) | 一种u-boot系统下的eMMC HS400传输模式实现方法及装置 | |
KR100377708B1 (ko) | 저소비 전력화가 가능한 파이프라인 방식의 반도체 기억장치 | |
US7519762B2 (en) | Method and apparatus for selective DRAM precharge | |
JP2001035158A (ja) | メモリアクセス方法及びメモリアクセス方式 | |
CN104636151A (zh) | 基于应用存储器的fpga芯片配置结构和配置方法 | |
WO2023107310A1 (en) | Read clock start and stop for synchronous memories |
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 |