CN116451624B - 一种电路设计的分割方法及装置 - Google Patents

一种电路设计的分割方法及装置 Download PDF

Info

Publication number
CN116451624B
CN116451624B CN202310729117.2A CN202310729117A CN116451624B CN 116451624 B CN116451624 B CN 116451624B CN 202310729117 A CN202310729117 A CN 202310729117A CN 116451624 B CN116451624 B CN 116451624B
Authority
CN
China
Prior art keywords
interface
interfaces
fpga
module
circuit design
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
CN202310729117.2A
Other languages
English (en)
Other versions
CN116451624A (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 Tanggu Software Technology Co ltd
Original Assignee
Beijing Tanggu Software Technology 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 Beijing Tanggu Software Technology Co ltd filed Critical Beijing Tanggu Software Technology Co ltd
Priority to CN202310729117.2A priority Critical patent/CN116451624B/zh
Publication of CN116451624A publication Critical patent/CN116451624A/zh
Application granted granted Critical
Publication of CN116451624B publication Critical patent/CN116451624B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3315Design verification, e.g. functional simulation or model checking using static timing analysis [STA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/73Program documentation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Library & Information Science (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本发明提供一种电路设计的分割方法及装置,方法包括:获取电路设计的源码文件;对所述源码文件进行解析,得到各源码子文件对应的模块;根据所述模块例化后得到的接口信息以及多个目标现场可编程逻辑门阵列FPGA所能容纳的接口数,对所述源码文件进行切割,得到多个FPGA块;按照各模块之间的引用关系,构建模块接口层次树;对所述模块接口层次树进行遍历,得到接口数最少的分支;按照所述接口数最少的分支,对所述多个FPGA块进行时序筛选优化。本发明的方案可以实现对需要验证的大型电路设计的源码进行分割的情况下,筛选出时序最优划分结果,可以使FPGA芯片的时序控制更优,且提高FPGA原型验证效率。

Description

一种电路设计的分割方法及装置
技术领域
本发明涉及集成电路设计领域,特别是指一种电路设计的分割方法及装置。
背景技术
在集成电路设计过程中,通常会涉及到较为复杂的大型电路设计,电路设计通常会需要对电路进行验证,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块;按照各模块之间的引用关系,构建模块接口层次树;对所述模块接口层次树进行遍历,得到接口数最少的分支;按照所述接口数最少的分支,对所述多个FPGA块进行时序筛选优化;可以实现对需要验证的大型电路设计的源码进行分割的情况下,筛选出时序最优划分结果,可以使FPGA芯片的时序控制更优,且提高FPGA原型验证效率。
附图说明
图1是本发明的电路设计的分割方法的流程示意图;
图2是本发明的电路设计的源码文件进行切割,得到多个FPGA块的过程示意图;
图3是本发明的电路设计的模块接口层次树的示意图;
图4是本发明的电路设计的分割装置的模块结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本发明的范围完整的传达给本领域的技术人员。
如图1所示,本发明的实施例提供一种电路设计的分割方法,包括:
步骤11,获取电路设计的源码文件;这里,电路设计的源码文件可以是寄存器传输级别的文件,对于复杂的大型电路设计,常常对电路设计划分为多个子设计,这样有利用对电路设计进行原型验证,提高原型验证效率;
步骤12,对所述源码文件进行解析,得到各源码子文件对应的模块;这里,可以利用解析器对源码文件进行解析,可以利用python语言实现的对源码文件进行文本级别的流解析,从而得到各源码子文件对应的模块,这里源码子文件可以对应于一个子设计;
步骤13,根据所述模块例化后得到的接口信息以及多个目标现场可编程逻辑门阵列FPGA所能容纳的接口数,对所述源码文件进行切割,得到多个FPGA块;这里,对模块例化后,可以得到该模块的接口信息,例如I/O接口等信息;为了使逻辑划分后的子设计,能够进行合理的FPGA原型验证,需要对源码文件按照FPGA所能容纳的接口数进行切割,得到多个FPGA块;
步骤14,按照各模块之间的引用关系,构建模块接口层次树;这里,在模块例化时,可以得到各模块之间的引用关系,从而可以根据各模块之间的引用关系,构建模块接口层次树;
步骤15,对所述模块接口层次树进行遍历,得到接口数最少的分支;
步骤16,按照所述接口数最少的分支,对所述多个FPGA块进行时序筛选优化。
本发明的上述实施例,通过获取电路设计的源码文件;对所述源码文件进行解析,得到各源码子文件对应的模块;根据所述模块例化后得到的接口信息以及多个目标现场可编程逻辑门阵列FPGA所能容纳的接口数,对所述源码文件进行切割,得到多个FPGA块;按照各模块之间的引用关系,构建模块接口层次树;对所述模块接口层次树进行遍历,得到接口数最少的分支;按照所述接口数最少的分支,对所述多个FPGA块进行时序筛选优化;可以实现对需要验证的大型电路设计的源码进行分割的情况下,筛选出时序最优划分结果,可以使FPGA芯片的时序控制更优,且提高FPGA原型验证效率。
本发明的一可选的实施例中,步骤13可以包括:
步骤131,按照各模块之间的引用关系,对模块进行例化处理,得到各模块之间的接口连接关系;
步骤132,根据各模块之间的接口连接关系以及接口接权重,按照多个目标现场可编程逻辑门阵列FPGA所能容纳的接口数,对所述源码文件进行切割,得到多个FPGA块。
该实施例中,模块例化是在一个模块中引用另一个模块,对其接口进行相关连接。模块例化建立了描述的层次,信号接口可以通过位置或名称关联,接口连接也必须遵循一些规则;
命名接口连接:将需要例化的模块接口与外部信号按照其名字进行连接,接口顺序随意,可以与引用模块的声明接口顺序不一致,只要保证接口名字与外部信号匹配即可;
顺序接口连接:这种方法将需要例化的模块接口按照模块声明时接口的顺序与外部信号进行匹配连接,位置要严格保持一致。
接口连接规则包括:
输入接口,模块例化时,从模块外部来讲,输入接口可以连接wire或reg型变量。
输出接口,模块例化时,从模块外部来讲,输出接口必须连接wire型变量。
输入输出接口,模块例化时,从模块外部来讲,输入输出接口必须连接wire型变量。
悬空接口,模块例化时,如果某些信号不需要与外部信号进行连接交互,可以将其悬空,即接口例化处保留空白即可。
输出接口正常悬空时,可以在例化时将其删除。
输入接口正常悬空时,悬空信号的逻辑功能表现为高阻状态。
本发明的一可选的实施例中,步骤132可以包括:
步骤1321,根据各模块之间的接口连接关系,形成初始连接图;
步骤1322,将各模块的接口的入度和出度总和作为该模块的接口权重,按照目标现场可编程逻辑门阵列FPGA所能容纳的接口数,遍历所述初始连接图,将满足目标FPGA的接口数的多个模块划分为一个子图;
步骤1323,按照子图对所述源码文件进行切割,得到多个FPGA块。
如图2所示,解析电路设计的RTL(寄存器传输级别)源码文件,生成所述RTL源码文件对应的接口数,确定RTL源码文件中各源码子文件对应的模块的接口入度和出度,这里接口入度为输入到该接口的第一数据传输线的条数,接口出度为以该接口为起点的第二数据传输线的条数,连接权重为与该接口连接的第一数据传输线的条数和第二数据传输线的条数总和,具体来说,可以是接口之间的连接I/O数量或者BUS总线带宽。
按照目标FPGA所能容纳的接口数,将多个接口划分为一个目标FPGA,直到遍历所有模块,且每一个目标FPGA中的模块能够使得满足电路设计原本的功能以及FPGA验证的需求,如图2所示,一种可实现的实例,将多个模块划分为FPGA1(一个子图)、FPGA2(一个子图)以及FPGA3(一个子图),当然并不限于这三个FPGA;最终可以将源码文件进行切割,得到多个FPGA块,例如FPGA1、FPGA2以及FPGA3。
需要说明的是,切割的过程具体包括:根据用户设置的限制条件以模块为单位将RTL源码对应的接口切割成的各种拆分组合,将每种拆分组合放置在多个目标FPGA中,计算每种拆分组合中,每个所述目标FPGA的接口及所述多个目标FPGA之间的连接权重,遍历循环结束以后,在满足每个所述目标FPGA的接口数能被容纳的情况下,选取接口数最少的拆分组合作为拆分的结果。
进一步地,在切割完成以后,还需要对切割后的多个PFGA进行验证,检测所述多个目标FPGA是否可以满足FPGA的接口要求,若不能满足,则需要用户重新设置切割条件,比如,增加目标FPGA的数量、调整目标FPGA的规格或者调整对一些模块的切割限制条件。
进一步地,根据拆分后的多个FPGA块生成多个可加载到所述多个目标FPGA中的FPGA源码。对每个可加载到所述目标FPGA中的FPGA源码进行综合编译,生成可运行的二进制文件。将二进制文件下载到对应的目标FPGA中进行测试。
本发明的一可选的实施例中,步骤14可以包括:
步骤141,按照预设语法对各模块之间的引用关系进行解析,得到电路设计层级树;
步骤142,将各模块进行例化后的接口数量,作为电路设计层级树中各中间层节点的关键信息,对各模块进行组合排列后,得到模块接口层次树,所述模块接口层次树的根节点为电路设计的顶层模块,叶子节点为电路设计的最小单元。
具体实现时,如图3所示,该模块接口层次树通过以下过程得到:
步骤31,按照预设语法对电路设备的源码文件进行解析,得到各模块之间的引用关系,将电路设备的顶层模块作为电路设计层级树的顶层模块,将电路设计的子设计解析为多个模块,作为电路设计层级树的中间层,将不可分解的子设计,作为电路设计层级树的叶子节点;
步骤32,对各模块进行例化后,获得各模块的接口数量;
步骤33,根据电路设计层级树的中间层的各模块的接口数量,对各模块进行组合排列,获取电路设计的模块接口层次树,所述模块接口层次树的根节点为电路设计的顶层模块,叶子节点为电路设计的最小单元;
其中,步骤33具体可以包括:
根据模块和模块之间的连接关系,形成中间层图,其中,M为模块名称,L为模块的接口数;
在所述中间层图中,从目标模块所在层开始,依次遍历中间层图/>的各层模块,计算该模块与目标模块的接口数量之和,在多个计算结果中,选择满足目标FPGA的接口数,且总接口数量最小的一组模块作为中间层图的一个分支,直到遍历完成所有模块,获取电路设计的模块接口层次树。
本发明的一可选的实施例中,步骤15可以包括:
步骤151,从所述模块接口层次树的根节点开始,依次遍历从根节点出发的各分支,按照深度搜索的方式对各分支中节点的接口数量进行求和,得到各分支的所有节点的接口数量,将接口数量最小的分支作为最优分支。
本发明的一可选的实施例中,步骤16可以包括:
步骤161,按照所述接口数最少的分支的接口总时延,对所述多个FPGA块进行时序筛选优化。
具体实现时,在满足FPGA的从输入端口到寄存器、寄存器到寄存器、从寄存器到输出以及从输入到输出的时序结束条件的情况下,在所述多个FPGA块中,选择总时延小于或者等于所述接口数最少的分支的接口总时延的FPGA块,作为最优分割结果输出。
该实施例中,从输入端口到寄存器的时序结束条件为:
输入延迟=Tco+Tpd+Tsu-Tclk,其中,Tco为外部芯片的时钟延迟,Tpd为电路板上信号延迟,Tsu为FPGA的时钟延迟,Tclk为系统时钟延迟。通常,每10 cm的线长可以按照1ns来计算,例如:系统时钟100MHz,电路板上最大延迟2 ns,时钟最大延迟为1.7 ns,Tco为3ns,FPGA的Tsu为0.2 ns。那么输入最大延迟为:2+3+0.2-1.7=3.5ns。即把FPGA的输入端口到第一级寄存器之间的路径延迟(包括门延迟和线延迟)控制在10 ns -3.5 ns=6.5ns以内。最小输入延迟可以为FPGA寄存器的Tsu参数等。
寄存器到寄存器的时序约束条件为:FPGA内寄存器到寄存器之间的路径的延迟时间必须小于时钟周期,这样能确保信号被可靠的传递。由于这种路径只存在于FPGA内部,通常通过设定时钟频率的方式就可以对其进行约束。对于更深入的优化方法,还可以采用对寄存器的输入和寄存器的输出加入适当的约束,来使逻辑综合器和布线器能够对某条路径进行特别的优化。还可以通过设定最大扇出数来迫使工具对其进行逻辑复制,减少扇出数量,提高性能。
寄存器到输出的时序约束条件为:FPGA内部从最后一级寄存器到输出端口的路径,输出的信号能够被下一级芯片正确的采到。输出延迟=Tsu+Tpd-Tclk。其中,Tsu为FPGA的时钟延迟,Tpd为电路板上信号延迟,Tclk为时钟延迟。例如:系统时钟100MHz,电路板上最大延迟2 ns,时钟最大延迟为1.7ns,Tsu为1 ns,输出延迟的值为1+2-1.7=1.3ns。即把最后一级寄存器到输出端口之间的路径延迟(包括门延迟和线延迟)控制在10 ns-1.3ns=8.7ns以内。
从输入端口到输出端口的时序约束条件为:即组合逻辑的延迟,指信号从输入到输出没有经过任何寄存器。具体地,需要虚拟一个时钟(Virtual Clock),然后通过约束来指定哪些路径是要受该虚拟时钟的约束。
例如,在各FPGA满足上述约束条件的情况下,选择总时延小于或者等于所述接口数最少的分支的接口总时延的FPGA块,作为最优分割结果输出;例如,若L111的接口数量为100,L112的接口数量为105,则L11的接口数量为205,L211的接口数量为50,L212的接口数量为60;则L21的接口数量为110;L1的接口数量为315;同样的计算方式,L3的接口数量为400,L4的接口数量为385;则L1为接口数最少的分支,在FPGA1、FPGA2以及FPGA3中,选择时延小于或者等于L1分支的总时延的目标FPGA,作为最优分割结果输出;这样可以使得整个电路设计的FPGA验证的时序控制达到时延最小且控制最优。
本发明的上述实施例,通过对源码文件解析得到各源文件模块名,例化模块I/O接口等信息,根据工程的顶层模块名利用文件模块名和例化模块信息自上而下生成接口层次树,可以辅助在多个FPGA切割划分结果中筛选出时序最优划分结果,从而使得整个电路设计的FPGA验证的时序控制达到时延最小且控制最优。
如图4所示,本发明的实施例还提供一种电路设计的分割装置40,包括:
获取模块41,用于获取电路设计的源码文件;
解析模块42,用于对所述源码文件进行解析,得到各源码子文件对应的模块;
处理模块43,用于根据所述模块例化后得到的接口信息以及多个目标现场可编程逻辑门阵列FPGA所能容纳的接口数,对所述源码文件进行切割,得到多个FPGA块;按照各模块之间的引用关系,构建模块接口层次树;对所述模块接口层次树进行遍历,得到接口数最少的分支;按照所述接口数最少的分支,对所述多个FPGA块进行时序筛选优化。
可选的,根据所述模块例化后得到的接口信息以及多个目标现场可编程逻辑门阵列FPGA所能容纳的接口数,对所述源码文件进行切割,得到多个FPGA块,包括:
按照各模块之间的引用关系,对模块进行例化处理,得到各模块之间的接口连接关系;
根据各模块之间的接口连接关系以及接口权重,按照多个目标现场可编程逻辑门阵列FPGA所能容纳的接口数,对所述源码文件进行切割,得到多个FPGA块。
可选的,根据各模块之间的接口连接关系以及接口权重,按照多个目标现场可编程逻辑门阵列FPGA所能容纳的接口数,对所述源码文件进行切割,得到多个FPGA块,包括:
根据各模块之间的接口连接关系,形成初始连接图;
将各模块的接口的入度和出度总和作为该模块的接口权重,按照目标现场可编程逻辑门阵列FPGA所能容纳的接口数,遍历所述初始连接图,将满足目标FPGA的接口数的多个模块划分为一个子图;
按照子图对所述源码文件进行切割,得到多个FPGA块。
可选的,按照各模块之间的引用关系,构建模块接口层次树,包括:
按照预设语法对各模块之间的引用关系进行解析,得到电路设计层级树;
将各模块进行例化后的接口数量,作为电路设计层级树中各中间层节点的关键信息,对各模块进行组合排列后,得到模块接口层次树,所述模块接口层次树的根节点为电路设计的顶层模块,叶子节点为电路设计的最小单元。
可选的,对所述模块接口层次树进行遍历,得到接口数最少的分支,包括:
从所述模块接口层次树的根节点开始,依次遍历从根节点出发的各分支,按照深度搜索的方式对各分支中节点的接口数量进行求和,得到各分支的所有节点的接口数量,将接口数量最小的分支作为最优分支。
可选的,按照所述接口数最少的分支,对所述多个FPGA块进行时序筛选优化,包括:
按照所述接口数最少的分支的接口总时延,对所述多个FPGA块进行时序筛选优化。
可选的,按照所述接口数最少的分支的接口总时延,对所述多个FPGA块进行时序筛选优化,包括:
在满足FPGA的从输入端口到寄存器、寄存器到寄存器、从寄存器到输出以及从输入到输出的时序结束条件的情况下,在所述多个FPGA块中,选择总时延小于或者等于所述接口数最少的分支的接口总时延的FPGA块,作为最优分割结果输出。
需要说明的是,该上述方法实施例中的实现方式同样适用于该装置的实施例中,也能达到相同的技术效果。
本发明的实施例还提供一种计算设备,包括:处理器、存储有计算机程序的存储器,所述计算机程序被处理器运行时,执行如上所述的方法。上述方法实施例中的实现方式同样适用于该实施例中,也能达到相同的技术效果。
本发明的实施例还提供一种计算机可读存储介质,存储指令,当所述指令在计算机上运行时,使得计算机执行如上所述的方法。上述方法实施例中的实现方式同样适用于该实施例中,也能达到相同的技术效果。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
此外,需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行,某些步骤可以并行或彼此独立地执行。对本领域的普通技术人员而言,能够理解本发明的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。
因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。还需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (8)

1.一种电路设计的分割方法,其特征在于,包括:
获取电路设计的源码文件;
对所述源码文件进行解析,得到各源码子文件对应的模块;
根据所述模块例化后得到的接口信息以及多个目标现场可编程逻辑门阵列FPGA所能容纳的接口数,对所述源码文件进行切割,得到多个FPGA块;
按照各模块之间的引用关系,构建模块接口层次树;
对所述模块接口层次树进行遍历,得到接口数最少的分支;
按照所述接口数最少的分支,对所述多个FPGA块进行时序筛选优化;
其中,按照所述接口数最少的分支,对所述多个FPGA块进行时序筛选优化,包括:
按照所述接口数最少的分支的接口总时延,对所述多个FPGA块进行时序筛选优化;
其中,按照所述接口数最少的分支的接口总时延,对所述多个FPGA块进行时序筛选优化,包括:
在满足FPGA的从输入端口到寄存器、寄存器到寄存器、从寄存器到输出以及从输入到输出的时序结束条件的情况下,在所述多个FPGA块中,选择总时延小于或者等于所述接口数最少的分支的接口总时延的FPGA块,作为最优分割结果输出。
2.根据权利要求1所述的电路设计的分割方法,其特征在于,根据所述模块例化后得到的接口信息以及多个目标现场可编程逻辑门阵列FPGA所能容纳的接口数,对所述源码文件进行切割,得到多个FPGA块,包括:
按照各模块之间的引用关系,对模块进行例化处理,得到各模块之间的接口连接关系;
根据各模块之间的接口连接关系以及接口权重,按照多个目标现场可编程逻辑门阵列FPGA所能容纳的接口数,对所述源码文件进行切割,得到多个FPGA块。
3.根据权利要求2所述的电路设计的分割方法,其特征在于,根据各模块之间的接口连接关系以及接口权重,按照多个目标现场可编程逻辑门阵列FPGA所能容纳的接口数,对所述源码文件进行切割,得到多个FPGA块,包括:
根据各模块之间的接口连接关系,形成初始连接图;
将各模块的接口的入度和出度总和作为该模块的接口权重,按照目标现场可编程逻辑门阵列FPGA所能容纳的接口数,遍历所述初始连接图,将满足目标FPGA的接口数的多个模块划分为一个子图;
按照子图对所述源码文件进行切割,得到多个FPGA块。
4.根据权利要求1所述的电路设计的分割方法,其特征在于,按照各模块之间的引用关系,构建模块接口层次树,包括:
按照预设语法对各模块之间的引用关系进行解析,得到电路设计层级树;
将各模块进行例化后的接口数量,作为电路设计层级树中各中间层节点的关键信息,对各模块进行组合排列后,得到模块接口层次树,所述模块接口层次树的根节点为电路设计的顶层模块,叶子节点为电路设计的最小单元。
5.根据权利要求4所述的电路设计的分割方法,其特征在于,对所述模块接口层次树进行遍历,得到接口数最少的分支,包括:
从所述模块接口层次树的根节点开始,依次遍历从根节点出发的各分支,按照深度搜索的方式对各分支中节点的接口数量进行求和,得到各分支的所有节点的接口数量,将接口数量最小的分支作为最优分支。
6.一种电路设计的分割装置,其特征在于,包括:
获取模块,用于获取电路设计的源码文件;
解析模块,用于对所述源码文件进行解析,得到各源码子文件对应的模块;
处理模块,用于根据所述模块例化后得到的接口信息以及多个目标现场可编程逻辑门阵列FPGA所能容纳的接口数,对所述源码文件进行切割,得到多个FPGA块;按照各模块之间的引用关系,构建模块接口层次树;对所述模块接口层次树进行遍历,得到接口数最少的分支;按照所述接口数最少的分支,对所述多个FPGA块进行时序筛选优化;其中,按照所述接口数最少的分支,对所述多个FPGA块进行时序筛选优化,包括:按照所述接口数最少的分支的接口总时延,对所述多个FPGA块进行时序筛选优化;其中,按照所述接口数最少的分支的接口总时延,对所述多个FPGA块进行时序筛选优化,包括:在满足FPGA的从输入端口到寄存器、寄存器到寄存器、从寄存器到输出以及从输入到输出的时序结束条件的情况下,在所述多个FPGA块中,选择总时延小于或者等于所述接口数最少的分支的接口总时延的FPGA块,作为最优分割结果输出。
7.一种计算设备,其特征在于,包括:处理器、存储有计算机程序的存储器,所述计算机程序被处理器运行时,执行如权利要求1至5任一项所述的方法。
8.一种计算机可读存储介质,其特征在于,存储指令,当所述指令在计算机上运行时,使得计算机执行如权利要求1至5任一项所述的方法。
CN202310729117.2A 2023-06-20 2023-06-20 一种电路设计的分割方法及装置 Active CN116451624B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310729117.2A CN116451624B (zh) 2023-06-20 2023-06-20 一种电路设计的分割方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310729117.2A CN116451624B (zh) 2023-06-20 2023-06-20 一种电路设计的分割方法及装置

Publications (2)

Publication Number Publication Date
CN116451624A CN116451624A (zh) 2023-07-18
CN116451624B true CN116451624B (zh) 2023-09-29

Family

ID=87135978

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310729117.2A Active CN116451624B (zh) 2023-06-20 2023-06-20 一种电路设计的分割方法及装置

Country Status (1)

Country Link
CN (1) CN116451624B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116796670B (zh) * 2023-08-29 2023-11-21 北京汤谷软件技术有限公司 一种基于大数据的开发板数据分析管理系统及方法
CN117272892B (zh) * 2023-11-21 2024-03-26 芯瞳半导体技术(山东)有限公司 电路验证方法、装置、存储介质及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112084735A (zh) * 2020-09-03 2020-12-15 国微集团(深圳)有限公司 一种基于rtl源码的fpga切割方法及系统
CN112257369A (zh) * 2020-12-21 2021-01-22 上海国微思尔芯技术股份有限公司 一种逻辑设计分割方法及系统
CN113255264A (zh) * 2021-06-07 2021-08-13 上海国微思尔芯技术股份有限公司 增量分割处理方法、装置、计算机设备和存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8949752B2 (en) * 2012-12-01 2015-02-03 Synopsys, Inc. System and method of emulating multiple custom prototype boards

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112084735A (zh) * 2020-09-03 2020-12-15 国微集团(深圳)有限公司 一种基于rtl源码的fpga切割方法及系统
CN112257369A (zh) * 2020-12-21 2021-01-22 上海国微思尔芯技术股份有限公司 一种逻辑设计分割方法及系统
CN113255264A (zh) * 2021-06-07 2021-08-13 上海国微思尔芯技术股份有限公司 增量分割处理方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN116451624A (zh) 2023-07-18

Similar Documents

Publication Publication Date Title
CN116451624B (zh) 一种电路设计的分割方法及装置
Yang et al. Balanced partitioning
US6782511B1 (en) Behavioral-synthesis electronic design automation tool business-to-business application service provider
US8918748B1 (en) M/A for performing automatic latency optimization on system designs for implementation on programmable hardware
US10114917B1 (en) Systems and methods for mapping executable models to programmable logic device resources
US10423733B1 (en) Systems and methods for sharing resources having different data types
CN114742001A (zh) 一种基于多fpga的系统静态时序分析方法
CN116911227B (zh) 一种基于硬件的逻辑映射方法、装置、设备及存储介质
WO2000072185A2 (en) Behavioral-synthesis electronic design automation tool and business-to-business application service provider
Börger Architecture design and validation methods
CN116457789A (zh) 针对异构集成电路的基于模型的设计和分割
Morin-Allory et al. Efficient and correct by construction assertion-based synthesis
Coward et al. Datapath verification via word-level e-graph rewriting
Logaras et al. Python facilitates the rapid prototyping and hw/sw verification of processor centric SoCs for FPGAs
Wu et al. SCCL: An open-source SystemC to RTL translator
Holeček et al. Verification results in Liberouter project
US11727178B2 (en) Under test pin location driven simultaneous signal grouping and pin assignment
Costamagna et al. The Combinational-Complexity Game For Symmetric Functions
CN117077603B (zh) 一种验证方法、芯片、系统、电子设备及可读存储介质
CN118113660B (zh) Fpga延时优化方法、装置、设备、存储介质及程序产品
Amerikanov et al. Automation of NoC throughput search in high-level modeling
CN117113908B (zh) 一种验证方法、装置、电子设备及可读存储介质
Zapletina et al. Boolean Satisfiability Methods for Modern Computer-Aided Design Problems in Microelectronics
CN109740249B (zh) 一种mux树逻辑结构优化方法、模块及存储介质
Obrizan et al. Multiversion parallel synthesis of digital structures based on SystemC specification

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