CN104809302B - Rtl电路综合中的资源共享方法及其系统 - Google Patents
Rtl电路综合中的资源共享方法及其系统 Download PDFInfo
- Publication number
- CN104809302B CN104809302B CN201510231066.6A CN201510231066A CN104809302B CN 104809302 B CN104809302 B CN 104809302B CN 201510231066 A CN201510231066 A CN 201510231066A CN 104809302 B CN104809302 B CN 104809302B
- Authority
- CN
- China
- Prior art keywords
- combinational logic
- resource
- sharing
- logic device
- type
- 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
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明涉及集成电路设计技术,公开了一种RTL电路综合中的资源共享方法及其系统。在本发明中,在确认驱动逻辑器件的各器件中至少有两个器件类型相同的组合逻辑器件后,进一步判断该逻辑器件的其他输入端线网(不是由相同器件类型的组合逻辑器件驱动的)是否能标准化为相同器件类型的组合逻辑器件,并在具有能够进行标准化的输入端线网时,将该输入端线网标准化为相同器件类型的组合逻辑器件,与其他组合逻辑器件一起进行资源共享来替代原电路模块,扩大了可以资源共享的范围,从而增强了对RTL电路的优化效果。此外,先单独构建电路结构体进行资源共享前后的电路面积比较,来判断是否需要对电路模块进行资源共享,以确保电路面积最小化。
Description
技术领域
本发明涉及集成电路设计技术,特别涉及RTL电路综合中的资源共享方法及其系统。
背景技术
在将硬件描述语言的RTL级描述综合成电路结构的过程中,不仅要将HDL描述转译成电路结构,而且要采用优化方法来节省面积、提升性能。因此优化方法在综合系统中起重要作用。
寄存器传输级(RTL)综合处于现场可编程门阵列(Field Programmable GateArray,简称“FPGA”)的EDA工具流程的最前端,将行为级的描述文件转换为门级的网表,承担了绝大部分的优化任务,包括针对面积、时序和功耗的优化,是FPGA的EDA工具最重要的部分之一,综合结果直接影响整个设计的好坏。
当前的优化方法中,一般分为组合逻辑优化技术和时序电路优化技术。时序电路的优化是指通过移动存储部件的位置从而减少存储部件,优化电路性能。组合电路的优化是以普通抽象电路结构已经生成为基础的。普通抽象电路结构生成过程中已经将组合电路和时序电路分开,现将组合电路功能块提出,然后对该组合电路功能块进行优化(保证输入输出接口不变,电路逻辑功能不变),再将优化结果放回原电路结构中。
本发明的发明人发现,现有的优化方法中不能有效地进行资源共享,以减少电路总面积。
发明内容
本发明的目的在于提供一种RTL电路综合中的资源共享方法及其系统,扩大了可以资源共享的范围,增强了对RTL电路的优化效果。
为解决上述技术问题,本发明的实施方式公开了一种RTL电路综合中的资源共享方法,该方法包括以下步骤:
遍历RTL电路中的每个逻辑器件,并判断逻辑器件与驱动该逻辑器件的各器件所组成的电路模块是否符合资源共享条件,其中该资源共享条件包括驱动逻辑器件的各器件中具有至少两个组合逻辑器件并且至少两个组合逻辑器件的器件类型相同;
若电路模块符合资源共享条件,判断逻辑器件是否具有能够标准化为与至少两个组合逻辑器件的器件类型相同的组合逻辑器件的输入端线网;
若逻辑器件具有能够标准化为与至少两个组合逻辑器件的器件类型相同的组合逻辑器件的输入端线网,则将输入端线网标准化为与至少两个组合逻辑器件的器件类型相同的组合逻辑器件,并对器件类型相同的组合逻辑器件进行资源共享以替代电路模块。
本发明的实施方式还公开了一种RTL电路综合中的资源共享系统,该系统包括:
第一判断模块,用于遍历RTL电路中的每个逻辑器件,并判断逻辑器件与驱动该逻辑器件的各器件所组成的电路模块是否符合资源共享条件,其中该资源共享条件包括驱动逻辑器件的各器件中具有至少两个组合逻辑器件并且至少两个组合逻辑器件的器件类型相同;
第二判断模块,用于若第一判断模块确认电路模块符合资源共享条件,判断逻辑器件是否具有能够标准化为与所述至少两个组合逻辑器件的器件类型相同的组合逻辑器件的输入端线网;
标准化模块,用于若第二判断模块确认逻辑器件具有能够标准化为与至少两个组合逻辑器件的器件类型相同的组合逻辑器件的输入端线网,将输入端线网标准化为与至少两个组合逻辑器件的器件类型相同的组合逻辑器件;以及
资源共享模块,用于在标准化模块对输入端线网进行标准化后对器件类型相同的组合逻辑器件进行资源共享以替代电路模块。
本发明实施方式与现有技术相比,主要区别及其效果在于:
在本发明中,在确认驱动逻辑器件的各器件中至少有两个器件类型相同的组合逻辑器件后,进一步判断该逻辑器件的其他输入端线网(不是由相同类型组合逻辑器件驱动的)是否能标准化为相同类型的组合逻辑器件,并在具有能够进行标准化的输入端线网时,将该输入端线网标准化为相同器件类型的组合逻辑器件,与其他组合逻辑器件一起进行资源共享来替代原电路模块,扩大了可以资源共享的范围,从而增强了对RTL电路的优化效果。
进一步地,可适用于输入不同的组合逻辑器件。
进一步地,先构建电路结构体进行资源共享前后的电路面积比较,来判断是否需要对电路模块进行资源共享,以确保电路面积最小化。
附图说明
图1是本发明第一实施方式中一种RTL电路综合中的资源共享方法的流程示意图;
图2是本发明第一实施方式中一种RTL电路综合中的资源共享方法的流程示意图;
图3是本发明第一实施方式中一种RTL电路综合中的资源共享方法的流程示意图;
图4是本发明第二实施方式中一种RTL电路综合中的资源共享方法的流程示意图;
图5是本发明第二实施方式中一种RTL电路综合中的资源共享方法的流程示意图;
图6是本发明第二实施方式中一种RTL电路综合中的资源共享方法中资源共享条件判断的流程示意图;
图7是本发明第二实施方式中一种RTL电路综合中的资源共享方法中资源共享操作的流程示意图;
图8是本发明第二实施方式中一种RTL电路的结构示意图;
图9是本发明第二实施方式中一种RTL电路经线网标准化后的结构示意图;
图10是本发明第二实施方式中一种RTL电路经资源共享后的结构示意图;
图11是本发明第二实施方式中一种RTL电路的结构示意图;
图12是本发明第二实施方式中一种RTL电路经资源共享后的结构示意图;
图13是本发明第三实施方式中一种RTL电路综合中的资源共享系统的结构示意图。
具体实施方式
在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。
本发明第一实施方式涉及一种RTL电路综合中的资源共享方法。图1是该RTL电路综合中的资源共享方法的流程示意图。寄存器传输级电路(RTL级电路)最基本的设计单元是寄存器、计数器、多路选择器、算术逻辑单元等,这一层电路的主要设计工作是优化、综合、状态编码以及工艺映射。其中,通过综合可以在设计过程中把硬件的描述从同一层次的一种描述转换为另一种描述(从行为描述转化为结构描述),也可以把上一层次的描述转换为下一层次的描述。利用计算机辅助设计工具进行这种转换便称为自动综合。
如图1所示,该方法包括以下步骤:
在步骤101中,遍历RTL电路中的每个逻辑器件,并判断逻辑器件与驱动该逻辑器件的各器件所组成的电路模块是否符合资源共享条件,其中该资源共享条件包括驱动逻辑器件的各器件中具有至少两个组合逻辑器件并且至少两个组合逻辑器件的器件类型相同。可以理解,上述组合逻辑器件可以为加法器、乘法器以及多路选择器等组合逻辑器件的任意一种
若电路模块符合资源共享条件,则进入步骤102,否则结束本流程。
在步骤102中,判断逻辑器件是否具有能够标准化为与上述至少两个组合逻辑器件的器件类型相同的组合逻辑器件的输入端线网。可以理解,上述进行标准化的输入端线网不包括由上述至少两个器件类型相同的组合逻辑器件驱动的输入端线网。此处“标准化”指的是将线网处理为与上述至少两个组合逻辑器件的器件类型相同的组合逻辑器件,例如如图8和图9所示处理为与0相加的加法器、或是与1相乘的乘法器、或是输入全相同的多路选择器等等。
若逻辑器件具有能够标准化为与上述至少两个组合逻辑器件的器件类型相同的组合逻辑器件的输入端线网,则进入步骤103,否则进入步骤104。
在步骤103中,将该输入端线网标准化为与上述至少两个组合逻辑器件的器件类型相同的组合逻辑器件。
此后进入步骤104,对器件类型相同的组合逻辑器件进行资源共享以替代电路模块。可以理解,资源共享是逻辑互斥的两个或多个相同组合逻辑器件用同一资源实现的方法,是FPGA综合中的关键技术之一。
此后结束本流程。
上述线网标准化可适用于各种资源共享方式。在具有多个普通线网和多组器件类型相同的组合逻辑器件时,可以将各个普通线网分别标准化为各组组合逻辑器件,或是全部标准化为特定的一组组合逻辑器件,可根据实际情况进行选择。上述普通线网为不是由上述至少两个器件类型相同的组合逻辑器件驱动的输入端线网
在本实施方式的资源共享方法中,在确认驱动逻辑器件的各器件中至少有两个器件类型相同的组合逻辑器件后,进一步判断该逻辑器件的其他输入端线网(不是由相同类型组合逻辑器件驱动的)是否能标准化为相同类型的组合逻辑器件,并在具有能够进行标准化的输入端线网时,将该输入端线网标准化为相同器件类型的组合逻辑器件,与其他组合逻辑器件一起进行资源共享来替代原电路模块,扩大了可以资源共享的范围,从而增强了对RTL电路的优化效果。
在本发明一优选例中,上述资源共享条件还包括以下条件:
逻辑器件是多路选择器;
驱动逻辑器件的组合逻辑器件的所有输出端不驱动该逻辑器件之外的各器件;
与组合逻辑器件连接的逻辑器件的输入端仅由该组合逻辑器件驱动;
器件类型相同的组合逻辑器件的输出端与逻辑器件的输入端连接的各数据线相同并且连接方式相同。
优选地,上述资源共享条件适用于上述电路模块中的所有器件。可以理解,在本发明的其他实施方式中,上述资源共享条件也可以仅适用于上述电路模块中的部分器件,即上述电路模块中至少两个器件类型相同的组合逻辑器件满足上述资源共享条件即可进行资源共享操作。
此外,可以理解,在本发明的其他实施方式中,也可以选择其他结构或功能相同的条件作为资源共享条件。不限于上述条件。
基于上述资源共享条件,优选地,步骤104中包括以下子步骤:
如图2所示,在子步骤201中,遍历器件类型相同的组合逻辑器件中的第一组合逻辑器件的所有输入端,并判断该第一组合逻辑器件的每个输入端的输入与各器件类型相同的组合逻辑器件的相应输入端的输入是否完全相同。可以理解,第一组合逻辑器件可以是器件类型相同的组合逻辑器件中的任意一个。
若不完全相同,则进入子步骤202,否则进入子步骤203。
在子步骤202中,对于与各器件类型相同的组合逻辑器件的相应输入端的输入不同的该第一组合逻辑器件的第一输入端添加一个新的多路选择器,新的多路选择器的各输入端分别对应于该第一组合逻辑器件的第一输入端和各器件类型相同的组合逻辑器件的相应于该第一组合逻辑器件的第一输入端的输入端,新的多路选择器的输出端与该第一组合逻辑器件的第一输入端连接并且将逻辑器件的信号选择端作为新的多路选择器的信号选择端。
此后进入子步骤203,将该第一组合逻辑器件的输出端替代各器件类型相同的组合逻辑器件的输出端与逻辑器件的相应输入端连接并删除各器件类型相同的组合逻辑器件。
此后结束本流程。
可选地,如图3所示,在子步骤203后还包括以下子步骤:
在子步骤301中,判断驱动逻辑器件的所有器件是否为器件类型相同的组合逻辑器件,若是,则进入子步骤302,否则结束本流程。
在子步骤302中,删除该逻辑器件并将第一组合逻辑器件的输出端作为该逻辑器件的输出端。
此后结束本流程。
上述资源共享方法可适用于输入不同的组合逻辑器件。可以理解,在本发明的其他实施方式中,也可以选择基于其他资源共享条件的资源共享操作,以适用于其他情况下的组合逻辑器件的资源共享。不限于上述步骤。
本发明第二实施方式涉及一种RTL电路综合中的资源共享方法。图4是该RTL电路综合中的资源共享方法的流程示意图。
第二实施方式在第一实施方式的基础上进行了改进,主要改进之处在于:先单独构建电路结构体进行资源共享前后的电路面积比较,来判断是否需要对电路模块进行资源共享,以确保电路面积最小化。具体地说:
如图4所示,在步骤104前还包括以下步骤:
在步骤401中,根据符合资源共享条件的电路模块构建未经资源共享的电路结构体和经资源共享的电路结构体。
此后进入步骤402,计算未经资源共享的电路结构体和经资源共享的电路结构体的电路面积并判断经资源共享的电路结构体的电路面积是否小于未经资源共享的电路结构体的电路面积。
若经资源共享的电路结构体的电路面积小于未经资源共享的电路结构体的电路面积,则进入步骤403,否则进入步骤404。
在步骤403中,对器件类型相同的组合逻辑器件进行资源共享以替代电路模块。
此后结束本流程。
在步骤404中,不对器件类型相同的组合逻辑器件进行资源共享以替代电路模块。
此后结束本流程。
此外,可以理解,在本发明的其他实施方式中,也可以不对电路面积进行判断,直接对器件类型相同的组合逻辑器件进行资源共享。
在本发明一个优选的例子中,如图5所示,上述方法主要为以下几个步骤:
1寻找可资源共享的电路模块。遍历RTL电路中的每个逻辑器件(Instance),检查该逻辑器件以及驱动该逻辑器件的其他器件组成的电路模块是否符合资源共享的条件。条件包括以下几条:①该逻辑器件是一个多路选择器(Mux),并且与该多路选择器的输入端相连的所有组合逻辑器件的类型(多路选择器、加法器或者乘法器等的任意一种组合逻辑器件)至少有两个相同;②如果多路选择器的某输入端所连的是组合逻辑器件,那么该输入端的所有数据线都由该组合逻辑器件驱动;③驱动多路选择器的相同类型的组合逻辑器件的输出端口连接关系必须相同;④驱动该多路选择器的输入端的组合逻辑器件的输出端除了驱动该多路选择器外,不能驱动其它任何端口。如果这些条件都符合,那么就认为该电路模块符合资源共享的条件,并且进行步骤2,如果任意一条不符合,则认为不满足资源共享的条件。该过程的流程图如图6所示。
2.根据找到的电路模块,首先构建电路实体,根据该实体构建未经资源共享的电路结构体和经资源共享的电路结构体。可以理解,实体定义了硬件的输入输出端口,定义了硬件与外部环境的接口,但并没有包含如何将输入映射到输出的信息。而结构体定义了输入端口和输出端口之间的映射关系,可用来说明实体的行为。
未经资源共享的电路结构体和经资源共享的电路结构体的输入接口和输出接口完全相同,其中输入接口分别对应驱动该多路选择器的所有器件的输入端以及该多路选择器的选择信号端,输出接口分别对应多路选择器的输出端口。未经资源共享的电路结构体里的电路数量和连接关系与原电路结构完全一致,经资源共享的电路结构体里的电路结构即是未经资源共享的电路结构体经过资源共享之后的电路。
3.分别计算未经资源共享的电路结构体的面积和经资源共享的电路结构体经过物理映射之后的面积(当然,在本发明的其他实施例中,也可以对该面积进行估算),根据面积的对比结果,决定是否进行实质资源共享操作。如果经资源共享的电路结构体的面积小于未经资源共享的电路结构体的面积,就对原电路进行实质资源共享操作,包括添加逻辑器件、删除多余逻辑器件、以及更改电路连接关系等等。否则不对原电路进行操作,继续执行步骤1,直至遍历结束。
以下将对电路的资源共享操作进行详细介绍。对RTL电路进行实质资源共享操作的流程图如图7所示,具体步骤如下。为方便起见,我们称电路模块里的多路选择器为Mux,驱动该多路选择器的相同类型的组合逻辑器件分别为inst(1),inst(2),……inst(n)。
(1)首先进行线网标准化。即检查驱动多路选择器的输入端中是否有普通线网,如果有,就先将线网根据其他需要进行资源共享的组合逻辑器件类型处理为该类型的组合逻辑器件,比如与0相加的加法器、与1相乘的乘法器或者输入全相同的多路选择器等,记作inst(n+1)。
(2)遍历inst(1)的所有输入端i0,i1,……,对每一个输入端,检查其他inst(inst(2)、inst(3),……,inst(n+1))的相应输入端的输入是否与该输入端相同,如果全部相同,则不对该输入端有其他操作,如果不完全相同,则进入步骤(3)。
(3)由于inst(1)的该输入端与其他inst不一样,因此我们这里要添加一个新的多路选择器来代替其他inst。该新的多路选择器的输入端分别对应所有inst(包括inst(1),inst(2),……)的该输入端口的输入;该新的多路选择器的信号选择端与原多路选择器Mux的信号选择端相同,以保证原多路选择器的功能;该新的多路选择器的输出端与inst1的该输入端相连。
(4)如果驱动原多路选择器Mux的所有逻辑器件的类型均相同,则将inst(1)的输出端替代原多路选择器Mux的输出端,并删除原多路选择器Mux;如果驱动原多路选择器的所有逻辑器件的类型不全相同,则inst(1)的输出端连线情况不变,同时用inst(1)的输出端替代其他inst的输出端。
(5)删除其他inst(inst(2),inst(3),……)。
图8所示的是一个RTL级电路模块,其中包含一个4选1多路选择器(Mux),该多路选择器的四个输入端可以分为以下两种情况:
(1)四个输入端全为组合逻辑器件;
(2)四个输入端不全为组合逻辑器件,还有线网驱动。
其中,组合逻辑器件的类型可以分为以下两种情况:
(1)组合逻辑器件的类型完全相同(可以为加法器、乘法器以及多路选择器等组合逻辑器件的任意一种);
(2)组合逻辑器件的类型不完全相同。
对于驱动多路选择器的所有组合逻辑器件的输入端又可以分为以下两种情况:
(1)组合逻辑器件的相应输入端口(i0,i1……等)所接输入完全相同;
(2)组合逻辑器件的相应输入端口(i0,i1……等)所接输入不完全相同。
如果图8中与多路选择器输入端相连的组合逻辑器件有至少两个器件的类型完全相同,此时从逻辑上看可以将相同类型的组合逻辑器件进行资源共享,合并为一个该类型的组合逻辑器件。对于合并后的组合逻辑器件的输入端根据之前的两种输入情况作分类讨论。对于图8中驱动多路选择器的输入端出现普通线网的情况时,可以考虑先将普通线网处理成与0相加的加法器或与1相乘的乘法器等器件(如图9所示),再进行资源共享的操作。
当多路选择器的输入数目较多时或者组合逻辑器件的相应端口的输入尽可能多地完全相同时,这种资源共享的优化方法可以有效减少总电路面积。
图8是可以进行资源共享的示例RTL电路,假设A1、A2、A3和B1、B2、B3分别代表不完全相同的输入信号,C1代表普通线网,则线网标准化后的电路结构如图9,进行资源共享后的电路结构为图10。可以看到,由于驱动多路选择器的逻辑器件全为加法器ADD,该多路选择器被删除。
需注意的是,如图11和图12所示,若代表普通线网的x无法标准化为器件类型相同的组合逻辑器件(UNKNOWN),则不对该普通线网进行标准化。
可以理解,上述仅为一个优选的例子。在实际情况中,可以根据需要选择是否要进行线网标准化、是否要进行面积判断等步骤。不限于上述的方法和顺序。
本发明的各方法实施方式均可以以软件、硬件、固件等方式实现。不管本发明是以软件、硬件、还是固件方式实现,指令代码都可以存储在任何类型的计算机可访问的存储器中(例如永久的或者可修改的,易失性的或者非易失性的,固态的或者非固态的,固定的或者可更换的介质等等)。同样,存储器可以例如是可编程阵列逻辑(Programmable ArrayLogic,简称“PAL”)、随机存取存储器(Random Access Memory,简称“RAM”)、可编程只读存储器(Programmable Read Only Memory,简称“PROM”)、只读存储器(Read-Only Memory,简称“ROM”)、电可擦除可编程只读存储器(Electrically Erasable Programmable ROM,简称“EEPROM”)、磁盘、光盘、数字通用光盘(Digital Versatile Disc,简称“DVD”)等等。
本发明第三实施方式涉及一种RTL电路综合中的资源共享系统。图13是该RTL电路综合中的资源共享系统的结构示意图。如图13所示,该系统包括:
第一判断模块,用于遍历RTL电路中的每个逻辑器件,并判断逻辑器件与驱动该逻辑器件的各器件所组成的电路模块是否符合资源共享条件,其中该资源共享条件包括驱动逻辑器件的各器件中具有至少两个组合逻辑器件并且至少两个组合逻辑器件的器件类型相同。
第二判断模块,用于若第一判断模块确认电路模块符合资源共享条件,判断逻辑器件是否具有能够标准化为与至少两个组合逻辑器件的器件类型相同的组合逻辑器件的输入端线网;
标准化模块,用于若第二判断模块确认逻辑器件具有能够标准化为与至少两个组合逻辑器件的器件类型相同的组合逻辑器件的输入端线网,将该输入端线网标准化为与至少两个组合逻辑器件的器件类型相同的组合逻辑器件。以及
资源共享模块,用于在标准化模块对输入端线网进行标准化后对器件类型相同的组合逻辑器件进行资源共享以替代电路模块。可以理解,上述进行标准化的输入端线网不包括由上述至少两个器件类型相同的组合逻辑器件驱动的输入端线网。
可以理解,上述资源共享模块还用于若检测模块未检测到逻辑器件具有能够进行标准化的输入端线网,直接对器件类型相同的组合逻辑器件进行资源共享以替代电路模块。
在本实施方式的资源共享系统中,在第一判断模块确认驱动逻辑器件的各器件中至少有两个器件类型相同的组合逻辑器件后,第二判断模块进一步判断该逻辑器件的其他输入端线网(不是由相同类型组合逻辑器件驱动的)是否能标准化为相同类型的组合逻辑器件,并在具有能够进行标准化的输入端线网时,标准化模块将该输入端线网标准化为相同器件类型的组合逻辑器件,资源共享模块将标准化后的组合逻辑器件与其他组合逻辑器件一起进行资源共享来替代原电路模块,扩大了可以资源共享的范围,从而增强了对RTL电路的优化效果。
在本发明一优选例中,上述资源共享条件还包括以下条件:
逻辑器件是多路选择器;
驱动逻辑器件的组合逻辑器件的所有输出端不驱动该逻辑器件之外的各器件;
与组合逻辑器件连接的逻辑器件的输入端仅由该组合逻辑器件驱动;
器件类型相同的组合逻辑器件的输出端与逻辑器件的输入端连接的各数据线相同并且连接方式相同。
优选地,上述资源共享条件适用于上述电路模块中的所有器件。可以理解,在本发明的其他实施方式中,上述资源共享条件也可以仅适用于上述电路模块中的部分器件,即上述电路模块中至少两个器件类型相同的组合逻辑器件满足上述资源共享条件即可进行资源共享操作。
此外,可以理解,在本发明的其他实施方式中,也可以选择其他结构或功能相同的条件作为资源共享条件。不限于上述条件。
基于上述资源共享条件,优选地,上述资源共享模块包括以下子模块:
第一判断子模块,用于遍历器件类型相同的组合逻辑器件中的第一组合逻辑器件的所有输入端,并判断该第一组合逻辑器件的每个输入端的输入与各器件类型相同的组合逻辑器件的相应输入端的输入是否完全相同。
第一执行子模块,用于若第一判断子模块确认不完全相同,对于与各器件类型相同的组合逻辑器件的相应输入端的输入不同的该第一组合逻辑器件的第一输入端添加一个新的多路选择器,新的多路选择器的各输入端分别对应于该第一组合逻辑器件的第一输入端和各器件类型相同的组合逻辑器件的相应于该第一组合逻辑器件的第一输入端的输入端,新的多路选择器的输出端与该第一组合逻辑器件的第一输入端连接并且将逻辑器件的信号选择端作为该新的多路选择器的信号选择端,将该第一组合逻辑器件的输出端替代各器件类型相同的组合逻辑器件的输出端与逻辑器件的相应输入端连接并删除各器件类型相同的组合逻辑器件。以及
第二执行子模块,用于若第一判断子模块确认完全相同,将该第一组合逻辑器件的输出端替代各器件类型相同的组合逻辑器件的输出端与逻辑器件的相应输入端连接并删除各器件类型相同的组合逻辑器件。
可选地,上述资源共享模块还包括以下子模块:
第二判断子模块,用于判断驱动逻辑器件的所有器件是否为器件类型相同的组合逻辑器件。以及
第三执行子模块,用于若第二判断子模块确认驱动逻辑器件的所有器件为器件类型相同的组合逻辑器件,删除该逻辑器件并将第一组合逻辑器件的输出端作为该逻辑器件的输出端。
此外,可以理解,上述仅为本发明的优选方案。在本发明的其他实施方式中,也可以选择其他资源共享操作。
上述资源共享系统可适用于输入不同的组合逻辑器件。可以理解,在本发明的其他实施方式中,也可以选择基于其他资源共享条件的资源共享系统,以适用于其他情况下的组合逻辑器件的资源共享。不限于上述结构。
第一实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
本发明第四实施方式涉及一种RTL电路综合中的资源共享系统。
第四实施方式在第三实施方式的基础上进行了改进,主要改进之处在于:先由构建模块单独构建电路结构体进行资源共享前后的电路面积比较,来判断是否需要对电路模块进行资源共享,以确保电路面积最小化。具体地说:
该系统还包括:
构建模块,用于根据第一判断模块确认的符合资源共享条件的电路模块构建未经资源共享的电路结构体和经资源共享的电路结构体。
计算模块,用于计算构建模块构建的未经资源共享的电路结构体和经资源共享的电路结构体的电路面积。以及
第三判断模块,用于判断计算模块计算的经资源共享的电路结构体的电路面积是否小于未经资源共享的电路结构体的电路面积。
资源共享模块用于若第三判断模块确认经资源共享的电路结构体的电路面积小于未经资源共享的电路结构体的电路面积,对器件类型相同的组合逻辑器件进行资源共享以替代电路模块,以及若第三判断模块确认经资源共享的电路结构体的电路面积大于未经资源共享的电路结构体的电路面积,不对器件类型相同的组合逻辑器件进行资源共享以替代电路模块。
此外,可以理解,在本发明的其他实施方式中,也可以不对其进行判断,直接对器件类型相同的组合逻辑器件进行资源共享。
第二实施方式是与本实施方式相对应的方法实施方式,本实施方式可与第二实施方式互相配合实施。第二实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第二实施方式中。
综上,本发明基于自适应的资源共享方法,通过寻找符合资源共享条件的模式匹配过程确定可以进行资源共享的电路模块,然后对电路模块中的普通线网先进行标准化,再进行资源共享,扩大了可以资源共享的范围。此外,根据该电路模块生成无资源共享以及有资源共享的虚拟结构体,通过对比这两个结构体的面积,决定是否进行资源共享。本发明不仅具有较宽泛的可资源共享范围,同时自适应判定是否资源共享的方法可以确保进行资源共享操作后面积一定得到减小。
需要说明的是,本发明各设备实施方式中提到的各模块都是逻辑模块,在物理上,一个逻辑模块可以是一个物理模块,也可以是一个物理模块的一部分,还可以以多个物理模块的组合实现,这些逻辑模块本身的物理实现方式并不是最重要的,这些逻辑模块所实现的功能的组合才是解决本发明所提出的技术问题的关键。此外,为了突出本发明的创新部分,本发明上述各设备实施方式并没有将与解决本发明所提出的技术问题关系不太密切的模块引入,这并不表明上述设备实施方式并不存在其它的模块。
需要说明的是,在本专利的权利要求和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (10)
1.一种寄存器传输级RTL电路综合中的资源共享方法,其特征在于,该方法包括以下步骤:
遍历RTL电路中的每个逻辑器件,并判断所述逻辑器件与驱动该逻辑器件的各器件所组成的电路模块是否符合资源共享条件,其中该资源共享条件包括驱动所述逻辑器件的各器件中具有至少两个组合逻辑器件并且所述至少两个组合逻辑器件的器件类型相同;
若所述电路模块符合资源共享条件,判断所述逻辑器件是否具有能够标准化为与所述至少两个组合逻辑器件的器件类型相同的组合逻辑器件的输入端线网;
若所述逻辑器件具有能够标准化为与所述至少两个组合逻辑器件的器件类型相同的组合逻辑器件的输入端线网,则将所述输入端线网标准化为与所述至少两个组合逻辑器件的器件类型相同的组合逻辑器件,并对器件类型相同的组合逻辑器件进行资源共享以替代所述电路模块。
2.根据权利要求1所述的RTL电路综合中的资源共享方法,其特征在于,所述资源共享条件还包括以下条件:
所述逻辑器件是多路选择器;
驱动所述逻辑器件的组合逻辑器件的所有输出端不驱动该逻辑器件之外的各器件;
与组合逻辑器件连接的所述逻辑器件的输入端仅由该组合逻辑器件驱动;
器件类型相同的组合逻辑器件的输出端与所述逻辑器件的输入端连接的各数据线相同并且连接方式相同。
3.根据权利要求2所述的RTL电路综合中的资源共享方法,其特征在于,对器件类型相同的组合逻辑器件进行资源共享以替代所述电路模块的步骤中包括以下子步骤:
遍历所述器件类型相同的组合逻辑器件中的第一组合逻辑器件的所有输入端,并判断该第一组合逻辑器件的每个输入端的输入与各器件类型相同的组合逻辑器件的相应输入端的输入是否完全相同;
若不完全相同,则对于与各器件类型相同的组合逻辑器件的相应输入端的输入不同的该第一组合逻辑器件的第一输入端添加一个新的多路选择器,所述新的多路选择器的各输入端分别对应于该第一组合逻辑器件的第一输入端和各器件类型相同的组合逻辑器件的相应于该第一组合逻辑器件的第一输入端的输入端,所述新的多路选择器的输出端与该第一组合逻辑器件的第一输入端连接并且将所述逻辑器件的信号选择端作为所述新的多路选择器的信号选择端,将该第一组合逻辑器件的输出端替代各器件类型相同的组合逻辑器件的输出端与所述逻辑器件的相应输入端连接并删除各器件类型相同的组合逻辑器件;
若完全相同,则将该第一组合逻辑器件的输出端替代各器件类型相同的组合逻辑器件的输出端与所述逻辑器件的相应输入端连接并删除各器件类型相同的组合逻辑器件。
4.根据权利要求3所述的RTL电路综合中的资源共享方法,其特征在于,将该第一组合逻辑器件的输出端替代各器件类型相同的组合逻辑器件的输出端与所述逻辑器件的相应输入端连接并删除各器件类型相同的组合逻辑器件的子步骤后还包括以下子步骤:
判断驱动所述逻辑器件的所有器件是否为器件类型相同的组合逻辑器件,若是,则删除该逻辑器件并将所述第一组合逻辑器件的输出端作为该逻辑器件的输出端。
5.根据权利要求1至4中任一项所述的RTL电路综合中的资源共享方法,其特征在于,在对器件类型相同的组合逻辑器件进行资源共享以替代所述电路模块的步骤前还包括以下步骤:
根据符合资源共享条件的电路模块构建未经资源共享的电路结构体和经资源共享的电路结构体;
计算所述未经资源共享的电路结构体和经资源共享的电路结构体的电路面积并判断经资源共享的电路结构体的电路面积是否小于未经资源共享的电路结构体的电路面积;
若经资源共享的电路结构体的电路面积小于未经资源共享的电路结构体的电路面积,则对器件类型相同的组合逻辑器件进行资源共享以替代所述电路模块;
若经资源共享的电路结构体的电路面积大于未经资源共享的电路结构体的电路面积,则不对器件类型相同的组合逻辑器件进行资源共享以替代所述电路模块。
6.一种RTL电路综合中的资源共享系统,其特征在于,该系统包括:
第一判断模块,用于遍历RTL电路中的每个逻辑器件,并判断所述逻辑器件与驱动该逻辑器件的各器件所组成的电路模块是否符合资源共享条件,其中该资源共享条件包括驱动所述逻辑器件的各器件中具有至少两个组合逻辑器件并且所述至少两个组合逻辑器件的器件类型相同;
第二判断模块,用于若所述第一判断模块确认所述电路模块符合资源共享条件,判断所述逻辑器件是否具有能够标准化为与所述至少两个组合逻辑器件的器件类型相同的组合逻辑器件的输入端线网;
标准化模块,用于若所述第二判断模块确认所述逻辑器件具有能够标准化为与所述至少两个组合逻辑器件的器件类型相同的组合逻辑器件的输入端线网,将所述输入端线网标准化为与所述至少两个组合逻辑器件的器件类型相同的组合逻辑器件;以及
资源共享模块,用于在所述标准化模块对所述输入端线网进行标准化后对器件类型相同的组合逻辑器件进行资源共享以替代所述电路模块。
7.根据权利要求6所述的RTL电路综合中的资源共享系统,其特征在于,所述资源共享条件还包括以下条件:
所述逻辑器件是多路选择器;
驱动所述逻辑器件的组合逻辑器件的所有输出端不驱动该逻辑器件之外的各器件;
与组合逻辑器件连接的所述逻辑器件的输入端仅由该组合逻辑器件驱动;
器件类型相同的组合逻辑器件的输出端与所述逻辑器件的输入端连接的各数据线相同并且连接方式相同。
8.根据权利要求7所述的RTL电路综合中的资源共享系统,其特征在于,所述资源共享模块包括以下子模块:
第一判断子模块,用于遍历所述器件类型相同的组合逻辑器件中的第一组合逻辑器件的所有输入端,并判断该第一组合逻辑器件的每个输入端的输入与各器件类型相同的组合逻辑器件的相应输入端的输入是否完全相同;
第一执行子模块,用于若所述第一判断子模块确认不完全相同,对于与各器件类型相同的组合逻辑器件的相应输入端的输入不同的该第一组合逻辑器件的第一输入端添加一个新的多路选择器,所述新的多路选择器的各输入端分别对应于该第一组合逻辑器件的第一输入端和各器件类型相同的组合逻辑器件的相应于该第一组合逻辑器件的第一输入端的输入端,所述新的多路选择器的输出端与该第一组合逻辑器件的第一输入端连接并且将所述逻辑器件的信号选择端作为该新的多路选择器的信号选择端,将该第一组合逻辑器件的输出端替代各器件类型相同的组合逻辑器件的输出端与所述逻辑器件的相应输入端连接并删除各器件类型相同的组合逻辑器件;以及
第二执行子模块,用于若所述第一判断子模块确认完全相同,将该第一组合逻辑器件的输出端替代各器件类型相同的组合逻辑器件的输出端与所述逻辑器件的相应输入端连接并删除各器件类型相同的组合逻辑器件。
9.根据权利要求8所述的RTL电路综合中的资源共享系统,其特征在于,所述资源共享模块还包括以下子模块:
第二判断子模块,用于判断驱动所述逻辑器件的所有器件是否为器件类型相同的组合逻辑器件;以及
第三执行子模块,用于若所述第二判断子模块确认驱动所述逻辑器件的所有器件为器件类型相同的组合逻辑器件,删除该逻辑器件并将所述第一组合逻辑器件的输出端作为该逻辑器件的输出端。
10.根据权利要求6至9中任一项所述的RTL电路综合中的资源共享系统,其特征在于,该系统还包括:
构建模块,用于根据所述第一判断模块确认的符合资源共享条件的电路模块构建未经资源共享的电路结构体和经资源共享的电路结构体;
计算模块,用于计算所述构建模块构建的未经资源共享的电路结构体和经资源共享的电路结构体的电路面积;以及
第三判断模块,用于判断所述计算模块计算的经资源共享的电路结构体的电路面积是否小于未经资源共享的电路结构体的电路面积;
所述资源共享模块用于若所述第三判断模块确认经资源共享的电路结构体的电路面积小于未经资源共享的电路结构体的电路面积,对器件类型相同的组合逻辑器件进行资源共享以替代所述电路模块,若所述第三判断模块确认经资源共享的电路结构体的电路面积大于未经资源共享的电路结构体的电路面积,不对器件类型相同的组合逻辑器件进行资源共享以替代所述电路模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510231066.6A CN104809302B (zh) | 2015-05-07 | 2015-05-07 | Rtl电路综合中的资源共享方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510231066.6A CN104809302B (zh) | 2015-05-07 | 2015-05-07 | Rtl电路综合中的资源共享方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104809302A CN104809302A (zh) | 2015-07-29 |
CN104809302B true CN104809302B (zh) | 2018-04-13 |
Family
ID=53694119
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510231066.6A Active CN104809302B (zh) | 2015-05-07 | 2015-05-07 | Rtl电路综合中的资源共享方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104809302B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110059421B (zh) * | 2019-04-23 | 2020-12-08 | 上海安路信息科技有限公司 | 一种逻辑电路的优化方法及优化装置 |
CN112580286B (zh) * | 2020-12-18 | 2022-01-18 | 广东高云半导体科技股份有限公司 | 多线程综合方法及装置 |
CN115577662B (zh) * | 2022-11-23 | 2023-03-10 | 山东启芯软件科技有限公司 | 一种基于多fanout逻辑的时序器件资源优化方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101809576A (zh) * | 2007-07-23 | 2010-08-18 | 新思公司 | 构架物理综合 |
CN103885819A (zh) * | 2012-12-21 | 2014-06-25 | 中国科学院微电子研究所 | 一种针对fpga面积优化的优先级资源共享方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4123514B2 (ja) * | 2003-12-02 | 2008-07-23 | 日本電気株式会社 | 集積回路設計装置、および、集積回路設計方法 |
JP2006285865A (ja) * | 2005-04-04 | 2006-10-19 | Nec Electronics Corp | レジスタ転送レベル記述と動作記述間の対応関係特定方法、装置及びプログラム |
-
2015
- 2015-05-07 CN CN201510231066.6A patent/CN104809302B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101809576A (zh) * | 2007-07-23 | 2010-08-18 | 新思公司 | 构架物理综合 |
CN103885819A (zh) * | 2012-12-21 | 2014-06-25 | 中国科学院微电子研究所 | 一种针对fpga面积优化的优先级资源共享方法 |
Non-Patent Citations (2)
Title |
---|
"Resource sharing among mutually exclusive sum-of-product blocks for area reduction";S Das,SP Khatri;《ACM Transactions on Design Automation of Electronic Systems》;20080731;第13卷(第3期);全文 * |
"优先级资源共享在RTL综合中的实现";刘贵宅等;《华南理工大学学报》;20130630;第41卷(第6期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN104809302A (zh) | 2015-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Li et al. | Two-stage method for synthesizing liveness-enforcing supervisors for flexible manufacturing systems using Petri nets | |
Shi et al. | A highly efficient method for extracting FSMs from flattened gate-level netlist | |
CN103679185B (zh) | 卷积神经网络分类器系统、其训练方法、分类方法和用途 | |
Hiibner et al. | New 2-dimensional partial dynamic reconfiguration techniques for real-time adaptive microelectronic circuits | |
US20080127000A1 (en) | Method of IC design optimization via creation of design-specific cells from post-layout patterns | |
CN104809302B (zh) | Rtl电路综合中的资源共享方法及其系统 | |
US20090271750A1 (en) | Timing constraint merging in hierarchical soc designs | |
EP1369819A2 (en) | Image segmentation via a cell network algorithm | |
CN109492337B (zh) | 一种可编程逻辑器件的信息流追踪模型生成方法 | |
CN104573741A (zh) | 一种特征选择方法及装置 | |
CN109816105A (zh) | 一种可配置的神经网络激活函数实现装置 | |
CN102446342B (zh) | 可重构二值运算器、可重构二值图像处理系统及其实现基本形态学算法的方法 | |
CN109635955A (zh) | 一种特征组合方法、装置及设备 | |
CA2719835A1 (en) | Method of deriving an integrated circuit schematic diagram | |
Liu et al. | Knowledge-based neural network model for FPGA logical architecture development | |
CN107315863B (zh) | 布局优化方法及装置、终端及存储介质 | |
US8656335B2 (en) | System and methods for inferring higher level descriptions from RTL topology based on connectivity propagation | |
CN101944009B (zh) | 一种集成电路中除法器商的处理装置 | |
CN109583005A (zh) | Grmfpga互联线网延时的计算方法 | |
Hao et al. | Interconnection allocation between functional units and registers in high-level synthesis | |
Reddy et al. | Sensor Signal Processing using High-Level Synthesis and Internet of Things with a Layered Architecture | |
CN113065690A (zh) | 一种交通预测方法及装置 | |
Agiza et al. | GraPhSyM: Graph Physical Synthesis Model | |
Kóczy et al. | Issues and challenges of intelligent systems and computational intelligence | |
Yang et al. | Yet another many-objective clustering (YAMO-Pack) for FPGA CAD |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 200434 Room 202, building 5, No. 500, Memorial Road, Hongkou District, Shanghai Patentee after: Shanghai Anlu Information Technology Co.,Ltd. Address before: 200437 room 112, building 1, 623 Miyun Road, Hongkou District, Shanghai Patentee before: SHANGHAI ANLOGIC INFORMATION TECHNOLOGY Co.,Ltd. |
|
CP03 | Change of name, title or address |