CN103440359B - 一种实现迭代算法的fpga并行计算电路自动生成方法 - Google Patents

一种实现迭代算法的fpga并行计算电路自动生成方法 Download PDF

Info

Publication number
CN103440359B
CN103440359B CN201310303368.0A CN201310303368A CN103440359B CN 103440359 B CN103440359 B CN 103440359B CN 201310303368 A CN201310303368 A CN 201310303368A CN 103440359 B CN103440359 B CN 103440359B
Authority
CN
China
Prior art keywords
parallel computation
circuit
iterative
alpha
beta
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
Application number
CN201310303368.0A
Other languages
English (en)
Other versions
CN103440359A (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.)
Beijing Institute of Spacecraft System Engineering
Original Assignee
Beijing Institute of Spacecraft System Engineering
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 Beijing Institute of Spacecraft System Engineering filed Critical Beijing Institute of Spacecraft System Engineering
Priority to CN201310303368.0A priority Critical patent/CN103440359B/zh
Publication of CN103440359A publication Critical patent/CN103440359A/zh
Application granted granted Critical
Publication of CN103440359B publication Critical patent/CN103440359B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Logic Circuits (AREA)

Abstract

一种实现迭代算法的FPGA并行计算电路自动生成方法,步骤如下:(1)用串行计算电路实现所述迭代算法;(2)针对所述串行计算电路,提取该电路时序逻辑中的寄存器及组合逻辑,将提取出的寄存器作为存储部分,组合逻辑作为计算部分;(3)将所述迭代算法的串行计算电路表示为迭代函数及输出函数的形式;(4)将所述串行计算电路中需要多个时钟执行的计算全部压缩到1个时钟内执行,得到并行计算迭代式;(5)使用FPGA的设计语言描述所述并行计算迭代式;(6)根据步骤(5)中描述出的并行计算迭代式生成FPGA并行计算电路。使用本发明可不再使用手工推导并行计算式,可直接生成并行计算电路,可显著加速和简化迭代型算法VLSI并行计算电路的设计过程。

Description

一种实现迭代算法的FPGA并行计算电路自动生成方法
技术领域
本发明涉及一种实现迭代算法的FPGA并行计算电路自动生成方法,可以不借助手工推导并行迭代式直接生成迭代算法并行计算电路,属于信号处理及微电子芯片技术领域。
背景技术
基于VLSI(大规模集成电路)的高性能计算技术在嵌入式高速信号处理领域扮演着举足轻重的地位。在系统计算需求激增的今天,针对多维高速数据实时处理的计算速率要求动辄上千GMACS,嵌入式系统中传统哈弗结构或冯·诺依曼结构的处理器只能望洋兴叹。基于VLSI的高性能计算技术凭借现代微电子技术规模的指数增加及硬件电路固有的并行特性,提供了强大的计算能力,弥补了传统处理器与嵌入式高性能计算需求之间的鸿沟。以Xilinx公司7系列FPGA为代表的大容量FPGA,单芯片最高可提供3960×2×638MHz=5053GMACS的计算能力,而同期最高性能8核DSP仅能达到320GMACS的计算能力的计算速率。在基于VLSI实现高速海量信号处理算法过程中,绝大部分涉及数据的迭代计算。而如何充分发挥VLSI计算技术的优势的关键,就是如何为相关算法设计高并行度的计算结构。传统设计算法并行计算电路时,主要以手动推导并行计算表达式,并按照其表达式设计电路,当并行度或相关参数需要调整时,又需要再次推导新的并行表达式,并重新设计并行计算电路。这种方法即耗时耗力,又需要设计人员具有较深厚的技术能力。
发明内容
本发明解决的问题是:克服现有技术的不足,提供一种实现迭代算法的FPGA并行计算电路自动生成方法,使设计人员不用借助手工推导并行迭代式而直接生成迭代算法并行计算电路,大大简化相关FPGA芯片的开发难度及加速开发速度。
本发明的技术解决方案是:
一种实现迭代算法的FPGA并行计算电路自动生成方法,步骤如下:
(1)用串行计算电路实现所述迭代算法;
(2)针对所述串行计算电路,提取该电路时序逻辑中的寄存器及组合逻辑,将提取出的寄存器作为存储部分M,组合逻辑作为计算部分f()和h();
(3)将所述迭代算法的串行计算电路表示为迭代函数及输出函数的形式;
(4)将所述串行计算电路中需要多个时钟执行的计算全部压缩到1个时钟内执行,得到并行计算迭代式;
(5)使用FPGA的设计语言描述所述并行计算迭代式;
(6)根据步骤(5)中描述出的并行计算迭代式生成FPGA并行计算电路。
所述步骤(3)中迭代算法的串行计算电路表示为迭代函数及输出函数的形式具体为: M n + 1 = f ( M n , D n , α ) , ( α ∈ Λ ) Y n = h ( M n , D n , β ) , ( β ∈ Λ ) , 其中,Mn表示n时刻的存储部分,Dn表示n时刻的输入数据,f(,,α)表示存储部分的更新函数,Yn为n时刻输出数据,h(,,β)表示输出函数;α和β均表示任一参数。
所述并行计算迭代式具体为:
M n + k = f ( f ( f ( . . . . f ( M n , D n , α ) . . . . , D n + k - 3 , α ) , D n + k - 2 , α ) , D n + k - 1 , α ) , ( α ∈ Λ ) Y n = h ( M n , D n , β ) , ( β ∈ Λ ) Y n + 1 = h ( f ( M n , D n , α ) , D n + 1 , β ) , ( β ∈ Λ ) · · · Y n + k - 1 = h ( f ( f ( . . . . f ( , D n , α ) . . . . , D n + k - 3 , α ) , D n + k - 2 , α ) , D n + k - 1 , β ) , ( β ∈ Λ )
其中,k为并行计算电路的并行度且k为正整数。
本发明与现有技术相比的有益效果是:
本发明提供实现迭代算法的FPGA并行计算电路自动生成方法,使用本发明所述方法可以在设计相关并行电路时,不再使用手工推导并行计算式,可直接生成并行计算电路,可显著加速和简化迭代型算法VLSI并行计算电路的设计过程。
附图说明
图1为一种实现迭代算法的FPGA并行计算电路自动生成方法流程图
图2为串行迭代计算的数据流图
图3为串行迭代计算的VLSI硬件结构图
图4为k并行度迭代计算的数据流图
图5为k并行度迭代计算的VLSI硬件结构图
图6为自动生成电路计算并行CRC仿真波形
图7为手工推导电路计算并行CRC仿真波形
具体实施方式
基于VLSI的高性能计算技术在嵌入式高速信号处理领域扮演着举足轻重的地位,而并行计算结构的设计在其中起到关键作用。传统迭代算法的并行计算电路设计主要以手工推导并行计算公式为基础,再以电路搭建并行计算电路,较为繁琐,并要求设计者有较高的专业水平。为简化和加速迭代型算法并行电路的设计,本发明给出一种实现迭代算法的FPGA并行计算电路自动生成方法,可以直接描述并行计算电路并自动综合生成优化的并行计算结构。
如图1所示,本发明提供了一种实现迭代算法的FPGA并行计算电路自动生成方法,步骤如下:
(1)用串行计算电路实现所述迭代算法;
用串行计算电路实现所述迭代算法,该串行电路可以直观地实现迭代算法,同时该电路也用于提取算法的“存储+更新”计算模型。
(2)针对所述串行计算电路,提取该电路时序逻辑中的寄存器及组合逻辑,将提取出的寄存器作为存储部分M,组合逻辑作为计算部分f()和h();
迭代算法的计算实现过程包括几个要素:输入数据、计算方法、计算缓存、输出数据。
(3)将所述迭代算法的串行计算电路表示为迭代函数及输出函数的形式;
所述步骤(3)中迭代算法的串行计算电路表示为迭代函数及输出函数的形式具体为:
M n + 1 = f ( M n , D n , α ) , ( α ∈ Λ ) Y n = h ( M n , D n , β ) , ( β ∈ Λ )
其中,Mn表示n时刻的存储部分,Dn表示n时刻的输入数据,f(,,α)表示存储部分的更新函数,Yn为n时刻输出数据,h(,,β)表示输出函数;α和β均表示任一参数
(4)将所述串行计算电路中需要多个时钟执行的计算全部压缩到1个时钟内执行,得到并行计算迭代式;
具体是将迭代算法的计算过程在时间和空间上展开,可得到其计算流图表达,如图2所示,其对应的串行迭代计算的VLSI硬件结构如图3所示。图2中,每个时间单位,即VLSI电路的1个时钟执行一次迭代计算,完成f(),更新存储部分Mn,同时完成h(),计算输出数据。图3中,VLSI电路中使用寄存器缓存存储部分,利用两个组合逻辑电路f(),h()完成存储部分更新计算及输出计算,每个时钟上升沿输入一个数据,并完成一次迭代,同时输出一个输出数据。
在串行迭代计算的数据流图中,每个时间单位完成一次迭代计算,而本发明使其k个时间单位内完成的k次迭代计算在1个时间单位内完成。如图4所示,将k个时间周期折叠到1个时间周期内,其中的过程计算数据不再经过寄存器存储。图5给出了按照图4中“时钟折叠”方法设计的k并行度迭代计算的VLSI硬件结构。其中每个时钟周期输入k个数据Dn~Dn+k-1,输出k个数据Yn~Yn+k-1。其中将一系列组合逻辑进行了级联得到f(f(f(...)))及h(.)、h(f(.))、…h(f(f(f(...))))。
(5)使用FPGA的设计语言描述所述并行计算迭代式;
所述并行计算迭代式具体为:
M n + k = f ( f ( f ( . . . . f ( M n , D n , α ) . . . . , D n + k - 3 , α ) , D n + k - 2 , α ) , D n + k - 1 , α ) , ( α ∈ Λ ) Y n = h ( M n , D n , β ) , ( β ∈ Λ ) Y n + 1 = h ( f ( M n , D n , α ) , D n + 1 , β ) , ( β ∈ Λ ) · · · Y n + k - 1 = h ( f ( f ( . . . . f ( , D n , α ) . . . . , D n + k - 3 , α ) , D n + k - 2 , α ) , D n + k - 1 , β ) , ( β ∈ Λ )
其中,k为并行计算电路的并行度且k为正整数。利用VHDL硬件描述语言中variable的特性,在一个时钟周期内完成多步迭代算法的计算。
(6)根据步骤(5)中描述出的并行计算迭代式生成FPGA并行计算电路。使用FPGA设计语言直接描述图5或并行计算迭代式即可综合得到并行计算电路。为了验证其正确性,设计相应测试向量,使用仿真软件验证其计算结果的正确性(以CRC计算为例,如图6、图7所示)。

Claims (2)

1.一种实现迭代算法的FPGA并行计算电路自动生成方法,其特征在于步骤如下:
(1)用串行计算电路实现所述迭代算法;
(2)针对所述串行计算电路,提取该电路时序逻辑中的寄存器及组合逻辑,将提取出的寄存器作为存储部分M,组合逻辑作为计算部分f()和h();
(3)将所述迭代算法的串行计算电路表示为迭代函数及输出函数的形式;
(4)将所述串行计算电路中需要多个时钟执行的计算全部压缩到1个时钟内执行,得到并行计算迭代式;
(5)使用FPGA的设计语言描述所述并行计算迭代式;
(6)根据步骤(5)中描述出的并行计算迭代式生成FPGA并行计算电路;
所述并行计算迭代式具体为:
M n + k = f ( f ( f ( .... f ( M n , D n , α ) .... , D n + k - 3 , α ) , D n + k - 2 , α ) , D n + k - 1 , α ) , ( α ∈ Λ ) Y n = h ( M n , D n , β ) , ( β ∈ Λ ) Y n + 1 = h ( f ( M n , D n , α ) , D n + 1 , β ) , ( β ∈ Λ ) . . . Y n + k - 1 = h ( f ( f ( .... f ( M n , D n , α ) .... , D n + k - 3 , α ) , D n + k - 2 , α ) , D n + k - 1 , β ) , ( β ∈ Λ )
其中,k为并行计算电路的并行度且k为正整数;Mn表示n时刻的存储部分,Dn表示n时刻的输入数据,f(Mn,Dn,α)表示存储部分的更新函数,Yn为n时刻输出数据,h(Mn,Dn,β)表示输出函数;α和β均表示任一参数。
2.根据权利要求1所述的一种实现迭代算法的FPGA并行计算电路自动生成方法,其特征在于:
所述步骤(3)中迭代算法的串行计算电路表示为迭代函数及输出函数的形式具体为: M n + 1 = f ( M n , D n , α ) , ( α ∈ Λ ) Y n = h ( M n , D n , β ) , ( β ∈ Λ ) .
CN201310303368.0A 2013-07-18 2013-07-18 一种实现迭代算法的fpga并行计算电路自动生成方法 Active CN103440359B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310303368.0A CN103440359B (zh) 2013-07-18 2013-07-18 一种实现迭代算法的fpga并行计算电路自动生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310303368.0A CN103440359B (zh) 2013-07-18 2013-07-18 一种实现迭代算法的fpga并行计算电路自动生成方法

Publications (2)

Publication Number Publication Date
CN103440359A CN103440359A (zh) 2013-12-11
CN103440359B true CN103440359B (zh) 2016-03-02

Family

ID=49694052

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310303368.0A Active CN103440359B (zh) 2013-07-18 2013-07-18 一种实现迭代算法的fpga并行计算电路自动生成方法

Country Status (1)

Country Link
CN (1) CN103440359B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106844926A (zh) * 2017-01-11 2017-06-13 上海鲲云信息科技有限公司 动态可重构硬件电路的设计、执行方法及系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2790322A1 (fr) * 1999-02-26 2000-09-01 Koninkl Philips Electronics Nv Recepteur, circuit programmable et procede de calcul de filtres numeriques
CN1230736C (zh) * 2002-07-31 2005-12-07 清华大学 智能卡模乘器vlsi结构的计算机实现方法
WO2007143220A2 (en) * 2006-06-08 2007-12-13 Xinghao Chen Reconfigurable scan array structure
US20140088911A1 (en) * 2011-05-29 2014-03-27 Cigol Digital Systems Ltd. VLSI Circuit Verification

Also Published As

Publication number Publication date
CN103440359A (zh) 2013-12-11

Similar Documents

Publication Publication Date Title
CN103150440B (zh) 一种模块级电路网表仿真方法
Wang et al. Dissipativity and contractivity analysis for fractional functional differential equations and their numerical approximations
CN103269218A (zh) 一种基于fpga/cpld的任意分数分频器实现方法
Lee et al. FastPass: Fast timing path search for generalized timing exception handling
CN103440359B (zh) 一种实现迭代算法的fpga并行计算电路自动生成方法
CN104699656A (zh) 一种基于fpga的微处理器puf实现系统及其方法
Hand et al. Performance optimization and analysis of blade designs under delay variability
Cai et al. Design and implementation of LMS adaptive filter algorithm based on FPGA
US8863058B2 (en) Characterization based buffering and sizing for system performance optimization
CN102346794B (zh) 一种帘布结构铁路机车橡胶构件的分析方法
US11303281B2 (en) Efficient pipelined architecture for superconducting single flux quantum logic circuits utilizing dual clocks
CN112668261B (zh) 一种基于关键路径数和敏感性的多阈值低功耗优化方法
Zhao et al. GPU based parallel matrix exponential algorithm for large scale power system electromagnetic transient simulation
Lu et al. High order large eddy simulations for a transonic turbine blade using hybrid unstructured meshes
Marjanovic Low vs high level programming for FPGA
Xue et al. A linearly convergent proximal ADMM with new iterative format for BPDN in compressed sensing problem
Netzer et al. QHDL: A low-level circuit description language for quantum computing
Shklover et al. Simultaneous clock and data gate sizing algorithm with common global objective
CN104951609A (zh) 一种处理门级网表中的同步逻辑结构的方法
Zhang et al. A moment-matching scheme for the passivity-preserving model order reduction of indefinite descriptor systems with possible polynomial parts
Oliveira et al. Design of asynchronous digital systems using two-phase bundled-data protocol
Cheng et al. Automatic conversion from flip-flop to 3-phase latch-based designs
Liu et al. Process-variation statistical modeling for VLSI timing analysis
Järviluoma Rapid prototyping from algorithm to FPGA prototype
Saifhashemi et al. Observability conditions and automatic operand-isolation in high-throughput asynchronous pipelines

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