CN101178749A - 程序转换装置 - Google Patents
程序转换装置 Download PDFInfo
- Publication number
- CN101178749A CN101178749A CNA2007101663914A CN200710166391A CN101178749A CN 101178749 A CN101178749 A CN 101178749A CN A2007101663914 A CNA2007101663914 A CN A2007101663914A CN 200710166391 A CN200710166391 A CN 200710166391A CN 101178749 A CN101178749 A CN 101178749A
- Authority
- CN
- China
- Prior art keywords
- program
- circuit
- conversion
- sign
- conversion apparatus
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明提供了一种用于将一种类型的程序转换为另一种类型的描述具有用户所需特征的电路的程序的程序转换装置。该程序转换装置基于程序类型描述而将一种类型的程序转换为另一种类型的程序。该程序转换装置(i)将描述一系列操作的操作描述程序转换为描述实现该系列操作的电路的设计的电路描述程序,(ii)输出该电路描述程序,(iii)产生表示通过根据电路描述程序描述的设计使用一个或多个硬件元件实现的电路的特征的标识,并(iv)输出所产生的标识。
Description
本申请基于在日本提交的专利申请No.2006-304196,在这里引用其内容作为参考。
技术领域
本发明涉及用于将一种类型的程序转换为另一种类型的程序的技术。特别地,本发明涉及在设计电路时,用于将描述所设计电路的操作的一种类型的程序转换为实现操作并描述具有用户所需特征(spec)的电路的另一种类型的程序的技术。
背景技术
目前,软件的发展已经产生了能够将一种类型的程序转换为另一种类型的程序的程序转换装置。程序转换装置的一个示例是能够将以高级语言编写的程序转换为机器语言的编译器。在专利文献1中描述了程序转换装置。
LSI设计者已经习惯使用硬件描述语言(例如,VHDL或Verilog HDL)设计尺寸越来越大的系统LSI。然而,近年来已经出现了高级综合技术,使用这种技术,通过首先使用相当抽象的高级语言设计硬件的处理,并且然后自动将该高级语言转换为硬件描述语言来设计系统LSI。这种技术使用能够将相当抽象的高级语言转换为硬件描述语言的高级综合装置。
下面将详细描述高级综合装置。高级综合装置接收以诸如C程序设计语言的高级语言编写的行为描述作为输入,并输出能够执行由输入的行为描述表达的处理的硬件的RTL(寄存器传输级)描述。例如,RTL描述是硬件(例如,电路)配置信息的基于文本的描述。同样地,高级综合装置是能够将行为描述转换为硬件的RTL描述的程序转换装置。在专利文献2中描述了高级综合装置。
此后将转换前的程序称为输入程序,而将转换后的程序称为目标程序。
专利文献2公开了用于防止在电路中产生循环的技术。
当使用传统高级综合装置来将输入程序转换为目标程序时,高级综合装置的用户(电路设计者)需要由目标程序描述的电路的不同特征。例如,电路设计者可能需要下面的特征:要产生的硬件具有最小面积;硬件具有最小执行时间。
使用专利文献2公开的技术,能够获得具有防止产生循环的特征的硬件(电路)。然而,在设计者需要目标电路具有其它不同特征的情况下,专利文献2的技术不能为设计者提供具有他/她所需特征的硬件(电路)。
根据上述问题,本发明的目的在于提供一种程序转换装置、一种程序转换方法、一种计算机程序和一种能够将程序转换为描述具有设计者所需特征的电路的另一种程序的记录介质。
[专利文献1]
日本公开专利申请No.2005-174045。
[专利文献2]
日本公开专利申请No.2006-127346。
发明内容
为了实现上述目标,本发明为用于基于程序类型的描述而将一种类型的程序转换为另一种类型的程序的程序转换装置,该程序转换装置包括:用于将描述一系列操作的操作描述程序转换为描述实现该系列操作的电路设计的电路描述程序的转换单元;用于输出电路描述程序的程序输出单元;用于产生表示根据电路描述程序中描述的设计通过使用一个或多个硬件元件而实现的电路的特征的标识的产生单元;以及用于输出已产生标识的标识输出单元。
在上述结构中,程序转换装置输出根据电路描述程序描述的设计实现的电路的标识。因此,参照输出的标识,装置用户可以判断根据电路描述程序描述的设计实现的电路是否具有他/她所需的特征。如果判定没有满足特征,用户可以容易地发展更好的程序转换计划。通过重复(i)输入操作描述程序和(ii)参照输出标识容易地发展更好的程序转换计划的操作,用户可以获得描述具有他/她所需特征的电路设计的电路描述程序。
该程序转换装置还可以包括能够在转换单元执行转换之前接收表示实现系列操作的电路的用户所需特征的计划的计划接收单元,其中转换单元基于计划将操作描述程序转换为电路描述程序。
具有这种结构,程序转换装置可以基于从用户接收的计划而将操作描述程序转换为电路描述程序。因此用户可以获得描述具有他/她所需特征的电路的设计的电路描述程序。
在程序转换装置中,产生单元可以产生包括由接收的计划表示的特征的标识。
具有这种结构,程序转换装置产生表示与计划相同的特征的标识。因此,参照输出的标识,用户可以容易地判断根据电路描述程序描述的设计实现的电路是否具有用户所需特征。
在程序转换装置中,(i)用户所需特征可以是用户已指定的硬件元件的分配,(ii)计划接收单元可以接收作为计划的模板,模板相应地包含(a)用户已指定的硬件元件的电路图和(b)说明用户已指定的硬件元件的处理操作的操作信息,(iii)如果操作描述程序具有执行由所接收的模板中包含的操作信息表示的处理操作的第一部分,则转换单元可以产生用于为该第一部分分配对应于操作信息的电路图所示的硬件元件的电路描述程序。
根据上述结构,程序转换装置使用从用户接收的模板产生电路描述程序。由于用户为程序转换装置输入模板,程序转换装置能够为根据电路描述程序描述的设计而实现的电路分配他/她所需的硬件。因此,用户能够获得描述表示分配了用户指定硬件的电路的设计的电路描述程序。
在程序转换装置中,(i)计划接收单元还可以接收用于在操作描述程序中指定可分配部分的分配图形,可分配部分是指可以分配由模板所含电路图表示的硬件元件的部分,(ii)转换单元可以产生用于仅为同样由分配图形指定为可分配部分的第一部分分配对应于操作信息的电路图所示的硬件元件而不为分配图形没有指定为可分配部分的第一部分分配的电路描述程序。
具有这种结构,程序转换装置可以在操作描述程序中区分根据分配图形分配用户指定硬件的部分和没有分配硬件的部分。
在程序转换装置中,(i)在转换单元执行转换之前,产生单元可以预测(a)设计和(b)表示根据预测设计实现的电路的特征的标识,并且(ii)在转换单元执行转换之前,标识输出单元可以输出预测的标识。
上述结构使程序转换装置能够在将操作描述程序转换为电路描述程序之前预测标识并输出预测的标识。以这种方式,用户可以在输出电路描述程序之前确认预测的标识。因此,基于该预测结果,用户能够预先预测根据将要输出的电路描述程序描述的设计实现的电路是否具有他/她所需的特征。
在程序转换装置中,产生单元可以已经预先存储了用于执行预测的预测信息,并基于预测信息和预测的设计而预测标识。
上述结构使程序转换装置能够基于预先存储的预测信息而预测标识。
在程序转换装置中,(i)预测信息可以由(a)本身是过去已经产生的电路描述程序的产生程序和(b)表示根据在产生程序中描述的设计实现的电路特征的产生标识构成,(ii)产生单元可以在操作描述程序中搜索执行与产生的程序的一部分相同的处理操作的第二部分,并通过(a)为第二部分分配基于产生标识的产生的部分标识和(b)为操作描述程序除第二部分以外的部分分配已经预测的预测部分标识来预测标识。
上述结构使程序转换装置能够基于产生的程序和产生的标识来预测标识。
程序转换装置还可以包括能够接收模板的模板接收单元,该模板相应地包含(i)用户已经指定的硬件元件的电路图和(ii)说明用户已经指定的硬件元件的处理操作的操作信息,其中如果操作描述程序具有执行由所接收模板包含的操作信息说明的处理操作的第一部分,则转换单元通过为该第一部分分配对应于操作信息的电路图说明的硬件元件来预测设计。
根据上述结构,程序转换装置使用从用户接收的模板产生电路描述程序。通过用户为程序转换装置输入模板,程序转换装置能够为根据电路描述程序中描述的设计实现的电路分配他/她所需硬件。因此,用户可以获得描述分配了用户所需硬件的电路的设计的电路描述程序。
在程序转换装置中,(i)模板接收单元还可以接收用于在操作描述程序中指定可分配部分的分配图形,该可分配部分是指可以分配由模板所含电路图所示硬件元件的部分,(ii)如果操作描述程序具有用于执行由所接收模板中包含的操作信息说明的处理操作的第一部分,则产生单元可以通过将对应于操作信息的电路图示出的硬件元件仅分配给同样由分配图形指定为可分配部分的第一部分而不分配给没有由分配图形指定为可分配部分的第一部分来预测设计。
具有上述结构,程序转换装置能够在操作描述程序中区分由分配图形分配了用户指定硬件的部分和没有分配硬件的部分。
在程序转换装置中,(i)电路特征可以是电路面积,(ii)标识可以是表示根据电路描述程序所描述的设计实现的电路面积的面积标识,(iii)产生单元可以(a)获得实现电路时要分配的一个或多个硬件元件的各自面积,(b)计算所获面积的总和,(c)将所计算的总和作为面积标识。
具有上述结构,程序转换装置输出作为标识并由电路描述程序描述的电路的面积。因此,参照输出的标识(面积),用户可以判断根据电路描述程序描述的设计实现的电路是否具有用户所需特征。
在程序转换装置中,(i)电路特征可以是电路的执行时间,(ii)标识可以是表示根据电路描述程序描述的设计实现的电路的执行时间的执行时间标识,(iii)产生单元可以(a)基于设计,确定将要分配的一个或多个硬件元件的不同元件所属的执行周期,(b)基于该确定,获得执行周期数和每个执行周期的时间单元,(c)使用所获得的执行周期数和时间单元计算电路的执行时间,(d)将计算的执行时间作为执行时间标识。
具有上述结构,程序转换装置输出作为标识并由电路描述程序描述的电路的执行时间。因此,参照输出标识(执行时间),用户可以判断根据电路描述程序描述的设计实现的电路是否具有用户所需特征。
在程序转换装置中,(i)电路特征可以是电路的能耗,(ii)标识可以是表示根据电路描述程序描述的设计实现的电路的能耗的能耗标识,(iii)产生单元可以(a)基于由设计所示的一个或多个硬件元件之间的连接条件计算的电路的能耗,(b)将计算的能耗作为能耗标识。
具有上述结构,程序转换装置输出作为标识并由电路描述程序描述的电路的能耗。因此,参照输出标识(能耗),用户可以判断根据电路描述程序描述的设计实现的电路是否具有用户所需特征。
在程序转换装置中,(i)电路特征可以是电路描述程序的代码尺寸,(ii)产生单元可以(a)计算电路描述程序的代码尺寸,(b)将计算代码尺寸作为标识。
具有上述结构,程序转换装置输出作为标识电路描述程序描述的代码的代码尺寸。因此,参照输出标识(代码尺寸),用户可以判断根据电路描述程序描述的设计实现的电路是否具有用户所需特征。
在程序转换装置中,(i)电路特征可以是表示电路面积和执行时间之间的相关性的相关信息,(ii)标识可以是表示根据电路描述程序描述的设计实现的电路中相关性的相关信息标识,(iii)产生单元可以(a)计算根据设计实现的电路的面积和执行时间,(b)基于电路的计算面积和执行时间获得相关性信息,(c)将获得的相关性信息作为相关信息标识。
具有上述结构,程序转换装置输出作为标识并由电路描述程序描述的电路的面积和执行时间之间的相关性。因此,参照输出标识(相关性信息),用户可以判断根据电路描述程序描述的设计实现的电路是否具有用户所需特征。
在程序转换装置中,(i)电路特征可以是电路图,(ii)标识可以是表示根据电路描述程序描述的设计实现的电路的电路图,(iii)产生单元可以基于设计所示的一个或多个硬件元件之间的连接条件产生电路的电路图,并将产生的电路图作为标识。
具有上述结构,程序转换装置输出作为标识并由电路描述程序描述的电路的电路图。因此,参照输出标识(电路图),用户可以判断根据电路描述程序描述的设计实现的电路是否具有用户所需特征。
在程序转换装置中,(i)电路特征可以是至少包含下面特征中两种的组合特征:(a)电路面积;(b)电路执行时间;(c)表示电路面积和执行时间之间相关性的相关信息;(d)电路图;(e)电路描述程序的代码尺寸,(ii)标识可以是表示根据电路描述程序中描述的设计实现的电路的组合特征的组合标识,(iii)产生单元可以产生组合标识,(iv)标识输出单元可以输出产生的组合标识。
具有上述结构,程序转换装置输出作为标识并至少由下面特征中两种构成的组合标识:a)电路面积;(b)电路执行时间;(c)表示电路面积和执行时间之间相关性的相关信息;(d)电路图;(e)电路描述程序的代码尺寸。因此,参照输出标识(组合标识),用户可以判断根据电路描述程序描述的设计实现的电路是否具有用户所需特征。
附图说明
参考描述本发明的特定实施例的附图,从下面的描述中本发明的这些和其它目标、优点和特征将是显而易见的。
在附图中:
图1是示出程序转换装置1的结构方框图;
图2是示出高级综合装置100的结构方框图;
图3示意性示出了如何将行为描述D11转换为数据流图D20;
图4是RTL描述D13的示例;
图5是示出高级综合装置100操作的流程图;
图6是示出在转换标识产生单元121中产生程序转换标识的示例性操作流程图;
图7是示出程序转换装置1000的结构方框图;
图8是示出高级综合装置1100的结构方框图;
图9示出了模板D121的示例;
图10示意性示出了如何使用包含在模板D121中的数据流图D131;
图11示出了由高级综合装置1100通知的图G10的示例;
图12是示出高级综合装置1100的操作流程图;
图13是示出在面积/执行时间预测单元1123中预测面积和执行时间的示例性操作流程图。
具体实施方式
1.第一实施例
下面描述结合在本发明第一实施例中的程序转换装置1。
1.1程序转换装置1的结构
如图1所示,程序转换装置1包括输入程序接收单元10、转换计划接收单元11、输入程序转换单元12、目标程序输出单元13和程序转换标识通知单元14。
特别地,程序转换装置1是由微处理器、ROM、RAM、硬盘单元等构成的计算机系统。计算机程序存储在ROM或硬盘单元中。程序转换装置1通过微处理器根据计算机程序运行来实现其功能。
程序转换装置1将以高级语言编写的程序(此后,将其称为“输入程序”)转换为另一种程序(此后,将其称为“目标程序”)。
程序转换装置1接收作为转换目标的输入程序以及说明转换计划的信息(此后,将其称为“程序转换计划”)。基于接收的程序转换计划,程序转换装置1将输入程序转换为目标程序,并输出转换后的目标程序和该目标程序的程序转换标识。
程序转换计划的示例包括:用于最小化转换后的目标程序的执行时间的信息;用于最小化转换后的目标程序的代码尺寸的信息;用于将目标程序的执行时间设定为等于或低于预定值的信息;用于最小化由目标程序描述的硬件面积的信息(当目标程序为硬件技术信息时)。
程序转换标识是对应于输入的程序转换计划的信息。程序转换标识的示例包括:转换后的目标程序的执行时间或代码尺寸;以及目标程序描述的硬件面积(当目标程序为硬件技术信息时)。
(1)输入程序接收单元10
输入程序接收单元10接收输入程序D1并将接收的输入程序D1输出到输入程序转换单元12。
(2)转换计划接收单元11
转换计划接收单元11接收程序转换计划D2并将接收的程序转换计划D2输出到输入程序转换单元12。
(3)输入程序转换单元12
如图1所示,输入程序转换单元12包括目标程序产生单元20和转换标识产生单元21。
(3.1)目标程序产生单元20
目标程序产生单元20从输入程序接收单元10接收输入程序D1并且从转换计划接收单元11接收程序转换计划D2。
基于程序转换计划D2,目标程序产生单元20将输入程序D1转换为目标程序D3。
例如,在程序转换装置1为高级综合装置的情况下,目标程序产生单元20将输入程序D1转换为以RTL描述的程序。另一方面,如果程序转换装置1具有编译功能,则目标程序产生单元20将输入程序D1转换为以机器语言(例如汇编语言)描述的程序。
然后,目标程序产生单元20将产生的目标程序D3输出到目标程序输出单元13。
(3.2)转换标识产生单元21
转换标识产生单元21基于由目标程序产生单元20产生的目标程序的描述而产生程序转换标识D4。
然后,转换标识产生单元21将产生的程序转换标识D4输出到程序转换标识通知单元14。
(4)目标程序输出单元13
在从输入程序转换单元12的目标程序产生单元20接收到目标程序D3时,目标程序输出单元13将接收的目标程序D3输出到,例如,存储设备(未示出)。
可以将存储设备设置在程序转换装置1的内部或外部。
(5)程序转换标识通知单元14
在从输入程序转换单元12的转换标识产生单元21接收到程序转换标识D4时,程序转换标识通知单元14将接受的程序转换标识D4通知给用户。
例如,程序转换标识通知单元14将程序转换标识D4输出到与程序转换装置1相连接的显示设备(未示出)。
显示设备显示程序转换标识D4。以这种方式,程序转换标识通知单元14可以通过显示设备将程序转换标识D4通知给用户。
1.2程序转换装置1的特定实施例
下面描述作为程序转换装置1的特定示例的高级综合装置100的结构和操作。
(1)高级综合装置100的结构
如图2所示,高级综合装置100包括行为描述接收单元110、硬件分配信息接收单元111、转换单元112、RTL描述输出单元113和通知单元114。
特别地,高级综合装置100是由微处理器、ROM、RAM、硬盘单元等构成的计算机系统。计算机程序存储在ROM或硬盘单元中。高级综合装置100通过微处理器根据计算机程序运行而实现其功能。
高级综合装置100接收由行为描述表达的程序(以后,将其称为“行为描述”)D11作为输入程序。高级综合装置100还接收硬件分配信息D12作为程序转换计划。硬件分配信息D12的示例包括:用于最小化由目标程序描述的硬件面积的信息;用于最小化硬件执行时间的信息。
基于接收的硬件分配信息D12,高级综合装置100将行为描述D11转换为目标程序,即以RTL描述的程序(以后,将其称为“RTL描述”)D13。然后,高级综合装置100输出(i)转换后的RTL描述D13和(ii)包括电路图的转换标识D14,该电路图为包含用于RTL描述D13的程序转换标识的多个项目之一
参照转换计划,用户可以判断该高级综合装置是否已经产生了描述具有他/她所需特征的电路的RTL描述D13。
(1.1)行为描述接收单元110
行为描述接收单元110为前述输入程序接收单元10的等同物。
行为描述接收单元110从用户接收行为描述D11并将接收的行为描述D11输出到转换单元112。
这里,行为描述表示以诸如C程序设计语言的高级语言编写的程序。
(1.2)硬件分配信息接收单元111
硬件分配信息接收单元111为前述转换计划接收单元11的等同物。
硬件分配信息接收单元111从用户接收硬件分配信息D12并将接收的硬件分配信息D12输出到转换单元112。
(1.3)转换单元112
转换单元112为前述输入程序转换单元12的等同物。
如图2所示,转换单元112包括RTL描述产生单元120和转换标识产生单元121。
(1.3.1)RTL描述产生单元120
RTL描述产生单元120为前述目标程序产生单元20的等同物,而转换标识产生单元121为前述转换标识产生单元21的等同物。
如图2所示,RTL描述产生单元120包括DFG转换单元130、硬件分配单元131和RTL描述转换单元132。
(DFG转换单元130)
DFG转换单元130从行为描述接收单元110接收行为描述D11。
DFG转换单元130将接收的行为描述D11转换为数据流图(DFG)D20,并将转换后的数据流图D20输出到硬件分配单元131。
数据流图是定向图。通过将行为描述的操作表达为节点而将由行为描述描述的处理转换为定向图。图3示例性示出了如何将行为描述D11转换为数据流图D20。数据流图D20包含作为表达操作的节点的节点D21、D22、D23、D24和D25。节点D21和D22表示乘法,而节点D23、D24和D25表示加法。
注意,用于将行为描述转换为DFG的方法是公知的,因此在这里忽略了其描述。
(硬件分配单元131)
硬件分配单元131从硬件分配信息接收单元111接收硬件分配信息D12并从DFG转换单元130接收数据流图D20。
基于接收的硬件分配信息D12并使用数据流图D20,硬件分配单元131分配硬件。
下面描述分配硬件的示例性操作。
高级综合装置100将要产生的目标程序为RTL描述。由于RTL描述为电路图,其包括彼此相连接的一个或多个算术逻辑单元(ALU)。在将行为描述D11转换为RTL描述的过程中,硬件分配为确定如何将ALU分配到通过转换行为描述而获得的数据流图D20的操作节点的过程。
例如,图3中的数据流图D20包括两个乘法节点D21和D22和三个加法节点D23、D24和D25。在硬件分配信息为用于最小化硬件执行时间的信息的情况下,硬件分配单元131准备两个乘法器,并将一个乘法器分配给节点D21而将另一个分配给节点D22,以使每个乘法器在不同节点上执行操作。以这种方式,可以并行执行两个乘法。相似地,硬件分配单元131为每个加法节点D23、D24和D25分配一个加法器。这种分配方法可以最小化硬件的执行时间。由于通常每个周期只允许一个ALU执行其操作一次,上述分配方法使全部五个分配的ALU能够在一个周期中执行其操作。然而在这种情况中,由于是将不同的ALU分配给每个操作节点,硬件面积自然很大。
相反,在硬件分配信息为用于最小化硬件面积的信息的情况下,以与前述方式不同的方式执行硬件分配。例如,硬件分配单元131将同一个乘法器分配给乘法节点D21和D22。在这种结构中,虽然不能并行执行两个操作(乘法),单元由于仅有一个乘法器,硬件面积小于前述情况。相似地,硬件分配单元131将同一个加法器分配给加法节点D23、D24和D25。
(RTL描述转换单元132)
基于由硬件分配单元131执行的ALU分配,RTL描述转换单元132产生RTL描述D13并将产生的RTL描述D13输出到RTL描述输出单元113。
图4示出了基于图3所示的行为描述的RTL描述D13的一部分。图4所示的RTL描述D13首先在线路描述中声明数据类型,然后在描述P10中描述操作tmp0。在P10之后是操作tmp1和Y的描述。RTL描述的细节是公知的,因此在这里忽略了其描述。
(1.3.2)转换标识产生单元121
转换标识产生单元121基于已经由RTL描述转换单元132产生的RTL描述D13描述的硬件信息而产生电路图。而且,根据硬件分配信息所示的信息,转换标识产生单元121从产生的电路图计算表达硬件面积、硬件执行时间等的数值(此后,将其称为“计算值”)。然后,转换标识产生单元121将电路图和计算值作为转换标识D14输出到通知单元114。
例如,在硬件分配信息表示用于最小化硬件面积的信息时,转换标识产生单元121基于已经由RTL描述转换单元132产生的RTL描述D13描述的硬件信息而获得每个不同ALU的各自面积。然后,转换标识产生单元121计算所得面积的总和,并将计算的面积总和作为电路图连同计算值输出到通知单元114。
这里,允许高级综合装置100已经预先存储了或从用户接收了每个不同ALU的各自面积。或者,高级综合装置100可以从外部装置获得每个不同ALU的各自面积。
另一方面,在硬件分配信息表示用于最小化硬件执行时间的信息的情况下,转换标识产生单元121基于由RTL描述D13所表示的硬件信息通过使用下面的计算公式计算硬件的执行时间:[执行周期数×每个周期所需时间(秒)]。转换标识产生单元12将计算的执行时间作为计算值连同电路图输出到通知单元114。注意,可以从产生的DFG获得上述计算公式的参数,“执行周期数”和“每个周期所需时间”。
(1.4)RTL描述输出单元113
RTL描述输出单元113为前述目标程序输出单元13的等同物。
在从RTL描述转换单元132接收RTL描述D13时,RTL描述输出单元113将接收的RTL描述D13输出到存储设备(例如,硬盘单元)。
RTL描述D13的输出目的地并不局限于硬盘单元。可以将RTL描述D13输出到任何具有能够存储RTL描述D13的区域的目的地。
(1.5)通知单元114
通知单元114为前述程序转换标识通知单元14的等同物。
在从转换标识产生单元121接收电路图和计算值时,通知单元114将接收的电路图和计算值作为转换标识D14通知给用户。
例如,通知单元114将转换标识D14输出到与高级综合装置100相连的显示设备(未示出)。然后,显示设备显示转换标识D14。以这种方式,通知单元114可以通过显示设备将转换标识D14通知给用户。
(2)高级综合装置100的操作
参照图5所示的流程图,下面描述高级综合装置100的操作。
行为描述接收单元110从用户接收行为描述D11(步骤S5)。
硬件分配信息接收单元111从用户接收硬件分配信息D12(步骤S10)。
DFG转换单元130将接收的行为描述D11转换为数据流图D20(步骤S15)。
基于接收的硬件分配信息D12,硬件分配单元131使用数据流图D20分配硬件(ALU)(步骤S20)。
基于硬件分配单元131执行的ALU分配,RTL描述转换单元132产生RTL描述D13(步骤S25)。
转换标识产生单元121通过(i)基于已经由RTL描述转换单元132产生的RTL描述D13描述的硬件信息产生电路图,(ii)从产生的电路图使用硬件分配信息所表示的示信息计算计算值来产生程序转换标识(步骤S30)。
RTL描述输出单元113将产生的RTL描述D13输出到存储设备(步骤S35)。
通知单元114通过向显示设备输出产生的电路和计算值作为转换标识D14而将转换标识D14通知给用户(步骤S40)。
(3)产生程序转换标识的示例
参照图6所示的流程图,下面描述图5所示的步骤S30中产生程序转换标识的示例操作。
注意,计算值表示硬件的面积。
转换标识产生单元121基于已经由RTL描述转换单元132产生的RTL描述D13描述的硬件信息而产生电路图(步骤S50)。
转换标识产生单元121基于已经由RTL描述转换单元132产生的RTL描述D13描述的硬件信息而获得一个或多个分配的ALU的不同个体的面积。(步骤S55)。
转换标识产生单元121计算该一个或多个所获面积的总和(步骤S60)。
转换标识产生单元121将面积总和作为计算值连同电路图输出到通知单元114(步骤S65)。
注意,在步骤S55中,转换标识产生单元121可以通过以下方式获得不同ALU的个体面积:(i)从已经预先存储的存储单元或(ii)通过从用户接收。或者,转换标识产生单元121可以从外部装置获得上述个体面积。
(4)特定实施例概述
如前面所述,高级综合装置接收输入程序(由行为描述表达的程序)和程序转换计划(硬件分配信息),并输出目标程序(由RTL描述表达的程序)和程序转换标识(电路图和计算值)。
取决于用户所需特征(例如,最小面积、最短执行时间等),由高级综合装置输出的RTL描述具有不同的最佳ALU分配方法。
如已经在上述特定实施例中描述的那样,高级综合装置接收硬件分配信息作为输入并输出程序转换标识。这使装置的用户能够容易地指定分别分配到DFG所示的操作的ALU或者通过参考输出电路图而确认分配的ALU、分配的ALU数量、电路面积等。
同样,上述高级综合装置将程序转换标识(电路图和计算值)通知给用户。因此,参照已经由高级综合装置100通知的电路图和计算值,用户可以判断产生的电路是否具有他/她所需特征。如果判断该电路不具有该特征,则用户再次检查硬件分配信息,并且将行为描述和再次检查的硬件分配信息输入到高级综合装置100。通过重复这种操作,用户可以获得具有他/她所需特征的电路。
参照电路图,装置的用户还可以容易地判断硬件测试的容易程度。考虑电路图,装置的用户可以发展关于更加容易地测试硬件的思路。再次将用户的思路作为程序转换计划(这里为硬件分配信息)输入到高级综合装置。然后,高级综合装置100再次执行高级合成任务,并输出与通过高级综合早前产生的硬件信息相比更加易于测试的硬件信息(基于RTL描述的信息)。当用户重复上述操作时,高级综合装置产生比之前更加易于测试的硬件信息。如果重复高级综合直到硬件测试的容易程度到达用户所需水平,则用户可以最终获得他/她所需的硬件信息。
2.第二实施例
下面描述结合在本发明第二实施例中的程序转换装置1000。
2.1程序转换装置1000的结构
如图7所示,程序转换装置1000包括输入程序接收单元1010、转换计划接收单元1011、输入程序转换单元1012、目标程序输出单元1013、程序转换标识通知单元1014、程序转换结果存储单元1015、输入程序转换预测单元1016。
特别地,程序转换装置1000是由微处理器、ROM、RAM、硬盘单元等构成的计算机系统。计算机程序存储在ROM或硬盘单元中。程序转换装置1000通过微处理器根据计算机程序运行而实现其功能。
如第一实施例中的程序转换装置1那样,程序转换装置1000将输入程序转换为目标程序。
程序转换装置1000接收作为转换目标的输入程序和程序转换计划。基于接收的程序转换计划,程序转换装置1000预测将输入程序转换为目标程序的结果,并将预测结果通知给用户。
用户参考通知的预测结果。如果用户已经输入的程序转换计划没有问题,则用户输入用于指示输入程序转换的信息(此后将其称为“转换指示”)。如果用户想改变他/她已经输入的程序转换计划,则用户重新输入程序转换计划。
如果程序转换装置1000在将预测结果通知给用户后接收转换指示,程序转换装置1000根据程序转换计划转换输入程序,并输出转换后的目标程序和用于该目标程序的程序转换标识。
如果程序转换装置1000在将预测结果通知给用户之后再次接收程序转换计划,则程序转换装置1000基于再次接收的程序转换计划预测将输入程序转换为目标程序的结果,并将预测结果通知给用户。
如第一实施例中的那样,程序转换计划的示例包括:用于最小化转换后的目标程序的执行时间的信息;用于最小化转换后的目标程序的代码尺寸的信息;用于将目标程序执行时间设定为等于或低于预定值的信息;以及用于最小化由目标程序描述的硬件的面积的信息(当目标程序为硬件技术信息时)。
如第一实施例中的那样,程序转换计划为对应于输入程序转换计划的信息。程序转换计划的示例包括转换后的目标程序的执行时间或代码尺寸,以及在目标程序为硬件技术信息时时目标程序描述的硬件面积。
(1)输入程序接收单元1010
输入程序接收单元1010接收输入程序D101,并将接收的输入程序D101输出到输入程序转换预测单元1016。
(2)转换计划接收单元1011
转换计划接收单元1011接收程序转换计划D102,并将接收的程序转换计划D102输出到程序转换预测单元1016。
在从用户接收到转换指示时,转换计划接收单元1011将接收的转换指示输出到输入程序转换预测单元1016。
(3)程序转换结果存储单元1015
程序转换结果存储单元1015具有用于存储(i)过去已经转换的一个或多个目标程序和(ii)与过去已经转换的一个或多个目标程序一一对应的并用于预测转换的多段使用信息的区域。
使用信息的示例包括:目标程序的执行时间;目标程序的代码尺寸;以及由目标程序描述的硬件的面积(当目标程序为硬件技术信息时)。
(4)输入程序转换预测单元1016
输入程序转换预测单元1016从输入程序接收单元1010接收输入程序D101,并将接收的输入程序D101临时存储在其中。
输入程序转换预测单元1016从转换计划接收单元1011接收转换指示或程序转换计划D102。
输入程序转换预测单元1016判断其已经从转换计划接收单元1011接收了上述两个中的哪一个。如果输入程序转换预测单元1016判断其已经接收了转换指示,则其将接收的转换指示输出到输入程序转换单元1012。
另一方面,如果输入程序转换预测单元1016判断其已经接收了程序转换计划D102,则将接收的程序转换计划D102临时存储在其中并执行下面的操作。
基于接收的程序转换计划D102,并使用均存储在程序转换结果存储单元1015中的(i)一个或多个目标程序和(ii)对应于其的多段使用信息,输入程序转换预测单元1016预测对应于输入程序D101的目标程序的程序转换标识。
输入程序转换预测单元1016将预测结果输出到目标程序输出单元1013。
这里,预测结果是对应于接收的程序转换计划的信息。例如,在程序转换计划为用于最小化目标程序的执行时间的信息的情况下,预测结果表示目标程序的执行时间。相似地,在程序转换计划为用于最小化目标程序的代码尺寸的信息的情况下,预测结果表示目标程序的代码尺寸。在程序转换计划为用于最小化由目标程序描述的硬件的面积的信息的情况下,预测结果表示由目标程序描述的硬件的面积。
(5)输入程序转换单元1012
如图7所示,输入程序转换单元1012包括目标程序产生单元1020和转换标识产生单元1021。
(5.1)目标程序产生单元1020
在从输入程序转换预测单元1016接收转换指示时,目标程序产生单元1020将临时存储在输入程序转换预测单元1016中的输入程序D101转换为符合预测结果的目标程序D103。
目标程序产生单元1020将产生的目标程序D103输出到目标程序输出单元1013。
(5.2)转换标识产生单元1021
转换标识产生单元1021获得(i)由目标程序产生单元1020产生的目标程序D103和(ii)通过使用输入程序转换预测单元1016作出的预测获得的使用信息。转换标识产生单元1021将目标程序D103和获得的使用信息存储到程序转换结果存储单元1015。
然后,转换标识产生单元1021基于已经由目标程序产生单元1020产生的目标程序D103的描述而产生程序转换标识D104,并将产生的程序转换标识D104输出到程序转换标识通知单元1014。
(6)目标程序输出单元1013
由于目标程序输出单元1013执行与第一实施例中描述的目标程序输出单元13相同的操作,这里忽略了对其的解释。
(7)程序转换标识通知单元1014
在从输入程序转换预测单元1016接收到预测结果时,程序转换标识通知单元1014将接收的预测结果通知给用户。
在从输入程序转换单元1012接收程序转换标识D104时,程序转换标识通知单元1014将接收的程序转换标识D104通知给用户。
例如,程序转换标识通知单元1014将程序转换标识D104输出到与程序转换装置1000相连接的显示设备(未示出)。
显示设备显示程序转换标识D104。以这种方式,程序转换标识通知单元1014可以通过显示设备将程序转换标识D4通知给用户。
2.2程序转换装置1000的特定实施例
下面描述作为程序转换装置1000的特定实施例的高级综合装置1100的结构和操作。
(1)高级综合装置1100的结构
如图8所示,高级综合装置1100包括:行为描述接收单元1110;接收单元1111;产生单元1112;RTL描述输出单元1113;图通知单元1114;转换结果存储单元1115和转换预测单元1116。
特别地,高级综合装置1100是由微处理器、ROM、RAM、硬盘单元等构成的计算机系统。计算机程序存储在ROM或硬盘单元中。高级综合装置1100通过微处理器根据计算机程序运行而实现其功能。
高级综合装置1100接收行为描述D111作为输入程序并且接收转换计划D112作为程序转换计划。
基于接收的转换计划D112,高级综合装置1100将行为描述D111转换为作为目标程序的RTL描述D113,并输出转换后的RTL描述D113和作为RTL描述D113的程序转换标识的图D114。例如,图D114表示硬件的执行时间和面积之间的关系。
参照图D114。用户可以判断该装置是否已经产生了描述具有用户所需特征的电路的RTL描述D113。
(1.1)行为描述接收单元1110
行为描述接收单元1110为前述输入程序接收单元1010的等同物。
行为描述接收单元1110从用户接收行为描述D111,并将接收的行为描述D111输出到转换预测单元1116。
(1.2)接收单元1111
接收单元1111为前述转换计划接收单元1011的等同物。
接收单元1111从用户接收转换计划D112和转换指示。
这里,转换计划D112为由模板D121和模板分配图形D122构成的信息或仅由模板D121构成的信息。
模板D121包含(i)数据流图(DFG)和(ii)DFG所示的电路的RTL描述的组合。图9示出了模板D121的示例。注意,在图9中,为了简化,以电路图的形式示出了RTL描述。包含在图9所示的模板D121中的数据流图D131表示操作[Y=P×Q+R]。电路图(RTL描述)D132为由数据流图D131所表示的电路图。可以使用执行乘积-求和操作的ALU来执行数据流图D131的操作(乘法和加法)。
例如,模板分配图形D122为用于在输入程序中指定(i)要分配模板D121的部分和(ii)不要分配模板D121的部分的信息。
在接收到转换指示时,接收单元1111将接收的转换指示输出到转换预测单元1116。
如图8所示,接收单元1111包括模板接收单元1130和模板分配图形接收单元1131。
在从用户接收到模板D121时,模板接收单元1130将接收的模板D121输出到转换预测单元1116。
在从用户接收到模板分配图形D122时,模板分配图形接收单元1131将接收的模板分配图形D122输出到转换预测单元1116。
(1.3)转换结果存储单元1115
转换结果存储单元1115为程序转换结果存储单元1015的等同物。
转换结果存储单元1115具有用于存储已经从行为描述转换的RTL描述及其使用信息的区域。
这里,使用信息由通过RTL描述描述的硬件的面积和执行时间构成。
(1.4)转换预测单元1116
转换预测单元1116为输入程序转换预测单元1016的等同物。
转换预测单元1116从行为描述接收单元1110接收行为描述D111,并在其中临时存储接收的行为描述D111。
转换预测单元1116从接收单元1111接收转换指示或转换计划D112。
转换预测单元1116判断其已经从接收单元1111接收了上述两个中的哪一个。如果转换预测单元1116判断其已经接收了转换指示,则其将接收的转换指示输出到产生单元1112。
另一方面,如果转换预测单元1116判断其已经接收了转换计划D112,则其在其中临时存储接收的转换计划D112。
如图8所示,转换预测单元1116包括DFG转换单元1120、模板匹配单元1121、硬件分配单元1122和面积/执行时间预测单元1123。
(DFG转换单元1120)
DFG转换单元1120从行为描述接收单元1110接收行为描述D111。
DFG转换单元1120将接收的行为描述D111转换为数据流图(DFG),并将转换后的数据流图输出到模板匹配单元1121。
由于用于将行为描述转换为DFG的方法是公知的,这里忽略了其描述。
(模板匹配单元1121)
模板匹配单元1121执行的处理是在已经由DFG转换单元1120转换的数据流图中搜索与模板D121中所含的数据流图D131的一部分形状相同的部分。
模板匹配单元1121从接收单元1111接收转换计划并从DFG转换单元1120接收数据流图。
例如,如果转换计划D112由模板D121和模板分配图形D122构成,则模板匹配单元1121从模板接收单元1130接收模板D121并从模板分配图形接收单元1131接收模板分配图形D122。另一方面,如果转换计划D112仅由模板D121构成,则模板匹配单元1121从模板接收单元1130接收模板D121。
根据接收的转换计划D112,模板匹配单元1121在转换的数据流图中搜索与模板D121中所含的数据流图D131的一部分形状相同的部分-因此该部分可以被分配有硬件。
(硬件分配单元1122)
基于由模板匹配单元1121执行的搜索的结果,硬件分配单元1122将硬件分配给转换的数据流图。
这里,对于转换的数据流图中可以被分配模板D121的部分,硬件分配单元1122分配模板D121。相反,对于转换的数据流图中不可以被分配模板D121的部分,硬件分配单元1122用与第一实施例中描述的相同方法分配ALU。
参照图10,下面描述将图9所示的数据流图D131分配到图3所示的数据流图D20的情况。注意,这里转换计划D112仅由模板D121构成。
模板匹配单元1121搜索与数据流图D131的一部分相匹配的数据流图D20的部分,并从数据流图D20获得部分数据流图D140和D141。
硬件分配单元1122将数据流图D131分配给部分数据流图D140和D141,并且将加法器分配给操作节点D142。
如果高级综合装置1100作为模板分配图形D122接收用于仅将数据流图D131分配给部分数据流图D140而不分配给数据流图D20的其它部分的信息,则硬件分配单元1122将数据流图D131分配给部分数据流图D140,同时用与第一实施例中描述的相同分配方法将ALU分配给其它操作节点。
(面积/执行时间预测单元1123)
面积/执行时间预测单元1123基于存储在转换结果存储单元1115中的(i)由硬件分配单元1122执行的ALU分配的结果和(ii)一个或多个RTL描述和与一个或多个RTL描述一一对应的多段使用信息来预测对应于输入程序的目标程序的程序转换标识。这里,面积/执行时间预测单元1123产生作为程序转换标识的预测结果的表示目标程序(RTL描述)描述的硬件的执行时间和面积之间的关系的图。
面积/执行时间预测单元1123将产生的图输出到图通知单元1114。
下面描述用于产生图的方法。
面积/执行时间预测单元1123在二维平面上绘制分别对应于不同ALU分配图形之一的多段使用信息,该ALU分配图形(此后将其称为“实际分配图形”)由存储在转换结果存储单元1115中的一个或多个RTL描述进行描述。在二维平面上,横轴表示面积而纵轴表示执行时间。因此,要绘制的坐标是(面积,执行时间)。
面积/执行时间预测单元1123将(i)一个或多个实际分配图形与(ii)由硬件分配单元1122设定的ALU分配图形(此后将其称为“测试分配图形”)进行比较。在比较之后,关于测试分配图形与实际分配图形的一部分相同的部分,面积/执行时间预测单元1123使用实际分配图形计算测试分配图形的相同部分的面积和执行时间。关于测试分配图形与实际分配图形的任何部分均不同的部分,面积/执行时间预测单元1123使用测试分配图形计算该测试分配图形的不同部分的面积和执行时间。然后,面积/执行时间预测单元1123获得各面积的总和以及各执行时间的总和,并将它们绘制在二维平面上。
使用绘制的坐标和最小二乘法,面积/执行时间预测单元1123产生表示由对应于输入程序的目标程序(RTL描述)描述的硬件的面积和执行时间之间的关系的图。
图11示出了由面积/执行时间预测单元1123产生的图G10的示例。在图11中,横轴表示面积;越接近横轴的右手端面积变得越大。另一方面,纵轴表示执行时间;越接近纵轴的上端执行时间变得越短。
首先,在二维平面上,面积/执行时间预测单元1123绘制作为与一个或多个实际分配图形一一对应的多段使用信息(面积和执行时间)的坐标P100到P104。接下来,面积/执行时间预测单元1123绘制对应于测试分配图形的坐标P105。将最小二乘法应用到绘制的坐标P100到P105而得到图G10。
虽然结合在产生图的前述方法中,最小二乘法不是必需的。可以用确实可以产生图的任何其它方法来产生图。
(1.5)产生单元1112
产生单元1112为前述输入程序转换单元1012的等同物,并如图8所示,包括RTL描述转换单元1141和转换标识产生单元1142。
RTL描述转换单元1141为前述目标程序产生单元1020的等同物,而转换标识产生单元1142为前述转换标识产生单元1021的等同物。
(RTL描述转换单元1141)
在从转换预测单元1116接收到转换指示时,RTL描述转换单元1141通过基于由硬件分配单元1122执行的ALU分配而将临时存储在转换预测单元1116中的行为描述D111转换为RTL描述D113来产生RTL描述D113。然后,RTL描述转换单元1141将产生的RTL描述D113输出到RTL描述输出单元1113。
(转换标识产生单元1142)
基于由已经在RTL描述转换单元1141中产生的RTL描述D113所描述的硬件信息,转换标识产生单元1142计算硬件的面积和执行时间。然后,转换标识产生单元1142将对应于RTL描述D113的使用信息(一对计算的面积和执行时间)存储到转换结果存储单元1115。
转换标识产生单元1142使用与由存储在转换结果存储单元1115中的一个或多个RTL描述所描述的ALU分配图形(此后将其称为“实际分配图形”)一一对应的多段使用信息(面积和执行时间)而产生图D114。然后,转换标识产生单元1142将产生的图D114作为程序转换标识输出到图通知单元1114。
注意,面积和执行时间是由第一实施例中描述的相同计算方法所计算的,而图D114是由面积/执行时间预测单元1123产生图的相同方法所产生的。因此,在这里忽略了这些方法的解释。
(1.6)RTL描述输出单元1113
RTL描述输出单元1113为前述目标程序输出单元1013的等同物。
在从RTL描述转换单元1141接收到RTL描述D113时,RTL描述输出单元1113将接收的RTL描述D113输出到存储设备(例如,硬盘单元)。
RTL描述D113的输出目的地不局限于硬盘单元。可以将RTL描述D113输出到任何具有用于存储RTL描述D113的区域的目的地。
(1.7)图通知单元1114
图通知单元1114为前述程序转换标识通知单元1014的等同物。
在从面积/执行时间预测单元1123接收到作为预测结果的图时,图通知单元1114将接收的图通知给用户。
在从转换标识产生单元1142接收到图D114时,图通知单元1114将接收的图D114通知给用户。
例如,图通知单元1114将图D114输出到与高级综合装置1100相连接的显示设备(未示出)。显示设备显示图D114。以这种方式,图通知单元1114可以通过显示设备将图D114通知给用户。
(2)高级综合装置1100的操作
参照图12所示的流程图,下面描述高级综合装置1100的操作。
行为描述接收单元1110从用户接收行为描述D111(步骤S100)。
接收单元1111从用户接收指示(转换计划或转换指示)(步骤S105)。
转换预测单元1116判断其已经接收到上述两个(转换计划和转换指示)中的哪一个(步骤S110)。
如果转换预测单元1116判断其已经接收了转换计划(步骤S110的“转换计划”分支),则执行下面操作。
在转换预测单元1116中,DFG转换单元1120将接收的行为描述D111转换为数据流图(步骤S115)。
模板匹配单元1121从接收单元1111接收转换计划并从DFG转换单元1120接收转换的数据流图。然后,基于接收的转换计划D112,模板匹配单元1121执行模板匹配(步骤S120)。这里,模板匹配单元1121在转换的数据流图中搜索与模板D121所含的数据流图D131的一部分匹配的部分,并因此分配硬件。
基于模板匹配单元1121执行的搜索的结果,硬件分配单元1122将硬件分配给转换的数据流图(步骤S125)。
面积/执行时间预测单元1123,基于(i)硬件分配单元1122执行的ALU分配的结果和(ii)存储在转换结果存储单元1115中的一个或多个RTL描述和与一个或多个RTL描述一一对应的多段使用信息,预测由对应于行为描述D111的目标程序(RTL描述)描述的硬件的面积和执行时间(步骤S130)。这里,面积/执行时间预测单元1123产生作为程序转换标识的预测结果的表示由目标程序(RTL描述)描述的硬件的执行时间和面积之间关系的图。
图通知单元1114将作为预测结果并且已经由面积/执行时间预测单元1123产生的图通知给用户(步骤S135)。
另一方面,如果转换预测单元1116判断其已经接收了转换指示(步骤S110的“转换指示”分支),则执行下面操作。
基于硬件分配单元1122执行的ALU分配,RTL描述转换单元1141产生RTL描述D113(步骤S140)。
转换标识产生单元1142产生使用信息(硬件的面积和执行时间) (步骤S145),并将RTL描述D113及其使用信息存储到转换结果存储单元1115(步骤S150)。
转换标识产生单元1142基于与存储在转换结果存储单元1115中的一个或多个RTL描述所描述的ALU的实际分配图形一一对应的使用信息(面积和执行时间)产生图D114(步骤S155)。
RTL描述输出单元1113将RTL描述转换单元1141产生的RTL描述D113输出到存储设备(步骤S160)。
通过将图D114输出到显示设备,图通知单元1114将已经由转换标识产生单元1142产生的图D114作为程序转换标识通知给用户(步骤S165)。
(3)预测操作的示例
参照图13所示的流程图,下面描述图12所示的步骤S130中的预测操作的示例。
面积/执行时间预测单元1123获得多段使用信息(面积和执行时间),每段使用信息对应于由存储在转换结果存储单元1115中的一个或多个RTL描述所描述的ALU的分配图形(此后称为“实际分配图形”)的不同一个(步骤S200)。
面积/执行时间预测单元1123在二维平面上绘制获得的一段或多段使用信息(步骤S205)。
面积/执行时间预测单元1123将(i)一个或多个实际分配图形与(ii)由硬件分配单元1122产生的测试分配图形相比较(步骤S210)。在比较之后,关于测试分配图形与实际分配图形的一部分相同的部分,面积/执行时间预测单元1123使用实际分配图形计算测试分配图形的相同部分的面积和执行时间(步骤S215)。关于测试分配图形与实际分配图形的任何不同的部分,面积/执行时间预测单元1123使用测试分配图形计算测试分配图形的不同部分的面积和执行时间(步骤S220)。然后,面积/执行时间预测单元1123获得各面积的总和和各执行时间的总和并将它们绘制在二维平面上(步骤S225)。
使用绘制的坐标和最小二乘法,面积/执行时间预测单元1123产生表示由对应于输入程序的目标程序(RTL描述)描述的硬件的面积和执行时间之间的关系的图(步骤S230)。
然后,面积/执行时间预测单元112将产生的图输出到图通知单元1114(步骤235)。
(4)产生程序转换标识的示例操作
下面描述图12所示的步骤S155中的产生程序转换计划的示例操作。这里,描述了与图13流程图所示不同的操作。
转换标识产生单元1142执行图13所示的步骤S200和S205的操作。
代替执行从步骤S210到S225的操作,转换标识产生单元1142基于已经由RTL描述转换单元1141产生的RTL描述D113所描述的硬件信息计算将要产生的整个电路的面积和执行时间。然后,转换标识产生单元1142绘制计算的面积和执行时间。
转换标识产生单元1142执行步骤S230和S235的操作。
(5)特定实施例的概述
如上所述,在接收到行为描述和转换计划时,高级综合装置输出(i)RTL描述和(ii)表示由RTL描述所描述的硬件的面积和执行时间之间关系的图。
在上述两个要素(面积和执行时间)之间存在平衡。面积/执行时间图以图的形式形象显示这两个要素。这使装置用户能够容易地确认面积和执行时间的关系。参照该预测结果,装置的用户发展关于新的模板和模板分配图形的思路,并再次执行高级合成。这能够产生质量好的RTL描述。
3.修改示例
前面已经基于但不限于上述实施例描述了本发明。本发明包括下面的情况。
(1)虽然在第一实施例中高级综合装置将电路图和计算值作为程序转换计划通知给用户,但并不限于这种结构。
高级综合装置可以将电路图和计算值中的一个通知给用户。例如,如果高级综合装置仅将电路图通知给用户,则用户可以通过从通知的电路图计算一个或多个分配的ALU的面积的总和来判断通知的电路图是否具有他/她所需的特征(面积)。
另外,用户可以通过从通知的电路图计算一个或多个分配的ALU的执行时间的总和来判断通知的电路图是否具有他/她所需的特征(执行时间)。
或者,第一实施例中所述的高级综合装置可以将表示面积和执行时间之间关系的图通知给用户,就象在第二实施例的特定示例部分描述的那样。
(2)在第二实施例中,高级综合装置可以用电路图和计算值代替图来通知用户。
(3)在第一实施例中,高级综合装置可以在产生RTL描述之前预测对应于由将要产生的RTL描述所描述的硬件的程序转换标识(电路图和计算值),并将预测结果通知给用户,就象在第二实施例中所描述的那样。
(4)在第一实施例中,程序转换计划(硬件分配信息)为用于最小化硬件的执行时间的信息,或者是用于最小化硬件面积的信息。然而,程序转换计划并不限于这些。
程序转换计划(硬件分配信息)可以是用于最小化目标程序的代码尺寸的信息。在这种情况中,例如,程序转换装置在转换标识产生单元中产生目标程序的代码尺寸,并通过通知单元将产生的代码尺寸作为程序转换标识通知给用户。
或者,程序转换计划(硬件分配信息)可以为用于最小化执行硬件期间的硬件能耗的信息。在这种情况中,例如,程序转换装置在转换标识产生单元中使用用于测量能耗的工具测量目标程序的能耗。然后,程序转换装置通过通知单元将测量结果作为程序转换标识通知给用户。
或者,程序转换装置可以将前述代码尺寸、能耗、硬件面积和硬件执行时间中的每一个作为参数,并且接收作为程序转换计划的一个或多个参数。在这种情况中,程序转换装置以能够使各自参数的计算值中至少一个具有最小值的方式将输入程序转换为目标程序。然后,程序转换装置通过通知单元将计算值(每个计算值对应于不同的一个或多个接收参数中的一个)的组合作为程序转换标识通知给用户。例如,在接收到两个参数(硬件的面积和执行时间)时,程序转换装置将硬件的面积和执行时间通知给用户。
或者,程序转换装置可以作为程序转换计划接收(i)一个或多个参数(与早前描述的参数的类型相同)以及(ii)与一个或多个参数一一对应的预定值。在这种情况中,程序转换装置以能够使各自参数的计算值中的至少一个小于或等于相应的预定值的形式将输入程序转换为目标程序。然后,程序转换装置通过通知单元将计算值的组合作为程序转换标识通知给用户。例如,在接收到参数和与其对应的预定值时,程序转换装置以能够使接收的参数的计算值小于或等于与其对应的预定值的方式将输入程序转换为目标程序。然后,程序转换装置通过通知单元将由一个接收的参数的计算值构成的程序转换标识通知给用户。
在第一实施例的特定示例部分,将硬件分配信息作为程序转换计划输入。这里,即使指定了其它转换计划(例如,用于最小化执行时间的信息,以及用于最小化代码尺寸的信息),基于这些计划执行硬件分配,就象当将硬件分配信息作为程序转换计划输入时那样。
(5)在第二实施例中,可以允许程序转换计划(硬件分配信息)是用于最小化目标程序的代码尺寸的信息。在这种情况中,程序转换装置在输入程序转换预测单元中基于接收的程序转换计划而预测目标程序的代码尺寸。然后,程序转换装置将预测结果通知给用户。如果接收到转换指示,程序转换装置执行与上面(4)所述程序转换装置相同的操作。这里,程序转换装置基于过去产生的目标程序的代码尺寸而预测代码尺寸。例如,程序转换装置已经预先存储了(i)过去输入的一个或多个输入程序(旧输入程序)、(ii)每个对应于不同的旧输入程序的目标程序(旧目标程序)、(iii)旧目标程序的各自代码尺寸。程序转换装置将刚输入的最新输入程序与旧输入程序进行比较,并在最新输入程序中搜索与旧输入程序的一部分相同的部分。程序转换装置从旧输入程序的部分及其相应的代码尺寸而获得该相同部分的代码尺寸。相反,程序转换装置通过执行程序转换而获得最新输入程序中与相同部分不同的其它部分的代码尺寸。程序转换装置将获得的代码尺寸总和作为预测结果。
也可以允许程序转换计划(硬件分配信息)为用于最小化执行硬件期间硬件(目标程序)能耗的信息。在这种情况中,程序转换装置在输入程序转换预测单元中基于接收的程序转换计划而预测目标程序的代码尺寸,然后将预测结果通知给用户。如果接收到转换指示,程序转换装置执行与上面(4)所述程序转换装置相同的操作。这里,程序转换装置参照过去已经产生的旧目标程序的能耗而预测能耗。例如,程序转换已经预先存储了(i)过去已经转换的一个或多个旧目标程序和(ii)旧目标程序的各自能耗。首先,程序转换装置将硬件分配给刚刚输入的最新输入程序。然后,通过将为最新输入程序作出的该硬件分配与由一个或多个旧目标程序描述的硬件分配进行比较,程序转换装置在最新输入程序中搜索与旧目标程序的一部分相同的部分。程序转换装置从旧目标程序的部分及其相应的能耗获得该相同部分的能耗。相反,程序转换装置从为其作出的硬件分配结果获得最新输入程序中与相同部分不同的其它部分的能耗。程序转换装置将获得的能耗作为预测结果。
也可以允许程序转换装置将前述代码尺寸、能耗、硬件面积和硬件执行时间中的每一个作为参数,并接收作为程序转换计划的一个或多个参数。在这种情况中,程序转换装置在输入程序转换预测单元中基于接收的程序转换计划而预测程序转换标识。如果接收到转换指示,则程序转换装置执行与上面(4)所述程序转换装置相同的操作。
也可以允许程序转换装置接收作为程序转换计划的一个或多个参数(与早先描述的参数为相同类型)及对应于每个不同参数的预测值。在这种情况中,程序转换装置在输入程序转换预测单元中基于接收的程序转换计划而预测程序转换标识,然后将预测结果通知给用户。如果接收到转换指示,程序转换装置执行与上面(4)所述程序转换装置相同的操作。
(6)在第一实施例中,将输入程序(行为描述)中描述的全部内容转换为目标程序(RTL描述)。然而,可以用不同的方式进行转换。
程序转换装置可以仅将输入程序的一部分转换为目标程序。在这种情况中,程序转换装置接收(i)输入程序和(ii)作为程序转换计划的表示输入程序中将要转换的部分的信息。如接收的程序转换计划所指出的那样,程序转换装置仅将输入程序中将要转换的部分转换为目标程序,并产生转换后的目标程序的程序转换标识。然后,程序转换装置将产生的程序转换标识通知给用户。
相似地,在第二实施例中,程序转换装置可以仅将输入程序的一部分转换为目标程序。在这种情况中,程序转换装置接收(i)输入程序和(ii)作为程序转换计划的表示输入程序中将要转换的部分的信息。程序转换装置在输入程序转换预测单元中预测对应于由接收的程序转换计划所表示的输入程序中将要转换的部分的目标程序的程序转换标识。然后,程序转换装置将预测结果通知给用户。如果接收到转换指示,程序转换装置仅将由接收的程序转换计划所表示的输入程序中将要转换的部分转换为目标程序,并产生转换后的目标程序的程序转换标识。然后,程序转换装置将产生的程序转换标识通知给用户。
(7)在第一实施例中,程序转换装置接收,但不限于,输入程序和程序转换计划。
可以允许程序转换装置仅接收输入程序。在这种情况中,程序转换装置将接收的输入程序转换为目标程序,并产生转换后的目标程序的程序转换标识。然后,程序转换装置将产生的程序转换标识通知给用户。参照通知的程序转换标识,用户判断目标程序所描述的电路是否具有他/她所需特征。如果判定该电路不具有这种特征,用户改进输入程序。程序转换装置接收改进的输入程序并执行如上面描述的相同操作。
相似地,在第二实施例中,可以允许程序转换装置仅接收输入程序。在这种情况中,程序转换装置预测对应于接收的输入程序的目标程序的程序转换标识,并将预测结果通知给用户。参照通知的预测结果,用户判断目标程序描述的电路是否具有他/她所需特征。如果判定该电路不具有这种特征,则用户改进输入程序。程序转换装置接收改进的输入程序,再次预测程序转换标识,并将再次预测的结果通知给用户。如果用户判定通知的再次预测结果反映了他/她所需的特征,则用户将转换指示传递给程序转换装置。在接收到转换指示时,程序转换装置将输入程序转换为目标程序,并产生转换后的目标程序的程序转换标识。
(8)在第一实施例中,可以允许如下配置程序转换装置。当将以前从来没有转换过的输入程序转换为目标程序时,程序转换装置仅接收该输入程序。另一方面,当将以前已经转换过的输入程序再次转换为目标程序时,程序转换装置接收程序转换计划。
在上述情况中,程序转换装置首先仅接收输入程序,将接收的输入程序转换为目标程序,然后产生转换后的目标程序的程序转换标识(例如,面积)。在此之后,程序转换装置将产生的程序转换标识通知给用户。参照通知的程序转换标识,用户判断目标程序描述的电路是否具有他/她所需特征。如果判定该电路不具有他/她所需特征,则用户将程序转换计划和输入程序输入到程序转换装置。基于程序转换计划,程序转换装置将输入程序转换为目标程序,并产生转换后目标程序的程序转换标识。然后,程序转换装置将产生的程序转换标识通知给用户。
这里,产生的程序转换标识可以是(i)执行时间,(ii)能耗,(iii)代码尺寸和(iv)表示面积和执行时间之间关系的图。
同样,在第二实施例中,可以允许如下配置程序转换装置。当将以前从来没有转换过的输入程序转换为目标程序时,程序转换装置仅接收该输入程序。另一方面,当将以前已经转换过的输入程序再次转换为目标程序时,程序转换装置接收程序转换计划。
在上述情况中,程序转换装置首先仅接收输入程序,预测对应于输入程序的目标程序的程序转换标识(例如,表示面积和执行时间之间关系的图),然后将预测结果通知给用户。参照通知的预测结果,用户判断该预测结果是否显示他/她所需特征。如果判定预测结果没有显示他/她所需特征,则用户将程序转换计划和输入程序输入到程序转换装置。基于程序转换计划,程序转换装置再次预测程序转换标识并将再次预测结果通知给用户。如果用户判定通知的再次预测结果显示他/她所需特征,用户将转换指示传送给程序转换装置。在接收到转换指示时,程序转换装置将输入程序转换为目标程序,并产生转换后目标程序的程序转换标识。
这里,产生的程序转换标识可以是硬件的面积、执行时间、能耗和代码尺寸。
(9)在第一实施例中,程序转换装置通知用户的信息可以是关于输入程序的转换的详细信息,诸如调度方法,并且当目标程序为硬件技术信息时,可以是用于分配ALU的方法的详细信息。
(10)在第二实施例中,高级综合装置的转换结果存储单元存储,但不限于,过去已经转换的一个或多个目标程序(RTL描述)和与该一个或多个目标程序一一对应的多段使用信息。
可以允许转换结果存储单元存储过去已经输入的一个或多个分配图形(旧分配图形)和分别对应于不同的旧分配图形的多段使用信息。
在这种情况中,关于与一个旧分配图形相同的输入程序的分配图形,面积/执行时间预测单元在二维平面上绘制对应于一个旧分配图形的使用信息(面积和执行时间)。另一方面,关于与任何旧分配图形不同的输入程序的分配图形,面积/执行时间预测单元计算对应于该不同部分的面积和执行时间,并在二维平面上绘制计算的面积和执行时间。然后,面积/执行时间预测单元产生图。
也可以允许转换结果存储单元存储一对或多对(i)过去输入的旧分配图形和(ii)源自输入的旧分配图形的目标程序。
在这种情况中,面积/执行时间预测单元将当前ALU分配图形与源自过去的ALU分配图形(旧ALU分配图形)进行比较。关于当前ALU分配图形中与旧ALU分配图形的任何部分均不同的部分,面积/执行时间预测单元为不同部分再次分配硬件。另一方面,关于当前ALU分配图形中与旧ALU分配图形的一部分相同的部分,面积/执行时间预测单元将旧ALU分配图形的这部分应用到当前ALU分配图形的相同部分。以这种方式,面积/执行时间预测单元以容易的方式执行ALU分配,并将执行时间和面积作为预测结果。
(11)作为程序转换标识的一个示例,第一实施例已经描述了由电路图和计算值构成的转换标识。然而,程序转换标识并不限于这种情况。
程序转换标识可以是目标程序描述的整个电路的(i)面积、(ii)执行时间和(iii)能耗中的任何一个或任何组合。
相似地,在第二实施例中,程序转换标识可以是目标程序描述的整个电路的(i)面积、(ii)执行时间、(iii)能耗、(iv)代码尺寸和(v)表示面积和执行时间之间关系的图中的任何一个或任何组合。
(12)在第二实施例中,面积/执行时间预测单元在产生图时执行下面过程:面积/执行时间预测单元首先在二维平面上绘制(i)分别对应于实际分配图形中的一个的多段使用信息(面积和执行时间)和(ii)对应于测试分配图形的面积和执行时间。然后面积/执行时间预测单元通过应用最小二乘法产生图。然而,可以不同的方式产生图。
面积/执行时间预测单元可以首先在二维平面上绘制分别对应于实际分配图形中的一个的多段使用信息(面积和执行时间),然后通过应用最小二乘法产生图。在此之后,面积/执行时间预测单元可以作为预测值绘制对应于测试分配图形的面积和执行时间。
(13)在第一实施例中,如果计算值为由RTL描述所描述的电路的执行时间,则本发明中电路的特征表示电路的执行时间。
如果计算值为电路的能耗,则本发明中电路的特征表示电路的能耗。
如果计算值为代码尺寸,则本发明中电路的特征表示表达电路设计的RTL描述的代码尺寸。
如果将电路图作为转换标识进行通知,则本发明中电路的特征表示示出电路的电路图。
在第二实施例中,本发明中电路的特征可以是电路的面积或执行时间。
(14)在第二实施例中,可以作为独立单元而分别构建程序转换结果存储单元和输入程序转换预测单元。然而,可以以不同的方式操作这些单元。
可以将程序转换结果存储单元包括在输入程序转换预测单元中。
(15)在第一实施例中,已经作为程序转换装置的示例描述了高级综合装置。然而,程序转换装置可以是不同的形式。
程序转换装置可以是编译器装置。在这种情况中,编译器装置接收用高级语言编写的输入程序和程序转换计划。基于接收的程序转换计划,编译器装置将输入程序转换为作为目标程序的机器语言(例如,汇编语言),输出转换后的语言,产生转换后语言的程序转换标识,并将产生的程序转换标识通知给用户。例如,如果程序转换计划为用于最小化目标程序的代码尺寸的信息,则程序转换标识为目标程序的代码尺寸。
(16)本发明可以是上面所示的方法。另外,该方法可以是由计算机实现的计算机程序,也可以是计算机程序的数字信号。
另外,本发明可以是诸如软盘、硬盘、CD-ROM(只读光盘存储器)和MO(磁光盘)、DVD、DVD-ROM(只读数字化视频光盘存储器)、DVD-RAM、BD(蓝光盘)或半导体存储器的存储计算机程序或数字信号的计算机可读记录介质装置。另外,本发明可以是记录在任何前述记录介质装置上的计算机程序或数字信号。
另外,本发明可以是在电通信线路、无线或有线通信线路或以互联网为代表的网络上传送的计算机程序或数字信号。
另外,本发明可以是包括微处理器和存储器的计算机系统,存储器存储计算机程序,微处理器根据计算机程序操作。
另外,通过将程序或数字信号传送到记录介质,或通过用网络或类似物传送程序或数字信号,可以由其它独立的计算机系统执行该程序或数字信号。
(17)本发明可以是上述实施例和修改的任何组合。
4.结论
在第一实施例中,程序转换装置将程序转换标识通知给用户。参照通知的程序转换标识,用户可以容易地发展更加有效的程序转换计划。用户重复下面步骤直到他/她可以获得描述具有他/她所需特征的电路的目标程序:(i)用户将输入程序和程序转换计划输入到程序转换装置,(ii)由程序转换装置将程序转换标识通知给用户,(iii)基于通知的程序转换标识发展更加有效的转换计划。
在第二实施例中,程序转换装置在从输入程序(例如,行为描述)产生目标程序(例如,RTL描述)之前预测程序转换标识并将预测结果通知给用户。在此之后,在从用户接收到转换指示时,程序转换装置在将输入程序转换为目标程序之后将程序转换标识(例如,图)通知给用户。
下面描述(i)预测结果的内容和(ii)在实际执行程序转换之后的转换结果的内容之间的差别。当程序转换装置预测转换结果时,并没有将输入程序实际转换为目标程序。这减少了转换输入程序所需的时间。因此,可以在输入输入程序和程序转换计划之后简要地将预测结果通知给用户。然而,由于仅是预测,存在着预测结果与实际转换输入程序之后通知的标识不同的情况。相反,当将实际转换结果通知给用户时,程序转换装置将输入程序实际转换为目标程序。因此,从输入程序和程序转换计划输入到通知程序转换标识之间的时间周期比预测转换结果的情况更长。然而,由于是基于实际转换来产生程序转换标识的,在实际执行程序转换后的转换结果内容是可靠的。
本发明的程序转换装置将已经实际转换的目标程序的转换标识通知给用户。这使用户能够参照转换标识容易地发展更好的程序转换计划。如果用户将更好的转换计划输入到程序转换装置,该装置可以产生更好的目标程序。重复上述过程可以逐渐地改进目标程序描述的电路的特征(质量),并最终提供具有用户所需特征的目标程序。
本发明的程序转换装置是用于将输入程序转换为目标程序的程序转换装置,包括:用于接收输入程序的程序输入单元;用于将输入程序转换为目标程序的转换单元;用于输出作为转换结果的目标程序的目标程序输出单元;和用于将输入程序的转换标识通知给装置用户的转换标识通知单元,该转换标识由转换输入程序的过程产生。该程序转换装置使用户能够从装置获得不同于目标程序的信息。
程序转换装置将目标程序的执行时间作为转换标识通知给用户。由于在转换目标程序时该装置使用户能够确认目标程序的执行时间,用户可以参照执行时间容易地发展更加有效的程序转换计划。
程序转换装置还可以将目标程序的执行时间和目标程序实现的硬件的面积之间的相关关系作为转换标识通知给用户。该装置使用户能够确认目标程序的执行时间和由转换后的目标程序实现的硬件的面积之间的相关关系。基于该相关关系,用户可以容易地发展更加有效的程序转换计划。
程序转换装置还可以将目标程序的代码尺寸作为转换标识通知给用户。该装置使用户能够确认转换后的目标程序的代码尺寸。基于该代码尺寸,用户可以容易地发展更加有效的程序转换计划。
程序转换装置还可以将目标程序实现的硬件的面积作为转换标识通知给用户。该装置使用户能够确认目标程序实现的硬件的面积。基于该面积,用户可以容易地发展更加有效的程序转换计划。
程序转换装置还可以将执行目标程序的能耗作为转换标识通知给用户。该装置使用户能够确认这种能耗;基于该能耗,用户可以容易地发展更加有效的程序转换计划。
程序转换装置还包括能够从用户接收作为关于转换输入程序的请求转换计划的转换计划输入单元,其中前述转换单元基于转换计划转换输入程序。当输入有效转换计划时,与没有输入转换计划时相比,程序转换装置能够输出质量高的目标程序。
用户基于前述转换标识产生输入到程序转换装置的转换计划。当将这种有效转换计划输入到程序转换装置时,与没有输入转换计划时相比,用户可以获得具有高质量的目标程序。
程序转换装置接收作为转换计划的用于在输入程序中指定要转换的部分的信息。当再次接收程序转换计划时并因此再次转换输入程序时,程序转换装置不转换目标程序中已经满足用户需求的部分。因此,程序转换装置可以减少程序转换所需的时间。
程序转换装置也接收作为转换计划的用于转换输入程序的指示,以便最小化目标程序的执行时间。通过程序转换,该装置提供具有最小执行时间的目标程序。
程序转换装置也接收作为转换计划的用于转换输入程序的指示,以便最小化目标程序实现的硬件的面积。通过该程序转换,该装置提供实现具有最小面积的硬件的目标程序。
程序转换装置也接收作为转换计划的用于转换输入程序的指示,以使目标程序实现最低能耗。通过程序转换,该装置提供实现最低能耗的目标程序。
程序转换装置也接收作为转换计划的用于转换输入程序的指示,以便最小化目标程序的代码尺寸。通过程序转换,该装置提供具有最小代码尺寸的目标程序。
程序转换装置也接收作为转换计划的用于转换输入程序的指示,以便将目标程序的一个或多个参数设定为等于或低于各自的预设值。该装置使用户能够获得具有等于或低于各自预设值的一个或多个参数的目标程序。
程序转换装置也接收作为转换计划的用于转换输入程序的指示,以便将目标程序的执行时间设定为等于或低于预设值。该装置使用户能够获得执行时间等于或低于预设值的目标程序。
程序转换装置也接收作为转换计划的用于转换输入程序的指示,以便将目标程序实现的硬件的面积设定为等于或低于预设值。该装置使用户能够获得实现面积等于或低于预设值的硬件的目标程序。
程序转换装置也接收作为转换计划的用于转换输入程序的指示,以便将目标程序实现的硬件的能耗设定为等于或低于预设值。该装置使用户能够获得实现能耗等于或低于预设值的硬件的目标程序。
程序转换装置也接收作为转换计划的用于转换输入程序的指示,以便将目标程序的代码尺寸设定为等于或低于预设值。该装置使用户能够获得代码尺寸等于或低于预设值的目标程序。
程序转换装置也接收作为转换计划的关于由目标程序的操作和目标程序实现的硬件之间的相关关系确定的ALU分配图形的信息。通过程序转换,程序转换装置使用户能够获得符合已经输入的前述ALU分配图形的目标程序。
程序转换装置还包括由(i)表示前述硬件的电路图和(ii)该电路图的操作的信息确定的模板。根据该装置,目标程序描述的硬件的电路图包括模板的电路。以这种方式,用户可以设计要输出的电路图的一部分。
程序转换装置还包括能够(i)预测输入程序的转换结果或转换标识和(ii)将预测的转换结果或转换标识输入到前述转换标识通知单元的预测单元,其中转换标识通知单元还将作为预测结果的目标程序或预测的转换标识通知给用户。该装置使用户能够基于转换预测结果而不是基于实际程序转换的结果而再次发展程序转换计划或程序转换标识。因此,该装置可以减少程序转换所需的时间。
程序转换装置还包括能够在其中存储目标程序(输入程序的转换结果)和过去已经产生的转换计划的存储单元,其中程序转换装置基于存储在存储单元中的项目而预测输入程序的转换结果。即,使用存储在存储单元中的信息,该装置可以预测程序转换结果。
程序转换装置搜索在过去已经输入的转换计划和刚刚输入的当前转换计划(这两种转换计划均存储在存储单元中)之间的差别。基于该差别和过去的程序转换结果,程序转换装置还预测当前输入程序的转换结果。该装置使用户能够获得基于过去转换计划和当前转换计划之间的差别的预测结果。
程序转换装置还预测目标程序实现的硬件的面积或目标程序的执行时间。该装置使用户能够在实际转换输入程序之前确认程序转换结果和表示硬件面积大或目标程序执行时间长的相应程序转换标识。当再次发展程序转换计划时,用户由此可以不实际转换输入程序而确认在硬件面积大或目标程序执行时间长的情况下的程序转换标识。这减少了在硬件面积大或目标程序执行时间长的情况下程序转换所需的时间。
程序转换装置还预测目标程序的代码尺寸。该装置使用户能够在实际转换输入程序之前确认程序转换结果和相应的表示目标程序的代码尺寸大的程序转换标识。当再次发展程序转换计划时,用户由此可以不实际转换输入程序而确认在目标程序代码尺寸大的情况下的程序转换标识。这减少了在目标程序代码尺寸大的情况下程序转换所需的时间。
程序转换装置还预测目标程序实现的硬件的电路图。该装置使用户能够在实际转换输入程序之前确认程序转换结果和表示硬件电路图大的相应转换标识。当再次发展程序转换计划时,用户由此可以不实际转换输入程序而确认在硬件电路图大的情况下的程序转换标识。这减少了在硬件电路图大的情况下程序转换所需的时间。
程序转换装置还基于(i)从转换计划输入单元输入的当前ALU分配图形、(ii)过去存储在存储单元中的旧ALU分配图形和(iii)过去已经输入的旧输入程序的转换结果而预测当前输入程序的转换结果。该装置使用户能够获得基于上述(i)、(ii)和(iii)的预测结果。
当基于旧ALU分配图形和当前ALU分配图形之间的差别而预测当前输入程序的转换结果时,程序转换装置执行下面过程。关于当前ALU分配图形中与旧ALU分配图形的一部分相同的部分,程序转换装置使用旧输入程序的转换结果(源自旧ALU分配图形)作为当前输入程序的转换结果。另一方面,关于当前ALU分配图形中与旧ALU分配图形的任何部分不同的部分,程序转换装置将当前输入程序的转换结果作为转换预测结果。该装置使用户能够在仅将ALU新分配到当前ALU分配图形中与旧ALU分配图形的任何部分不同的部分的情况下确认转换预测结果。
6.工业应用
在制造和销售程序转换装置的行业中可以商业(即经常地且连续地)使用本发明。
使用程序转换装置设计系统LSI的制造商可以商业(即经常地且连续地)使用本发明的程序转换装置。
虽然参照附图的示例已经完全描述了本发明,需要指出的是本领域的技术人员可以作出不同的变化和修改。因此,除非这些变化和改变偏离了本发明的范围,应该认为这些变化和改变包括在本发明中。
Claims (20)
1.一种用于基于程序类型描述而将一种类型的程序转换为另一种类型的程序的程序转换装置,该程序转换装置包括:
用于将操作描述程序转换为电路描述程序的转换单元,所述操作描述程序被描述为一系列操作,而所述电路描述程序被描述为实现该系列操作的电路的设计;
用于输出电路描述程序的程序输出单元;
用于产生标识的产生单元,所述标识表示通过根据电路描述程序中描述的设计而使用一个或多个硬件元件实现的电路的特征;
用于输出产生的标识的标识输出单元。
2.根据权利要求1所述的程序转换装置,还包括:
用于在转换单元执行转换之前接收计划的计划接收单元,所述计划表示实现所述系列操作的电路具有的用户所需特征,其中
所述转换单元基于该计划将操作描述程序转换为电路描述程序。
3.根据权利要求2所述的程序转换装置,其特征在于,
所述产生单元产生包括由接收的计划表示的特征的标识。
4.根据权利要求2所述的程序转换装置,其特征在于,
用户所需特征为用户已经指定的硬件元件的分配,
计划接收单元接收作为计划的模板,所述模板相应地包含(i)用户已经指定的硬件元件的电路图和(ii)表示用户已经指定的硬件元件的处理操作的操作信息,
如果操作描述程序具有执行由接收的模板所含操作信息表示的处理操作的第一部分,则转换单元产生电路描述程序,该电路描述程序的设计为该第一部分分配对应于操作信息的电路图所表示的硬件元件。
5.根据权利要求4所述的程序转换装置,其特征在于,
计划接收单元还接收分配图形,所述分配图形在操作描述程序中指定能够分配模板所含电路图表示的硬件元件的可分配部分,
转换单元产生电路描述程序,该电路描述程序的设计将对应于操作信息的电路图表示的硬件元件仅分配给同样由分配图形指定为可分配部分的第一部分,而不分配给没有被分配图形指定为可分配部分的该第一部分。
6.根据权利要求1所述的程序转换装置,其特征在于,
在转换单元执行转换之前,产生单元预测(i)设计和(ii)表示电路特征的标识,所述电路根据预测的设计而实现,以及
在转换单元执行转换之前,标识输出部件输出预测的标识。
7.根据权利要求6所述的程序转换装置,其特征在于,
产生单元已经预先存储了用于执行预测的预测信息,并基于预测信息和预测设计而预测标识。
8.根据权利要求7所述的程序转换装置,其特征在于,
所述预测信息由以下部分构成:(i)产生的程序,其为过去已经产生的电路描述程序和(ii)产生的标识,其表示根据产生的程序描述的设计实现的电路的特征;以及
产生单元在操作描述程序中搜索执行与产生的程序的一部分相同处理操作的第二部分,并通过(i)将基于产生的标识的产生的部分标识分配给第二部分和(ii)将已经预测的预测部分标识分配给操作描述程序除第二部分之外的部分而预测标识。
9.根据权利要求8所述的程序转换装置,还包括:
用于接收模板的模板接收单元,所述模板相应地包含(i)用户已经指定的硬件元件的电路图和(ii)表示用户已经指定的硬件元件的处理操作的操作信息,其中
如果操作描述程序具有执行由接收模板所含操作信息表示的处理信息的第一部分,则转换单元通过将对应于该操作信息的电路图所示硬件元件分配给该第一部分来预测设计。
10.根据权利要求9所述的程序转换装置,其特征在于,
模板接收单元还接收分配图形,所述分配图形在操作描述程序中指定可以分配由模板所含电路图所示的硬件元件的可分配部分,
如果操作描述程序具有执行由接收模板所含的操作信息表示的处理信息的第一部分,则产生单元通过将由对应于操作信息的电路图所示硬件元件仅分配给同样由分配图形指定为可分配部分的第一部分而不分配给没有被分配图形指定为可分配部分的第一部分来预测设计。
11.根据权利要求1所述的程序转换装置,其特征在于,
所述电路的特征为电路的面积,
所述标识为表示根据电路描述程序中描述的设计实现的电路的面积的面积标识,并且
产生单元(i)在实现电路中获得要分配的一个或多个硬件元件的各自面积、(ii)计算获得的面积的总和并且(iii)将计算的总和作为面积标识。
12.根据权利要求1所述的程序转换装置,其特征在于,
所述电路的特征为电路的执行时间,
所述标识为表示根据电路描述程序描述的设计实现的电路的执行时间的执行时间标识,
产生单元(i)基于设计确定要分配的不同的一个或多个硬件元件所属的执行周期,(ii)基于所述确定而获得执行周期数和每个执行周期的时间单元,(iii)使用获得的执行周期数和获得的时间单元计算电路的执行时间,及(iv)将计算的执行时间作为执行时间标识。
13.根据权利要求1所述的程序转换装置,其特征在于,
所述电路的特征为电路的能耗,以及
所述标识为表示根据电路描述程序描述的设计实现的电路的能耗的能耗标识,
产生单元(i)基于设计所示的一个或多个硬件元件之间的连接条件计算电路的能耗并(ii)将计算的能耗作为能耗标识。
14.根据权利要求1所述的程序转换装置,其特征在于,
所述电路的特征为电路描述程序的代码尺寸,以及
产生单元(i)计算电路描述程序的代码尺寸并(ii)将计算的代码尺寸作为标识。
15.根据权利要求1所述的程序转换装置,其特征在于,
所述电路的特征为表示电路的面积和执行时间之间关系的关系信息,
所述标识为表示根据在电路描述程序中描述的设计实现的电路中的关系的关系信息标识,以及
产生单元(i)计算根据设计实现的电路的面积和执行时间,(ii)基于计算的电路面积和执行时间获得关系信息,并(iii)将获得的关系信息作为关系信息标识。
16.根据权利要求1所述的程序转换装置,其特征在于,
所述电路的特征为电路图,
所述标识为根据电路描述程序描述的设计实现的电路的电路图,以及
产生单元基于设计所示的一个或多个硬件元件之间的连接条件产生电路的电路图,并将产生的电路图作为标识。
17.根据权利要求1所述的程序转换装置,其特征在于,
所述电路的特征为至少包含下面中的两项的组合特征:(i)电路面积;(ii)电路执行时间;(iii)表示电路的面积和执行时间之间关系的关系信息;(iv)电路图和(v)电路描述程序的代码尺寸。
所述标识为表示根据电路描述程序描述的设计实现的电路的混合特征的组合标识,
产生单元产生组合标识,并且
标识输出单元输出产生的组合标识。
18.一种在基于程序类型描述将一种类型的程序转换为另一种类型的程序的程序转换装置中使用的程序转换方法,该程序转换方法包括下述步骤:
将描述一系列操作的操作描述程序转换为描述实现该系列操作的电路的设计的电路描述程序;
输出该电路描述程序;
产生表示通过根据电路描述程序描述的设计使用一个或多个硬件元件而实现的电路特征的标识;
输出该产生的标识。
19.一种在基于程序类型描述将一种类型的程序转换为另一种类型的程序的程序转换装置中使用的计算机程序,该计算机程序包括下述步骤:
将描述一系列操作的操作描述程序转换为描述实现该系列操作的电路的设计的电路描述程序;
输出该电路描述程序;
产生表示通过根据电路描述程序描述的设计使用一个或多个硬件元件而实现的电路特征的标识;
输出该产生的标识。
20.根据权利要求19所述的计算机程序,其特征在于,
所述计算机程序存储在计算机可读存储介质中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006304196A JP2008123103A (ja) | 2006-11-09 | 2006-11-09 | プログラム変換装置 |
JP2006304196 | 2006-11-09 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101178749A true CN101178749A (zh) | 2008-05-14 |
Family
ID=39370659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007101663914A Pending CN101178749A (zh) | 2006-11-09 | 2007-11-07 | 程序转换装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20080115101A1 (zh) |
JP (1) | JP2008123103A (zh) |
CN (1) | CN101178749A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103455362A (zh) * | 2013-09-27 | 2013-12-18 | 西安电子科技大学 | 一种硬件语言自动转换系统 |
CN109496319A (zh) * | 2018-01-15 | 2019-03-19 | 深圳鲲云信息科技有限公司 | 人工智能处理装置硬件优化方法、系统、存储介质、终端 |
CN110622078A (zh) * | 2017-05-10 | 2019-12-27 | 霍尼韦尔国际公司 | 用于分批或顺序操作的基于预测时间的控制的装置和方法 |
CN110750265A (zh) * | 2019-09-06 | 2020-02-04 | 华中科技大学 | 一种面向图计算的高层次综合方法及系统 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102072143B (zh) * | 2010-12-02 | 2012-07-25 | 中国人民解放军空军工程大学 | 一种耦合计算恒压柱塞泵压力、流量和温度的方法 |
JP5910230B2 (ja) | 2012-03-26 | 2016-04-27 | 富士通株式会社 | 設計支援プログラム、設計支援方法、および設計支援装置 |
JP6246585B2 (ja) * | 2013-12-26 | 2017-12-13 | 株式会社日立情報通信エンジニアリング | 論理回路設計方法及び方法 |
US20220261523A1 (en) * | 2021-02-17 | 2022-08-18 | Xilinx, Inc. | Behavioral-level timing and area optimiation |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000315222A (ja) * | 1999-04-30 | 2000-11-14 | Matsushita Electric Ind Co Ltd | 集積回路装置の設計用データベース及び集積回路装置の設計方法 |
-
2006
- 2006-11-09 JP JP2006304196A patent/JP2008123103A/ja active Pending
-
2007
- 2007-08-14 US US11/889,571 patent/US20080115101A1/en not_active Abandoned
- 2007-11-07 CN CNA2007101663914A patent/CN101178749A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103455362A (zh) * | 2013-09-27 | 2013-12-18 | 西安电子科技大学 | 一种硬件语言自动转换系统 |
CN110622078A (zh) * | 2017-05-10 | 2019-12-27 | 霍尼韦尔国际公司 | 用于分批或顺序操作的基于预测时间的控制的装置和方法 |
CN110622078B (zh) * | 2017-05-10 | 2023-03-28 | 霍尼韦尔国际公司 | 用于分批或顺序操作的基于预测时间的控制的装置和方法 |
CN109496319A (zh) * | 2018-01-15 | 2019-03-19 | 深圳鲲云信息科技有限公司 | 人工智能处理装置硬件优化方法、系统、存储介质、终端 |
WO2019136758A1 (zh) * | 2018-01-15 | 2019-07-18 | 深圳鲲云信息科技有限公司 | 人工智能处理装置硬件优化方法、系统、存储介质、终端 |
CN110750265A (zh) * | 2019-09-06 | 2020-02-04 | 华中科技大学 | 一种面向图计算的高层次综合方法及系统 |
CN110750265B (zh) * | 2019-09-06 | 2021-06-11 | 华中科技大学 | 一种面向图计算的高层次综合方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20080115101A1 (en) | 2008-05-15 |
JP2008123103A (ja) | 2008-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101178749A (zh) | 程序转换装置 | |
Sousa-Zomer et al. | A QFD-based approach to support sustainable product-service systems conceptual design | |
Ahmadi et al. | A multi objective optimization approach for flexible job shop scheduling problem under random machine breakdown by evolutionary algorithms | |
Wang | A fuzzy robust scheduling approach for product development projects | |
JP5005814B2 (ja) | バッテリーの長期特性予測システム及び方法 | |
TWI571808B (zh) | 因子分析系統及其分析方法 | |
JP2000509855A (ja) | 処置に関する情報の有効な記憶と評価により技術系を自動的に診断する装置とその方法 | |
CN105446885A (zh) | 一种基于需求的回归测试用例优先级排序技术 | |
KR20110047378A (ko) | 다중 전압 도메인의 전력 배선망에서의 전원/접지 패드의 위치 및 개수를 최적화하는 방법 | |
EP0978050A1 (en) | Universal system for artificial intelligence based learning, categorization, and optimization | |
Mousavi et al. | A novel approach based on non-parametric resampling with interval analysis for large engineering project risks | |
Ng | Evidential reasoning-based Fuzzy AHP approach for the evaluation of design alternatives’ environmental performances | |
CN103729530A (zh) | 对序列进行处理的装置和方法 | |
CN111782538A (zh) | 一种装备测试性论证分析与仿真评估系统 | |
CN107357764A (zh) | 数据分析方法、电子设备及计算机存储介质 | |
Ahmed et al. | Opinion Weight Criteria Method (OWCM): A New Method for Weighting Criteria with Zero Inconsistency | |
Horne | Life cycle assessment: origins, principles and context | |
Chandrakumar et al. | A multi-criteria decision-making model to evaluate sustainable product designs based on the principles of design for sustainability and fuzzy analytic hierarchy process | |
KR102465915B1 (ko) | 인공지능 기반의 수질 전광판의 수질정보 표시 시스템 | |
CN103782245B (zh) | 技术系统的操控 | |
CN106209493B (zh) | 一种对互联网服务系统进行流量跟踪的系统与方法 | |
CN114254801A (zh) | 基于相似性度量的工业用户用电量长期预测方法和装置 | |
CN115165332A (zh) | 一种装备机内测试与综合测试一体化设计方法及系统 | |
Belyaev | A practical approach to choosing alternate solutions to complex optimization problems under uncertainty | |
JP5029584B2 (ja) | 開発支援装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20080514 |