CN116911227B - 一种基于硬件的逻辑映射方法、装置、设备及存储介质 - Google Patents

一种基于硬件的逻辑映射方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116911227B
CN116911227B CN202311139513.6A CN202311139513A CN116911227B CN 116911227 B CN116911227 B CN 116911227B CN 202311139513 A CN202311139513 A CN 202311139513A CN 116911227 B CN116911227 B CN 116911227B
Authority
CN
China
Prior art keywords
node
division result
division
output
combination
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
CN202311139513.6A
Other languages
English (en)
Other versions
CN116911227A (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.)
Suzhou Yige Technology Co ltd
Original Assignee
Suzhou Yige 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 Suzhou Yige Technology Co ltd filed Critical Suzhou Yige Technology Co ltd
Priority to CN202311139513.6A priority Critical patent/CN116911227B/zh
Publication of CN116911227A publication Critical patent/CN116911227A/zh
Application granted granted Critical
Publication of CN116911227B publication Critical patent/CN116911227B/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/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/347Physical level, e.g. placement or routing
    • 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]
    • G06F30/343Logical level
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明涉及集成电路技术领域,公开了一种基于硬件的逻辑映射方法、装置、设备及存储介质,方法包括:获取集成电路的硬件结构及硬件结构对应的门级网表;将硬件结构抽象为对应的基本数据类型,生成组合判断条件;对门级网表中的每个节点进行划分,获得每个节点对应的多个划分结果;分别获取每个划分结果的评价属性后,将每个节点中预设数目的符合合并条件的划分结果合并为对应节点的划分结果集合;将门级网表中符合组合判断条件的划分结果集合映射为一个多输出查找表电路。本发明通过在划分阶段找到对应多输出LUT的划分,将门级网表直接映射为多输出LUT,在整体的划分上更贴合网表的实际布局情况,提高整体性能,更利于后期的布局布线工作。

Description

一种基于硬件的逻辑映射方法、装置、设备及存储介质
技术领域
本发明涉及集成电路技术领域,具体涉及一种基于硬件的逻辑映射方法、装置、设备及存储介质。
背景技术
可编程门阵列(Field-Programmable Gate Array,FPGA)逻辑映射是将逻辑综合后得到的门级网表转化为适用于硬件的网表的过程,其中极为重要的一种映射关系是将一系列逻辑门映射为FPGA硬件中的查找表电路(Look-Up Table,LUT)。为了充分利用硬件资源,现有的一些方法通过分步映射,首先将门级网表映射为单输出LUT,之后通过一些判断条件将单输出LUT合并成为多输出LUT。这种分步映射的方案往往难以判断合并的合理性,因为每一次合并都可能会给后续的布局布线带来极大的影响,过度的合并可能造成后端布局布线难以通过或者时序不理想的情况。另一方面,将门级网表直接映射成为多输出LUT给算法本身提出了极大的挑战,目前鲜有这类方法,且效果往往并不理想。
发明内容
因此,本发明要解决的技术问题在于克服现有技术中将门级网表直接映射为多输出LUT难度较大的问题,从而提供一种基于硬件的逻辑映射方法、装置、设备及存储介质。
为达到上述目的,本发明提供如下技术方案:
第一方面,本发明提供一种基于硬件的逻辑映射方法,包括:获取集成电路的硬件结构及硬件结构对应的门级网表;将硬件结构抽象为对应的基本数据类型,生成组合判断条件;对门级网表中的每个节点进行划分,获得每个节点对应的多个划分结果;分别获取每个划分结果的评价属性后,将每个节点中预设数目的符合合并条件的划分结果合并为对应节点的划分结果集合;将门级网表中符合组合判断条件的划分结果集合映射为一个多输出查找表电路。
本发明提供的基于硬件的逻辑映射方法,直接在划分阶段找到对应多输出LUT的划分,而非通过划分好的单输出LUT进行匹配生成多输出LUT,能最大程度上发挥现有算法的优越性能,减少算法的复杂程度;在整体的划分上更加贴合网表的实际布局情况,更有利于后期的布局布线工作,极大程度上减少了硬件上的LUT使用量,提高了整体性能,极大程度上方便后续算法的处理,减少硬件资源消耗。
在一种可选的实施方式中,将硬件结构抽象为对应的基本数据类型,生成组合判断条件的过程,包括:确认硬件结构中的单输出查找表电路的输入端口及输出端口总数;分析所有输出端口组合可能性,生成组合判断条件。
本发明提供的基于硬件的逻辑映射方法,提供了一种用于抽象的通用方法,可用于任意多输入多输出LUT,根据硬件结构抽象为基本数据类型,能够更方便的列举每种组合的情况及可能性,为后续的组合提供组合判断条件。
在一种可选的实施方式中,分析所有输出端口组合可能性,生成组合判断条件的过程,包括:列举所有输出端口可能的组合;针对每种输出端口的组合,穷举全部单输出查找表电路可能的组合并去重后,生成组合判断条件。
本发明提供的基于硬件的逻辑映射方法,去除了相同的组合以及对包含关系的组合进行去重,极大程度上方便后续算法的处理,帮助减少硬件资源消耗。
在一种可选的实施方式中,分别获取每个划分结果的评价属性的过程,包括:根据拓扑序遍历每个划分结果,获取每个划分结果的时延及需求时间;根据每个划分结果的迭代属性及输出端口计算获得代价属性后,将时延、需求时间、代价属性及输出端口共同作为每个划分结果的评价属性。
本发明提供的基于硬件的逻辑映射方法,通过逆拓扑序将所设计的窗口范围内的多个节点的划分结果进行枚举合并,直接生成多输出的划分结果,对划分结果集合中的划分结果均进行匹配可以极大程度上提高解空间的范围更容易得到更优解。
在一种可选的实施方式中,获取每个划分结果的时延的过程,包括:将门级网表中顶层节点的时延设置为初始时延值;按照拓扑序查找每个子节点的全部父节点,将具有最大时延值的父节点的时延值作为该子节点的初始时延值;按照预设步长对初始时延值进行调节后,将调节后的初始时延值作为该子节点的时延值。
本发明提供的基于硬件的逻辑映射方法,通过考虑时延与需求时间,保证了匹配后的时延不受到影响,同时也尽可能大的保证的匹配数量。此外以时延与需求时间所设计的窗口也保证了网表上的距离在可控范围内,减少对后续布局布线带来的影响。
在一种可选的实施方式中,将门级网表中符合组合判断条件的划分结果集合映射为一个多输出查找表电路的过程,包括:逆拓扑序遍历门级网表中每个节点的全部划分结果集合;将每个划分结果集合中具有相同组合判断条件的划分结果组合生成多输出的划分结果,并更新划分结果集合;将更新后的划分结果集合映射为一个多输出查找表电路。
本发明提供的基于硬件的逻辑映射方法,对划分结果集合中的划分结果均进行匹配可以极大程度上提高解空间的范围更容易得到更优解,大大减轻后续布局布线的负担。
在一种可选的实施方式中,将更新后的划分结果集合映射为一个多输出查找表电路的过程,包括:逆拓扑序根据划分结果集合对门级网表进行划分后,判断是否满足迭代需求;若满足,则将更新后的划分结果集合映射为一个多输出查找表电路;若不满足,则返回将每个划分结果集合中具有相同组合判断条件的划分结果组合生成多输出的划分结果,并更新划分结果集合的步骤。
本发明提供的基于硬件的逻辑映射方法,通过迭代机制,在保证更高效的同时也能更好地保证映射结果的质量。
第二方面,本发明提供一种基于硬件的逻辑映射装置,包括:获取模块,用于获取集成电路的硬件结构及硬件结构对应的门级网表;抽象模块,用于将硬件结构抽象为对应的基本数据类型,生成组合判断条件;划分模块,用于对门级网表中的每个节点进行划分,获得每个节点对应的多个划分结果;匹配组合模块,用于分别获取每个划分结果的评价属性后,将每个节点中预设数目的符合合并条件的划分结果合并为对应节点的划分结果集合;映射模块,用于将门级网表中符合组合判断条件的划分结果集合映射为一个多输出查找表电路。
第三方面,本发明提供一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的基于硬件的逻辑映射方法。
第四方面,本发明提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的基于硬件的逻辑映射方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的一个基于硬件的逻辑映射方法的流程示意图;
图2是根据本发明实施例的另一基于硬件的逻辑映射方法的流程示意图;
图3是根据本发明实施例的LUT的硬件一个具体电路结构图;
图4是根据本发明实施例的另一基于硬件的逻辑映射方法的流程示意图;
图5是根据本发明实施例的另一基于硬件的逻辑映射方法的流程示意图;
图6是根据本发明实施例的CUT的生成的流程示意图;
图7是根据本发明实施例的另一基于硬件的逻辑映射方法的流程示意图;
图8是根据本发明实施例的另一基于硬件的逻辑映射方法的流程示意图;
图9是根据本发明实施例的另一基于硬件的逻辑映射方法的流程示意图;
图10是根据本发明实施例的另一基于硬件的逻辑映射方法的流程示意图;
图11~图12是根据本发明实施例的多输出CUT的生成的流程示意图;
图13是根据本发明实施例的基于硬件的逻辑映射装置的结构框图;
图14是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
本实施例提供一种基于硬件的逻辑映射方法,如图1所示,包括:
步骤S1:获取集成电路的硬件结构及硬件结构对应的门级网表。
具体地,针对一款硬件设计完备的FPGA芯片,获取其硬件结构及门级网表。
步骤S2:将硬件结构抽象为对应的基本数据类型,生成组合判断条件。
具体地,抽象出硬件结构内LUT的数据接口,并对LUT的组合可能性进行分析,筛选出合适的组合情况作为后续算法的判断条件。
步骤S3:对门级网表中的每个节点进行划分,获得每个节点对应的多个划分结果CUT。
具体地,按照拓扑序遍历门级网表中的全部节点,并将枚举每个节点的划分结果。
步骤S4:分别获取每个划分结果的评价属性后,将每个节点中预设数目的符合合并条件的划分结果合并为对应节点的划分结果集合。
具体地,针对每一个CUT都可以通过一套评价体系获得其评价属性,在获得CUT基础属性后直接进行判断,仅将预设数目的、并且符合合并条件的CUT纳入到CUT集合中,之后进入计算环节。
示例性地,将一个节点的中的全部CUT进行排序后,将前8个CUT判断为符合合并条件的CUT,纳入该节点的CUT集合中。
步骤S5:将门级网表中符合组合判断条件的划分结果集合映射为一个多输出查找表电路。
具体地,将门级网表中每一个CUT看作一个单输出的LUT,找到一个或多个用于作为划分的根节点,选择根节点在评价体系下的一个最优CUT集合后,完成对门级网表的划分,即完成将门级网表直接映射成为多输出LUT的步骤。
本发明提供的基于硬件的逻辑映射方法,直接在划分阶段找到对应多输出LUT的划分,而非通过划分好的单输出LUT进行匹配生成多输出LUT,能最大程度上发挥现有算法的优越性能,减少算法的复杂程度;在整体的划分上更加贴合网表的实际布局情况,更有利于后期的布局布线工作,极大程度上减少了硬件上的LUT使用量,提高了整体性能,极大程度上方便后续算法的处理,减少硬件资源消耗。
在一些可选的实施方式中,如图2所示,将硬件结构抽象为对应的基本数据类型,生成组合判断条件的过程,包括:
步骤S21:确认硬件结构中的单输出查找表电路的输入端口及输出端口总数。
步骤S22:分析所有输出端口组合可能性,生成组合判断条件。
示例性地,针对于一种LUT的硬件设计往往能将其抽象出多个逻辑功能,如图3所示,其一共有I0~I5六个输入端口以及O6和O5两个输出端口。首先针对于单输出类型,LUT6_2能表示任意一种六输入以内(即输入个数小于等于6)的任意布尔逻辑,即LUT1~LUT6。
示例性地,如图3所示,若将O6和O5同时作为输出端口使用,可以将满足以下条件的两个LUT放在同一个如图3所示的硬件结构中:
条件1:两个LUT的总独立引脚数量之和不超过6。
条件2:两个LUT的输入引脚数目都小于等于5或者其中一个LUT的输入引脚个数等于6另一个LUT的引脚数小于等于5且其真值表被LUT6在高32位或低32位完全包含。
示例性地,如图3所示,当使用其中一个输出端口,即O6或O5时,可以实现任意LUT1~LUT6的逻辑;当同时使用两个端口时,从输入数量方面分析其可能的组合情况后,从其内部总逻辑资源方面分析各个情况的可能性。首先,针对所使用的输出引脚获得输入组合情况后,对内部资源进行排列组合探索余下的可能性。
示例性地,如图3所示,例如上述条件2中,所描述的其中一个LUT的输入引脚个数等于6另一个LUT的引脚数小于等于5且其真值表被LUT6在高32位或低32位完全包含的可能性,该可能性就是首先将其内部资源完全使用,实现一个LUT6的逻辑功能,输出端口为O6后,还剩下O5端口,则只能使用图3中位于下端的LUT5资源,因此能实现一个LUT5(即输入端口数小于等于5输出端口数为1的LUT)的逻辑,但因实现LUT6的时候需要用到两个LUT5的逻辑资源,因此从O5端口输出的LUT5的逻辑资源必须被包含于LUT6之中。
在一些可选的实施方式中,如图4所示,分析所有输出端口组合可能性,生成组合判断条件的过程,包括:
步骤S221:列举所有输出端口可能的组合。
步骤S222:针对每种输出端口的组合,穷举全部单输出查找表电路可能的组合并去重后,生成组合判断条件。
示例性地,如图3所示,当输出端口为1、2时,所有可能的输出端口组合情况为:1、2、12,共3种情况;再针对所有组合情况结合端口所对应的硬件结构进行分析,穷举出所有的可能性后,去除所有的可能性中包含关系。例如当一个硬件结构可以支持任意两个LUT3合并到一起,另一个硬件结构可以支持任意两个LUT4合并到一起,该情况包含了任意两个LUT3进行合并的情况,因此可以直接抽象成为任意两个LUT4(即输入小于等于4)合并的情况。
在一些可选的实施方式中,如图5所示,分别获取每个划分结果的评价属性的过程,包括:
步骤S41:根据拓扑序遍历每个划分结果,获取每个划分结果的时延及需求时间。
具体地,通过获取每个划分结果的时延及需求时间,可以对每个划分结果进行分类,保证最终所选择出的组合不会对门级网表的最大延时造成破坏,在减少了硬件资源的同时不会影响整体的性能。
步骤S42:根据每个划分结果的迭代属性及输出端口计算获得代价属性后,将时延、需求时间、代价属性及输出端口共同作为每个划分结果的评价属性。
示例性地,如图6所示,在一个仅包含基本组合逻辑的门级网表中,以任意一个节点为根节点迭代遍历其所有的父节点,直至遍历到最顶层的父节点,都能得到一个类似图6所示以一个节点为根节点的子图。对于一个根节点的一个CUT即对于该根节点所对应的子图的一个划分。如图6所示,节点1为根节点,CUT1和CUT2均为对图6所示子图的一个划分。
具体地,CUT多级评价属性为一个多维向量,该向量的维度以及每个维度所代表的意义(即组成以及比较方式,如更大更优或者更小更优)与优先级需要在每一次迭代过程中结合所考虑的基础属性以及所设计的评价函数唯一确定。
示例性地,在一次迭代过程中希望以时延delay为最高优先级,区域area作为次优先级,CUT对应根节点的输出fanout作为第三优先级,那么对于每一个CUT我们将得到一个[delay, area, fanout]的向量作为评价属性。如果存在一个评价属性为[delay0, area0,fanout0]的CUT0,优于另一个评价属性[delay1, area1, fanout1]的CUT1,则delay0<delay1,或者delay0 = delay1,area0<area1,或者delay0 = delay1,area0 = area1,fanout0>fanout1。此外,多个属性的合并计算往往能更好的提高逻辑映射的性能,例如将area与fanout属性通过计算环节的评价函数计算得到新的cost属性,之后用cost属性替换评价属性中的area的位置,得到新的评价属性[delay, cost, fanout]。
具体地,对于cost属性的计算方法为:
(1)
其中,i表示该CUT的输入节点编号从0到k,该CUT有k+1个输入节点;area为区域属性;A用来表示该CUT本身的面积,一般定义为1;α为根据算法性能的自定义参数;estFanout即为迭代属性,其计算方式为:
(2)
其中iter表示迭代轮数,即本轮的estFanout属性需要通过上一轮的estFanout获得。
在一些可选的实施方式中,如图7所示,获取每个划分结果的时延的过程,包括:
步骤S411:将门级网表中顶层节点的时延设置为初始时延值。
步骤S412:按照拓扑序查找每个子节点的全部父节点,将具有最大时延值的父节点的时延值作为该子节点的初始时延值。
步骤S413:按照预设步长对初始时延值进行调节后,将调节后的初始时延值作为该子节点的时延值。
示例性地,如图8所示,时延delay的计算方法为:首先将所有最顶层节点(即没有父节点)的delay设为0后,按照拓扑序将每个节点的子节点的delay设置为其最大父节点的delay值加1。例如节点5的父节点2和3的delay分别为0和1,则节点5的delay为最大父节点3的delay加1,即节点5的delay为2。
示例性地,如图8所示,需求时间require time的计算方法为:按照上述步骤S421~S423遍历完所有节点后可以得到最大的delay,将其作为每一个最底层节点(即点没有子节点的节点)的require time的初始值后,按照逆拓扑序将每一个节点的require time设置为其最小子节点的require time值减1。例如节点1的子节点3和4的require time分别为1和2,则节点1的require time为最小子节点3的require time减1,即节点1的require time为0。
在一些可选的实施方式中,如图9所示,将门级网表中符合组合判断条件的划分结果集合映射为一个多输出查找表电路的过程,包括:
步骤S51:逆拓扑序遍历门级网表中每个节点的全部划分结果集合。
步骤S52:将每个划分结果集合中具有相同组合判断条件的划分结果组合生成多输出的划分结果,并更新划分结果集合。
步骤S53:将更新后的划分结果集合映射为一个多输出查找表电路。
示例性地,逆拓扑序遍历每个节点,此时每个节点都有其对应的CUT集合,且集合中的CUT都仅有该节点作为根节点,可以将每一个CUT看作一个单输出的LUT。由于根节点的组合情况以及每个根节点所对应的CUT数量较大,为了减少时间消耗通过窗口的方法限制节点匹配的搜索范围,将每一个节点中满足delay、require time等条件相同并且满足窗口范围的CUT组合为多输出CUT,并更新CUT集合。按照更新后的CUT集合映射为多输出LUT,实现将门级网表单次映射为含有多输出LUT的基本数据类型。
在一些可选的实施方式中,如图10所示,将更新后的划分结果集合映射为一个多输出查找表电路的过程,包括:
步骤S531:逆拓扑序根据划分结果集合对门级网表进行划分后,判断是否满足迭代需求。
步骤S532:若满足,则将更新后的划分结果集合映射为一个多输出查找表电路。
步骤S533:若不满足,则返回将每个划分结果集合中具有相同组合判断条件的划分结果组合生成多输出的划分结果,并更新划分结果集合的步骤。
具体地,针对于每个节点的CUT开始对整个网表进行划分,划分完成后进入判断环节,如果划分满足迭代需求(即迭代达到一定次数或划分质量达到要求),则可将划分映射为抽象出的基本数据类型;如果划分不满足迭代需求则再次进入步骤S52,更新CUT集合(即更新原有的多输出CUT的属性以及增加或删除多输出CUT)。
示例性地,area属性用于预测映射所需要的primitive总数,其计算方法为:
(3)
其中i表示该CUT的输入节点编号从0到k,该CUT有k+1个输入节点;A用来表示该CUT本身的面积,一般定义为1。area与cost的本质含义相同,区别在于cost通过新的评价函数对映射所需要的primitive进行了预测。与此类似,estFanout属性与fanout属性也是对于CUT映射后真实fanout的预测,只是评价函数不同。初轮迭代过程由于没有上轮迭代的属性,因此只能得到全局属性与局部属性,从第二轮开始便可通过第一轮的全局属性与局部属性通过一系列评价函数计算得到迭代属性,之后的迭代轮次中便可使用。
示例性地,多输出CUT的生成以图11和图12举例。图11中节点1和节点3分别有一个CUT为CUT1和CUT2,在逆拓扑序遍历的过程中可以考虑将节点1的CUT与节点3的CUT合并生成为一个同时以节点1与节点3为根节点的CUT,如图12所示,新生成的CUT为CUT3。原本的CUT1的根节点为节点1,输入节点为节点7、节点8、节点9、节点0;CUT2的根节点为节点3,输入节点为节点9、节点0。两个CUT需要用两个LUT映射。生成CUT3后,根节点为节点1和节点3,输入节点为节点7、节点8、节点9、节点0,该CUT可以仅用一个图3中的LUT完成映射。由于将两个CUT进行了合并,其cost的计算方式不变,依旧通过其输入节点的相关属性利用公式(1)的cost计算方法获得,但是当节点1与节点3作为其他节点的CUT的输入节点时其fanout与estFanout均为节点1和节点3的fanout与estFanout之和。
需要说明的是,本实施例在寻找CUT匹配的时候通过delay与require time设计了窗口。在逆拓扑序下满足delay相同且require time等于delay的CUT才考虑其合并的可能性,所以不会存在映射后有LUT输出悬空的可能,从而保证每次CUT的生成均不会破坏逆拓扑序。
在本实施例中还提供了一种基于硬件的逻辑映射装置,该装置用于实现上述实施例及任一可选的实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种基于硬件的逻辑映射装置,如图13所示,包括:
获取模块1301,用于获取集成电路的硬件结构及硬件结构对应的门级网表。
抽象模块1302,用于将硬件结构抽象为对应的基本数据类型,生成组合判断条件。
划分模块1303,用于对门级网表中的每个节点进行划分,获得每个节点对应的多个划分结果。
匹配组合模块1304,用于分别获取每个划分结果的评价属性后,将每个节点中预设数目的符合合并条件的划分结果合并为对应节点的划分结果集合。
映射模块1305,用于将门级网表中符合组合判断条件的划分结果集合映射为一个多输出查找表电路。
本实施例中的基于硬件的逻辑映射装置是以功能单元的形式来呈现,这里的单元是指ASIC电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本发明实施例还提供一种计算机设备,具有上述图13所示的基于硬件的逻辑映射装置。
请参阅图14,图14是本发明可选实施例提供的一种计算机设备的结构示意图,如图14所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图14中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,存储器20存储有可由至少一个处理器10执行的指令,以使至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据一种小程序落地页的展现的计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (7)

1.一种基于硬件的逻辑映射方法,其特征在于,包括:
获取集成电路的硬件结构及硬件结构对应的门级网表;
将所述硬件结构抽象为对应的基本数据类型,生成组合判断条件;
所述将所述硬件结构抽象为对应的基本数据类型,生成组合判断条件的过程,包括:
确认所述硬件结构中的单输出查找表电路的输入端口及输出端口总数;
分析所有所述输出端口组合可能性,生成组合判断条件;
所述分析所有所述输出端口组合可能性,生成组合判断条件的过程,包括:
列举所有输出端口可能的组合;
针对每种输出端口的组合,穷举全部单输出查找表电路可能的组合并去重后,生成组合判断条件;
对所述门级网表中的每个节点进行划分,获得每个节点对应的多个划分结果;
分别获取每个划分结果的评价属性后,将每个节点中预设数目的符合合并条件的所述划分结果合并为对应节点的划分结果集合;
所述分别获取每个划分结果的评价属性的过程,包括:
根据拓扑序遍历每个所述划分结果,获取每个所述划分结果的时延及需求时间;
根据每个所述划分结果的迭代属性及输出端口计算获得代价属性后,将所述时延、需求时间、代价属性及输出端口共同作为每个所述划分结果的评价属性;
将所述门级网表中符合组合判断条件的划分结果集合映射为一个多输出查找表电路。
2.根据权利要求1所述的方法,其特征在于,所述获取每个所述划分结果的时延的过程,包括:
将所述门级网表中顶层节点的时延设置为初始时延值;
按照拓扑序查找每个子节点的全部父节点,将具有最大时延值的父节点的时延值作为该子节点的初始时延值;
按照预设步长对初始时延值进行调节后,将调节后的初始时延值作为该子节点的时延值。
3.根据权利要求1所述的方法,其特征在于,所述将所述门级网表中符合组合判断条件的划分结果集合映射为一个多输出查找表电路的过程,包括:
逆拓扑序遍历所述门级网表中每个所述节点的全部划分结果集合;
将每个划分结果集合中具有相同组合判断条件的划分结果组合生成多输出的划分结果,并更新划分结果集合;
将更新后的划分结果集合映射为一个多输出查找表电路。
4.根据权利要求3所述的方法,其特征在于,所述将更新后的划分结果集合映射为一个多输出查找表电路的过程,包括:
逆拓扑序根据划分结果集合对所述门级网表进行划分后,判断是否满足迭代需求;
若满足,则将更新后的划分结果集合映射为一个多输出查找表电路;
若不满足,则返回所述将每个划分结果集合中具有相同组合判断条件的划分结果组合生成多输出的划分结果,并更新划分结果集合的步骤。
5.一种基于硬件的逻辑映射装置,其特征在于,包括:
获取模块,用于获取集成电路的硬件结构及硬件结构对应的门级网表;
抽象模块,用于将所述硬件结构抽象为对应的基本数据类型,生成组合判断条件,通过确认所述硬件结构中的单输出查找表电路的输入端口及输出端口总数,列举所有输出端口可能的组合,针对每种输出端口的组合,穷举全部单输出查找表电路可能的组合并去重后,生成组合判断条件;
划分模块,用于对所述门级网表中的每个节点进行划分,获得每个节点对应的多个划分结果;
匹配组合模块,用于分别获取每个划分结果的评价属性后,将每个节点中预设数目的符合合并条件的所述划分结果合并为对应节点的划分结果集合,根据拓扑序遍历每个所述划分结果,获取每个所述划分结果的时延及需求时间;根据每个所述划分结果的迭代属性及输出端口计算获得代价属性后,将所述时延、需求时间、代价属性及输出端口共同作为每个所述划分结果的评价属性;
映射模块,用于将所述门级网表中符合组合判断条件的划分结果集合映射为一个多输出查找表电路。
6.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至4中任一项所述的基于硬件的逻辑映射方法。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至4中任一项所述的基于硬件的逻辑映射方法。
CN202311139513.6A 2023-09-05 2023-09-05 一种基于硬件的逻辑映射方法、装置、设备及存储介质 Active CN116911227B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311139513.6A CN116911227B (zh) 2023-09-05 2023-09-05 一种基于硬件的逻辑映射方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311139513.6A CN116911227B (zh) 2023-09-05 2023-09-05 一种基于硬件的逻辑映射方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN116911227A CN116911227A (zh) 2023-10-20
CN116911227B true CN116911227B (zh) 2023-12-05

Family

ID=88351351

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311139513.6A Active CN116911227B (zh) 2023-09-05 2023-09-05 一种基于硬件的逻辑映射方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116911227B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117217147A (zh) * 2023-09-21 2023-12-12 苏州异格技术有限公司 一种用于fpga的逻辑映射方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105488237A (zh) * 2014-09-19 2016-04-13 京微雅格(北京)科技有限公司 基于fpga的寄存器使能信号优化方法
CN106528920A (zh) * 2016-09-27 2017-03-22 北京深维科技有限公司 一种级联查找表的工艺映射方法
CN115984633A (zh) * 2023-03-20 2023-04-18 南昌大学 门级电路组件识别方法、系统、存储介质及设备
CN116401719A (zh) * 2023-04-13 2023-07-07 西安电子科技大学 基于机器学习的门级网表中硬件木马定位方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105488237A (zh) * 2014-09-19 2016-04-13 京微雅格(北京)科技有限公司 基于fpga的寄存器使能信号优化方法
CN106528920A (zh) * 2016-09-27 2017-03-22 北京深维科技有限公司 一种级联查找表的工艺映射方法
CN115984633A (zh) * 2023-03-20 2023-04-18 南昌大学 门级电路组件识别方法、系统、存储介质及设备
CN116401719A (zh) * 2023-04-13 2023-07-07 西安电子科技大学 基于机器学习的门级网表中硬件木马定位方法

Also Published As

Publication number Publication date
CN116911227A (zh) 2023-10-20

Similar Documents

Publication Publication Date Title
Rabaey et al. Fast prototyping of datapath-intensive architectures
US7124071B2 (en) Partitioning a model into a plurality of independent partitions to be processed within a distributed environment
CN116911227B (zh) 一种基于硬件的逻辑映射方法、装置、设备及存储介质
CN114742001A (zh) 一种基于多fpga的系统静态时序分析方法
CN116894413B (zh) 一种基于硬件的逻辑映射方法、装置、设备及存储介质
CN111046624B (zh) 芯片模块接口时钟结构的构建方法、装置、设备及介质
US20100005203A1 (en) Method of Merging and Incremantal Construction of Minimal Finite State Machines
EP1248989A2 (en) Behavioral-synthesis electronic design automation tool and business-to-business application service provider
US7984415B1 (en) Merging of equivalent logic blocks in a circuit design
US20130173245A1 (en) Determining large-scale finite state machines using constraint relaxation
US20060041852A1 (en) Targeted optimization of buffer-tree logic
CN117350204A (zh) 目标网表的生成方法、装置、计算机设备及可读存储介质
US6253356B1 (en) System and method for improving logic synthesis in logic circuits
CN115204076B (zh) 集成电路的逻辑优化方法、装置、电子设备及可读介质
US9892227B1 (en) Systems, methods and storage media for clock tree power estimation at register transfer level
US20220261523A1 (en) Behavioral-level timing and area optimiation
CN114330173A (zh) 边界节点连接关系获取方法、装置、设备和存储介质
US10872185B1 (en) Systems and methods for estimating wire capacitance in a register-transfer level circuit design
Jun et al. Topology synthesis of cascaded crossbar switches
US8661381B1 (en) Method and apparatus for performing optimization using Don&#39;t Care states
US7685541B1 (en) Translation of high-level circuit design blocks into hardware description language
US7509618B1 (en) Method and apparatus for facilitating an adaptive electronic design automation tool
US8050904B2 (en) System and method for circuit symbolic timing analysis of circuit designs
CN115705446A (zh) 集成电路的后仿真方法和装置
US7191412B1 (en) Method and apparatus for processing a circuit description for logic simulation

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