CN102163248A - 一种集成电路的高级综合方法 - Google Patents
一种集成电路的高级综合方法 Download PDFInfo
- Publication number
- CN102163248A CN102163248A CN 201110084177 CN201110084177A CN102163248A CN 102163248 A CN102163248 A CN 102163248A CN 201110084177 CN201110084177 CN 201110084177 CN 201110084177 A CN201110084177 A CN 201110084177A CN 102163248 A CN102163248 A CN 102163248A
- Authority
- CN
- China
- Prior art keywords
- intermediate language
- file
- input
- information
- language
- 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.)
- Granted
Links
Images
Abstract
本发明公开了一种集成电路的高级综合方法,通过综合生成第一中间语言,再由第一中间语言生成相应的可重构算子可执行文件或者硬件描述文件,从而输出具有多目标的特性,即既可以通过生成可重构算子阵列可执行文件把高级语言输入文件所描述的系统下载到可重构算子阵列上实施,又可以通过生成硬件描述文件把输入文件所描述的系统下载到FPGA或ASIC上实施。
Description
技术领域
本发明涉及集成电路设计技术领域,尤其涉及一种集成电路的高级综合方法。
背景技术
随着通信、计算机、消费电子等领域的快速发展,对承载这些应用的硬件系统在性能、功耗、成本、上市时间、灵活性、可扩展性等方面提出了更高的要求,传统的设计方法如ASIC(Application Specific Intergrated Circuits,专用集成电路),DSP(Digital Signal Processing,数字信号处理器)/CPU以及FPGA(Field Programmable Gate Array,现场可编程门阵列)都面临着一些问题。
ASIC设计的复杂性和规模不断提升,使得ASIC设计成本增加,设计周期变长,同时由于不具灵活性,不可扩展,产品的快速上市和低成本的需求使得ASIC设计遇到了瓶颈。而CPU/DSP依靠复杂的体系结构和指令系统的方法得到性能提升所需要付出的代价越来越大,单个处理器的处理能力已经远远不能满足当前应用的需要。FPGA作为并行计算较早的应用,它的性能和能耗比介于ASIC和DSP/CPU之间,具有一定的灵活性,可反复编程,能够满足快速上市和低成本的应用需求。但是FPGA的设计并不支持从算法到硬件的直接映射,设计需要算法人员和硬件人员的共同参与,硬件描述语言的抽象层次较低,应用的开发仍然存在着很大的复杂性。
北京大学深圳研究生院集成微系统实验室提出的一种基于并行计算技术的统一架构的可重构算子阵列结构,图1为APU(Array Processing for UnificationArchitecture)的总体结构图。该APU结构1000由算术类可重构算子1001、路径类可重构算子1002、调度类可重构算子1003、DSP类可重构算子1004、存储类可重构算子1005以及IO1006组成。在APU结构1000的内部,算术类可重构算子1001、路径类可重构算子1002、调度类可重构算子1003、DSP类可重构算子1004、存储类可重构算子1005按照一定的比例,按照类型独立地以列为单位,分布式交叉排列。APU支持大量数据并行/串行的运算和传输需求,并且能够支撑多种应用实现的需要。
APU应用设计描述语言为高级语言,抽象层次较高,缩短了应用开发时间。故须引入对应的高级综合方法以实施应用。
常规的高级综合方法根据输入文件和约束文件只能生成对应的数字电路信息,生成的数字电路信息通常只能在FPGA上实施或转换为对应的ASIC。
常规高级综合方法把输入文件的语言元素转换成CDFG(Control Data FlowGraph,数据控制流图),再给每个CDFG节点分配对应的时间节点信息,输出文件的发射过程把CDFG对应的时间节点信息转换成数字电路的状态机信息。由于数字电路状态机的状态切换有一定时间间隔,所以常规高级综合方法相当于通过时间标识调度输入文件所描述的系统,执行效率和灵活性都很难拓展。
发明内容
本发明要解决的主要技术问题是,提供一种集成电路的高级综合方法,其输出具有多目标性,且具有灵活、可执行性高、执行效率高的特点,同时其输出既可以在可重构算子阵列上实施,也可以下载到FPGA或ASIC上实施。
为解决上述技术问题,本发明采用的技术方案如下:
一种集成电路的高级综合方法,包括步骤:
输入描述数字电路的高级语言输入文件,并进行综合约束设置;
根据所述数字电路的高级语言输入文件和综合约束,生成第一中间语言,所述第一中间语言的每一条语句代表一个特定的数字电路结构及各数字电路结构间的连接关系;
将所述第一中间语言转换为可重构算子可执行文件,并下载至所述可重构算子阵列中实施,或者将所述第一中间语言转换为对应的硬件描述文件,并根据所述硬件描述文件生成相应的数字电路。
进一步地,生成所述第一中间语言包括步骤:
将输入的所述高级语言输入文件和综合约束进行预综合,生成第三中间语言,所述第三中间语言为由带有列表接口的语句块或者带有列表接口的嵌套语句块构成的主函数;
将所述第三中间语言进行综合前端,综合生成抽象语法树,所述抽象语法树包含所述高级语言输入文件所描述的语句块信息、语句块之间接口信息与输入文件所描述的数字电路系统输入输出接口信息的;
遍历所述抽象语法树,并按照预定的综合策略转换为第二中间语言,所述第二中间语言的每一条语句都代表一个功能模块与此功能模块与其他模块的连接关系;
将所述第二中间语言进行综合后端,生成第一中间语言。
进一步地,所述预定的综合策略包括综合后输出系统的运算速度、功率消耗、实际使用的电路面积、各类电路资源相对比例、目标可重构算子阵列的硬件结构、输入文件语言格式、电路资源使用策略。
进一步地,所述抽象语法树包括根节点;第一节点,用于存储所述高级语言输入文件所描述系统的输入输出信息;第二节点,用于存储高级语言输入文件中的全局变量或数组的声明信息;第三节点,用于存储高级语言输入文件中的所有函数的信息,所述第一节点、第二节点和第三节点均与所述根节点相连,则遍历所述抽象语法树生成所述第二中间语言包括步骤:
读取抽象语法树的每一个节点,得到每一个节点的信息;
收集抽象语法树中与函数语句块相关的信息,并存储;
根据所述节点信息和函数信息,检查所述抽象语法树生成是否正确,如是,则根据读取的节点信息发射第二中间语言。
进一步地,对所述第一中间语言进行仿真包括步骤:
在仿真系统启动时配置仿真系统运行参数,包括输入待仿真的第一中间语言、输入仿真数据文件、输出仿真数据文件、仿真系统运行时间等;
读取输入待仿真的第一中间语言的系统描述文件,生成系统描述文件中描述的各子模块;
将输入仿真数据文件中的数据输入到系统的数据存储容器中,等待各子模块启动;
读取输入待仿真的系统描述文件,连接生成的所述所有子模块;
启动整个仿真的运行,即启动所有子模块工作;
输出仿真数据文件中所描述的输出数据到指定文件。
进一步地,将所述第一中间语言转换为可重构算子可执行文件包括步骤:
根据所述第一中间语言在可重构算子阵列上进行布局布线;
对布局布线后的可重构算子阵列进行仿真与验证;
将经过验证后的输出的文件转换为可重构算子可执行文件。
进一步地,根据所述第一中间语言再可重构算子阵列上进行布局布线包括步骤:
根据所述第一中间语言的每条语句中的特定数字电路结构确定其在可重构算子阵列中的实施位置;
再根据所述第一中间语言的各个语句中各特定数字电路结构之间的连接关系,确定完成各特定的数字电路结构之间的连接关系所消耗的电路资源情况。
进一步地,所述第一中间语言的每一条语句包括功能信息和连接信息,则将所述第一中间语言转换为相应的硬件描述文件包括步骤:
主要读取所述第一中间语言的功能信息和连接信息;
根据所述功能信息查找硬件描述语言模型库,得到相应的硬件描述语言描述;
结合所述连接信息,生成相应的硬件描述语言文件。
本发明的有益效果是:本发明的高级综合方法,包括输入描述数字电路的高级语言输入文件,并对其进行综合约束设置;再根据所述数字电路的高级语言输入文件和综合约束,生成第一中间语言,所述第一中间语言的每一条语句代表一个特定的数字电路结构及各数字电路结构间的连接关系;然后将所述第一中间语言转换为可重构算子可执行文件,并下载至所述可重构算子阵列中实施,或者将所述第一中间语言转换为对应的硬件描述文件,并根据所述硬件描述文件生成相应的数字电路。本发明的高级综合方法通过生成第一中间语言,再由该第一中间语言生成可重构算子阵列可执行文件,从而把高级语言输入文件所描述的系统下载到可重构算子阵列上实施,或者根据该第一中间语言生成硬件描述文件,从而把高级语言输入文件所描述的系统下载到FPGA或ASIC上实施,即本发明的高级综合方法的输出具有多目标性,且灵活性、可执行性高、执行效率高。
另一方面,本发明的高级综合方法,通过将高级输入文件转换为抽象层次高的第三中间语言,再由该第三中间语言转换为抽象层次较低的第二中间语言,该第二中间语言接近于模块化的数字电路描述,再由该第二中间语言转换为第一中间语言,最后由该第一中间语言直接转换为硬件描述语言或可重构算子阵列。本发明采用模块化思想的第一中间语言、第二中间语言和第三中间语言作为转换过程的中间表示形式,并着重描述具有一定功能模块的特性与模块间的连接关系和通信关系。这种高级综合过程通过模块特性、模块间的连接关系和模块间的通信机制来调度高级语言输入文件所描述的系统,从而生成的可重构算子阵列配置信息或者数字电路信息灵活、可执行性高,且执行效率高。
附图说明
图1为一种可重构算子阵列的结构示意图;
图2为本发明的集成电路的高级综合方法的一种实施例的流程图;
图3为本发明的集成电路的高级综合方法中生成第一中间语言的一种实施例的流程图;
图4为本发明的集成电路的高级综合方法中生成的第三中间语言的语言结构的一种实施例的示意图;
图5为本发明的集成电路的高级综合方法中生成的第三中间语言的语句块的组成结构的一种实施例的示意图;
图6a和图6b分别为本发明的高级语言输入文件的一种实施例,和由高级语言输入文件对应生成的第三中间语言的一种实施例;
图7为本发明的对高级语言输入文件进行预综合的一种实施例的流程图;
图8为本发明的集成电路的高级综合方法中生成的抽象语法树的总结构的一种实施例的示意图;
图9为图本发明的集成电路的高级综合方法中生成的第三节点的子节点的组成结构的一种实施例的示意图;
图10为本发明的集成电路的高级综合方法中生成第二中间语言的一种实施例的流程图;
图11为本发明的集成电路的高级综合方法中生成的抽象语法树的一种具体实施例的结构示意图;
图12为本发明的集成电路的高级综合方法中对生成的第一中间语言进行仿真的一种实施例的流程图;
图13a和图13b分别为本发明的集成电路的高级综合方法中生成的第二中间语言描述文件的一种实施例,和由该第二中间语言描述文件生成的第一中间语言描述文件的一种实施例;
图14为本发明的集成电路的高级综合方法中对生成的第一中间语言进行仿真的一种实施例的流程图;
图15为本发明的集成电路的高级综合方法中生成可重构算子阵列可执行文件的一种实施例的流程图;
图16为本发明的集成电路的高级综合方法中生成硬件描述语言文件的一种实施例的流程图;
图17a和图17b分别为本发明的集成电路的高级综合方法生成的第一中间语言描述文件的一种实施例,和由该第一中间语言描述文件转换为硬件描述文件的一种实施例。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。
请参考图2,本实施方式的集成电路的高级综合方法,包括步骤:
S1,输入描述数字电路的高级语言输入文件。
本实施方式中的高级语言输入文件为描述数字电路情况的输入文件,其可以为C语言或者其他高级语言,如Java,C++,Matlab等。
S2,进行综合约束设置。
本实施方式中的综合约束以文件输入或者键盘输入等人机界面实现。
本实施方式通过综合约束设置约束了系统设计输出的运算速度、功率消耗、实际使用的电路面积、各类电路资源相对比例、目标可重构算子阵列的硬件结构、输入文件语言格式、电路资源使用策略。其中,电路资源使用策略是指在实现同样功能的情况下,在多种不同的电路资源使用方案中的选择策略,不同的方案间使用的电路模块类型和不同电路模块类型之间的比例都不一样。
S3,根据数字电路的高级语言输入文件和综合约束,生成第一中间语言。
本实施方中的第一中间语言的每一条语句代表一个特定的数字电路结构及各数字电路结构间的连接关系。
请参考图3,本实施方式中,步骤S3中由高级语言输入文件生成第一中间语言包括步骤:
S31,将输入的高级语言输入文件和综合约束进行预综合,生成第三中间语言。即将高级语言输入文件转换为由带有列表接口的语句块或者带有列表接口的嵌套语句块构成的主函数,即第三中间语言。
本实施方式中的抽象句法树是一个树型的数据存储结构,它包含数字电路情况的高级语言输入文件所描述的语句块信息、语句块之间接口信息与输入文件所描述的数字电路系统输入输出接口信息。
请参考图4,为本实施方式的第三中间语言的语言结构图,最顶层的描述是主函数块301,主函数301完成了对高级语言输入文件所描述系统的描述。该主函数301中包含了各子语句块302,高层的语句块302可以由底层的语句块302组成,其中,最底层子语句块302由各语句303或各类控制结构304组成。
当然,本实施方式中的语句块302之间还可互相嵌套,如图5所示。
本实施方式中的语句303可以是常数赋值语句,即把一个常数赋值给一个变量;该语句303也可以是运算赋值语句,即把某些变量运算的结果赋值给一个变量。
在本实施方式的第三中间语言一种具体实施例中:
其中“const2=4;”即为常数赋值语句303;“op1=ip3+ip4;”即为运算赋值语句303。
请参考图4,本实施方式中的控制结构304分为:分支结构、循环结构和复用结构。其中分支结构由if语句块实现,循环结构由while语句块实现,复用结构由函数实现。该控制结构304主要包括控制结构的关键字,控制结构的执行体,该执行体描述控制结构的功能,以及列表接口305,列表接口305由变量或数组以一定的集合组成。请参考图5,本实施方式中的列表接口305用于描述语句块和语句块之间的接口信息,语句块之间通过该列表接口305进行通信。
本实施方式中的循环结构由第三中间语言实现的一种具体实施例中:
其中,while为关键字,代表循环;“{a=b+i;i=i+c_1;}”即为该控制结构304的执行体,描述了该控制结构304的功能;“#info(a,i;b,const;const;i)”即为该控制结构304的列表接口。
请参考图6a,为输入高级语言输入文件的一种实施例的节选,其中op1,op2,op3,wr_tmp1,wr_tmp2等变量均为全局变量,数组a_ar[]、b_ar[]均为全局数组。请参考图7,对图6a所示的输入高级语言文件进行预综合,从而转换为第三中间语言的一种具体实施例包括步骤:
S701、检测该高级语言输入文件。
S702、当检测到上述的子函数testFun后,检测该子函数testFun中被读取的数组,即出现在“=”的右边的数组,并根据该数组相应生成列表接口的第一个元素a_ar。
S703,检测该子函数testFun中被写入的数组,即出现在”=”左边的数组,并根据该数据生成列表接口的第二个元素b_ar。
S704,检测被赋予子函数testFun的返回值的变量,并根据该变量生成列表接口的第三个元素op1。
S705,检测该子函数testFun中,完成写入或读取数组操作的变量,并根据该变量生成相应的列表接口的第四个元素wr_tmp1,wr_tmp2,x,y。
S706,生成对应的第三中间语言描述文件,如图6b所示
S32,将生成的第三中间语言进行综合前端,综合生成抽象语法树。
请参考图8,为本实施方式中的抽象语法树AST的总结构,包括整个程序的根节点program801;第一节点802的子节点存储了步骤S1中高级语言输入文件所描述系统的输入输出信息;第二节点803存储了步骤S1中高级语言输入文件中的全局变量或数组的声明信息,全局变量或数组是指在所有函数中都有效的变量或数组;第三节点804存储了步骤S1中高级语言输入文件中的所有函数的信息。
请参考图9,其中第三节点804是由多个节点901组成,节点901的第一子节点902包含了函数返回值的类型信息,第二子节点903包含了函数名称信息,第三子节点904包含了函数形参信息,第四子节点905和第六子节点907包含了这个函数语句块与其他语句块接口信息,第五子节点906包含了函数体语句块的信息。
S33,遍历上述抽象语法树,并按照预定的综合策略,将该抽象语法树转换为第二中间语言。
本实施方式中的预定的综合策略包括综合后输出系统的运算速度、功率消耗、实际使用的电路面积、各类电路资源相对比例、目标可重构算子阵列的硬件结构、输入文件语言格式、电路资源使用策略。
本实施方式中的第二中间语言的每一条语句都代表一个功能模块与此功能模块与其他模块的连接关系。
请参考图10,本实施方式中步骤S33包括步骤:
S331,读取AST树的每一个节点,从而得到每一个节点的信息。
S332,收集AST中与函数语句块相关的信息,并进行存储。
S333,根据读取的节点信息和收集的函数信息,检查AST生成是否正确,如是,则进行步骤S334,否则,系统停止,抛出异常警告用户。
S334,根据读取的节点信息发射第二中间语言。
S335,输出第二中间语言。
本实施方式中同类型的节点信息对应了固定发射了一条或几条第二中间语言或一条第二中间语言的某部分。
请参考图11,本实施方式中由AST转换为对应的第二中间语言的一种具体实施例中,AST的节点1301对应“SUB8”,节点1302对应“port8@205”,节点1303对应“port8@177”,节点1304对应“port8@238”,所以发射的第二中间语言的语句为:
M33:SUBB port8@177,port8@238。
本实施方式中由于第三中间语言的语言描述抽象层次高,类似于高级语言描述,而第二中间语言的语言描述抽象层次较低,更接近于模块化的数字电路描述,且第二中间语言的每一条语句都代表一个功能模块与此功能模块与其他模块的连接关系,因此通过将第三中间语言转换为第二中间语言来降低系统输入文件的抽象层次,以便于后面将系统输入文件转换为相应的可重构算子阵列可执行文件或者相应的硬件描述。
S34,将第二中间语言进行综合后端,生成第一中间语言,并进行仿真。本实施方式中的第二中间语言的描述抽象层次,虽然低于类似于高级语言的第三中间语言,但是不能直接转换成硬件描述语言或可重构算子阵列可执行文件。本实施方式通过将第二中间语言转换为第一中间语言,即通过降低第二中间语言的抽象层次,从而第一中间语言可以直接转换成硬件描述语言或可重构算子阵列。
请参考图12,本实施方式的将第二中间语言进行综合后端,生成第一中间语言包括步骤:
S341,分解第二中间语言的运算粒度到更低的层次。
S342,转换第二中间语言中功能模块到第一中间语言,且功能等效。
S343,插入对应通信单元。
本实施方式中,由于在第二中间语言中描述的抽象层次较高,部分模块连接的通信机制在硬件上无法直接实现,因此需加入一定的通信单元。
S344,修改模块间连接信号的编号。
本实施方式中,由于加入了新的通信单元,各个功能模块间的连接不能直接套用第二中间语言的形式,因此,需要对负责功能模块间连接的信号进行重新编号。
请参考图13a,为本实施方的一种实施例中,通过遍历抽象语法树,生成的第二中间语言描述文件。请参考图13b,为对图13a的第二中间语言描述文件进行综合后端,得到的第三中间语言描述文件。其中,图13a的第二中间语言描述文件中的一条16位加法语句(即两个十六位数相加):M1:AND 16port32@1,port32@2,port32@3,经过降低其粒度,转换为了第三中间语言描述中的两条8位加法语句分别为:M1:AND port@1_1,port@2_1,port@3_1,M1:AND port@1_2,port@2_2,port@3_2;其中,由于该第二中间语言描述文件中的语句:M3:-8CONU-16 port8@5,port6@6,不能够直接拆分,对其进行功能等效转换为第三中间语言描述的语句为:M3:BRD port@5_1,port@5_5,port@5_6,M3:OR port@5_5,port@6_3,port@6_1,M3:MOVI 127,port@6_4;其中,第三中间语言描述中的语句:M4:BRD port@9_1,port@9_3,是插入的通信单元,从而把原来第二中间语言中的port8@9信号广播成了2个信号,使port8@9中的数据可以被更多模块使用。请参考图13a和图13b,生成的第三中间语言中的信号编号发生了一定变化。
本实施方式中的第一中间语言中每一条语句都代表一个特定的数字电路结构及各数字电路结构间的连接关系。这个特定的数字电路结构既可以通过步骤S4a和步骤S5a下载到可重构算子阵列上实施,或者由步骤S4b和S5b后转换成具体的数字电路。
请参考图14实施方式中对生成的第一中间语言进行仿真包括步骤:
S341,在仿真系统启动时配置仿真系统运行参数,包括输入待仿真的系统描述文件、输入仿真数据文件、输出仿真数据文件、仿真系统运行时间等。
本实施方式中的待仿真的系统描述文件为由第一语言描述文件。
S342,读取输入待仿真的系统描述文件,生成系统描述文件中描述的各子模块。
S343,将输入仿真数据文件中的数据输入到系统的数据存储容器中,等待各子模块启动,这些数据即被释放。
S344,通过读取输入待仿真的系统描述文件,连接步骤S342中所生成的所有子模块。
S345,启动整个仿真的运行,即启动所有子模块工作。
S346,输出仿真数据文件中所描述的输出数据到指定文件。
S4a,将该第一中间语言转换为可重构算子可执行文件,并执行步骤S5a。
请参考图15,本实施方式的步骤S4a包括步骤:
S4a1,根据第一中间语言在可重构算子阵列上进行布局布线。
本实施方式中进行布局布线包括步骤:
S4a11,根据该第一中间语言的每条语句中的特定数字电路结构确定其在可重构算子阵列中的实施位置。
S4a12,再根据第一中间语言的各个语句中各特定数字电路结构之间的连接关系,确定完成各特定的数字电路结构之间的连接关系所消耗的电路资源情况。
本实施方式中的电路资源主要指硬件连线资源。
S4a2,对布局布线后的可重构算子阵列进行仿真与验证;
S4a3,将经过验证后的输出的文件转换为可重构算子可执行文件,并下载实施。
S4b,将第一中间语言转换为对应的硬件描述文件,执行步骤S5b。
本实施方式中的第一中间语言的每一条语句包括功能信息和连接信息。
请参考图16,本实施方式将第一中间语言转换为硬件描述文件包括步骤:
S4b1,转换系统从由第一中间语言描述的输入文件中主要读取两部分信息。一部分是第一中间语言中各条语句的功能信息;另一部分是第一中间语言中各条语句的连接信息,即语句间数据交换通路的信息。
S4b2,在读取到功能信息后,查找硬件描述语言模型库,得到对应功能信息的硬件描述语言描述。
S4b3,再结合连接信息,即可生成整个系统的硬件描述语言描述。
S5a,调试可重构算子阵列,并执行步骤S6。
S5b,根据该硬件描述文件生成相应的数字电路。
S6,输出结果。
请参考图17a,为本实施方式的一种实施例中,由第二中间语言经过综合后端,生成的第一中间语言描述文件的节选。请参考图17b,为将图17a所示的第一中间语言转换成硬件描述文件后的verilog。其中硬件描述文件中的功能模块alu_operator u_alu_1和alu_operator u_alu_2对应第一中间语言ADD模块和NOT模块,第一中间语言中的连接关系在硬件描述文件中转化为了reg信号和wire信号(见verilog程序的开头部分),硬件描述文件中通过对两个模块输入不同的信号完成等同于第一中间描述的不同硬件功能的实现。
本发明的高级综合方法通过综合生成第一中间语言,再由第一中间语言生成相应的可重构算子可执行文件或者硬件描述文件,从而输出具有多目标的特性,即既可以通过生成可重构算子阵列可执行文件把高级语言输入文件所描述的系统下载到可重构算子阵列上实施,又可以通过生成硬件描述文件把输入文件所描述的系统下载到FPGA或ASIC上实施。
另一方面,本发明的高级综合方法,通过将高级输入文件转换为抽象层次高的第三中间语言,再由该第三中间语言转换为抽象层次较低的第二中间语言,该第二中间语言接近于模块化的数字电路描述,再由该第二中间语言转换为第一中间语言,最后由该第一中间语言直接转换为硬件描述语言或可重构算子阵列。本发明采用模块化思想的第一中间语言、第二中间语言和第三中间语言作为转换过程的中间表示形式,并着重描述具有一定功能模块的特性与模块间的连接关系和通信关系。这种高级综合过程通过模块特性、模块间的连接关系和模块间的通信机制来调度高级语言输入文件所描述的系统,从而生成的可重构算子阵列配置信息或者数字电路信息灵活、可执行性高,且执行效率高。
以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (8)
1.一种集成电路的高级综合方法,其特征在于,包括步骤:
输入描述数字电路的高级语言输入文件,并进行综合约束设置;
根据所述数字电路的高级语言输入文件和综合约束,生成第一中间语言,所述第一中间语言的每一条语句代表一个特定的数字电路结构及各数字电路结构间的连接关系;
将所述第一中间语言转换为可重构算子可执行文件,并下载至所述可重构算子阵列中实施,或者将所述第一中间语言转换为对应的硬件描述文件,并根据所述硬件描述文件生成相应的数字电路。
2.如权利要求1所述的方法,其特征在于,生成所述第一中间语言包括步骤:
将输入的所述高级语言输入文件和综合约束进行预综合,生成第三中间语言,所述第三中间语言为由带有列表接口的语句块或者带有列表接口的嵌套语句块构成的主函数;
将所述第三中间语言进行综合前端,综合生成抽象语法树,所述抽象语法树包含所述高级语言输入文件所描述的语句块信息、语句块之间接口信息与输入文件所描述的数字电路系统输入输出接口信息的;
遍历所述抽象语法树,并按照预定的综合策略转换为第二中间语言,所述第二中间语言的每一条语句都代表一个功能模块与此功能模块与其他模块的连接关系;
将所述第二中间语言进行综合后端,生成第一中间语言,并进行仿真。
3.如权利要求2所述的方法,其特征在于,所述预定的综合策略包括综合后输出系统的运算速度、功率消耗、实际使用的电路面积、各类电路资源相对比例、目标可重构算子阵列的硬件结构、输入文件语言格式、电路资源使用策略。
4.如权利要求2所述的方法,其特征在于,所述抽象语法树包括根节点;第一节点,用于存储所述高级语言输入文件所描述系统的输入输出信息;第二节点,用于存储高级语言输入文件中的全局变量或数组的声明信息;第三节点,用于存储高级语言输入文件中的所有函数的信息,所述第一节点、第二节点和第三节点均与所述根节点相连,则遍历所述抽象语法树生成所述第二中间语言包括步骤:
读取抽象语法树的每一个节点,得到每一个节点的信息;
收集抽象语法树中与函数语句块相关的信息,并存储;
根据所述节点信息和函数信息,检查所述抽象语法树生成是否正确,如是,则根据读取的节点信息发射第二中间语言。
5.如权利要求2所述的方法,其特征在于,对所述第一中间语言进行仿真包括步骤:
在仿真系统启动时配置仿真系统运行参数,包括输入待仿真的第一中间语言、输入仿真数据文件、输出仿真数据文件、仿真系统运行时间等;
读取输入待仿真的第一中间语言的系统描述文件,生成系统描述文件中描述的各子模块;
将输入仿真数据文件中的数据输入到系统的数据存储容器中,等待各子模块启动;
读取输入待仿真的系统描述文件,连接生成的所述所有子模块;
启动整个仿真的运行,即启动所有子模块工作;
输出仿真数据文件中所描述的输出数据到指定文件。
6.如权利要求1所述的方法,其特征在于,将所述第一中间语言转换为可重构算子可执行文件包括步骤:
根据所述第一中间语言在可重构算子阵列上进行布局布线;
对布局布线后的可重构算子阵列进行仿真与验证;
将经过验证后的输出的文件转换为可重构算子可执行文件。
7.如权利要求6所述的方法,其特征在于,根据所述第一中间语言再可重构算子阵列上进行布局布线包括步骤:
根据所述第一中间语言的每条语句中的特定数字电路结构确定其在可重构算子阵列中的实施位置;
再根据所述第一中间语言的各个语句中各特定数字电路结构之间的连接关系,确定完成各特定的数字电路结构之间的连接关系所消耗的电路资源情况。
8.如权利要求1所述的方法,其特征在于,所述第一中间语言的每一条语句包括功能信息和连接信息,则将所述第一中间语言转换为相应的硬件描述文件包括步骤:
主要读取所述第一中间语言的功能信息和连接信息;
根据所述功能信息查找硬件描述语言模型库,得到相应的硬件描述语言描述;
结合所述连接信息,生成相应的硬件描述语言文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110084177 CN102163248B (zh) | 2011-04-02 | 2011-04-02 | 一种集成电路的高级综合方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110084177 CN102163248B (zh) | 2011-04-02 | 2011-04-02 | 一种集成电路的高级综合方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102163248A true CN102163248A (zh) | 2011-08-24 |
CN102163248B CN102163248B (zh) | 2012-12-05 |
Family
ID=44464473
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110084177 Expired - Fee Related CN102163248B (zh) | 2011-04-02 | 2011-04-02 | 一种集成电路的高级综合方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102163248B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106462431A (zh) * | 2014-06-02 | 2017-02-22 | 赛灵思公司 | 在高级综合中提取系统架构 |
CN106775905A (zh) * | 2016-11-19 | 2017-05-31 | 天津大学 | 基于fpga的高级综合实现拟牛顿算法加速的方法 |
CN107179932A (zh) * | 2017-05-26 | 2017-09-19 | 福建师范大学 | 基于fpga高层次综合指令的优化方法及其系统 |
CN111460747A (zh) * | 2020-04-10 | 2020-07-28 | 重庆百瑞互联电子技术有限公司 | 一种用于集成电路设计的标准单元追踪方法 |
CN112035397A (zh) * | 2019-06-04 | 2020-12-04 | 三星电子株式会社 | 包括fpga的电子系统及其操作方法 |
WO2023130464A1 (zh) * | 2022-01-10 | 2023-07-13 | 华为技术有限公司 | 用于设计电路的方法、电子设备、计算机可读存储介质和程序产品 |
CN116663463A (zh) * | 2023-07-27 | 2023-08-29 | 北京开源芯片研究院 | 一种电路验证方法、装置、电子设备及可读存储介质 |
US11967952B2 (en) | 2019-06-04 | 2024-04-23 | Samsung Electronics Co., Ltd. | Electronic system including FPGA and operation method thereof |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0981605A (ja) * | 1995-09-08 | 1997-03-28 | Nippon Telegr & Teleph Corp <Ntt> | ハイレベルシンセシスにおける演算コストの計算方法、およびスケジューリング方法 |
CN1501293A (zh) * | 2002-10-22 | 2004-06-02 | 松下电器产业株式会社 | 用于产生数字电路的电路说明的高级综合方法 |
DE10338964A1 (de) * | 2003-08-25 | 2005-04-07 | Kuratorium Offis E.V. | Verfahren und Vorrichtung zum Schaltungsentwurf mittels High-Level-Synthese |
US20050289499A1 (en) * | 2004-06-25 | 2005-12-29 | Matsushita Electric Industrial Co., Ltd. | High level synthesis method for semiconductor integrated circuit |
-
2011
- 2011-04-02 CN CN 201110084177 patent/CN102163248B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0981605A (ja) * | 1995-09-08 | 1997-03-28 | Nippon Telegr & Teleph Corp <Ntt> | ハイレベルシンセシスにおける演算コストの計算方法、およびスケジューリング方法 |
CN1501293A (zh) * | 2002-10-22 | 2004-06-02 | 松下电器产业株式会社 | 用于产生数字电路的电路说明的高级综合方法 |
DE10338964A1 (de) * | 2003-08-25 | 2005-04-07 | Kuratorium Offis E.V. | Verfahren und Vorrichtung zum Schaltungsentwurf mittels High-Level-Synthese |
US20050289499A1 (en) * | 2004-06-25 | 2005-12-29 | Matsushita Electric Industrial Co., Ltd. | High level synthesis method for semiconductor integrated circuit |
Non-Patent Citations (1)
Title |
---|
《中国博士学位论文全文数据库(信息科技辑)》 20070915 沈英哲 可重构计算系统中软硬件代码划分技术研究 正文第9,32页、图1-8(a) 1 , * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106462431A (zh) * | 2014-06-02 | 2017-02-22 | 赛灵思公司 | 在高级综合中提取系统架构 |
CN106775905A (zh) * | 2016-11-19 | 2017-05-31 | 天津大学 | 基于fpga的高级综合实现拟牛顿算法加速的方法 |
CN107179932A (zh) * | 2017-05-26 | 2017-09-19 | 福建师范大学 | 基于fpga高层次综合指令的优化方法及其系统 |
CN112035397A (zh) * | 2019-06-04 | 2020-12-04 | 三星电子株式会社 | 包括fpga的电子系统及其操作方法 |
CN112035397B (zh) * | 2019-06-04 | 2024-04-16 | 三星电子株式会社 | 包括fpga的电子系统及其操作方法 |
US11967952B2 (en) | 2019-06-04 | 2024-04-23 | Samsung Electronics Co., Ltd. | Electronic system including FPGA and operation method thereof |
CN111460747A (zh) * | 2020-04-10 | 2020-07-28 | 重庆百瑞互联电子技术有限公司 | 一种用于集成电路设计的标准单元追踪方法 |
CN111460747B (zh) * | 2020-04-10 | 2023-03-31 | 重庆百瑞互联电子技术有限公司 | 一种用于集成电路设计的标准单元追踪方法 |
WO2023130464A1 (zh) * | 2022-01-10 | 2023-07-13 | 华为技术有限公司 | 用于设计电路的方法、电子设备、计算机可读存储介质和程序产品 |
CN116663463A (zh) * | 2023-07-27 | 2023-08-29 | 北京开源芯片研究院 | 一种电路验证方法、装置、电子设备及可读存储介质 |
CN116663463B (zh) * | 2023-07-27 | 2023-11-10 | 北京开源芯片研究院 | 一种电路验证方法、装置、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102163248B (zh) | 2012-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102163248B (zh) | 一种集成电路的高级综合方法 | |
US9335977B2 (en) | Optimization of a data flow program based on access pattern information | |
CN109597646A (zh) | 具有可配置空间加速器的处理器、方法和系统 | |
Gordon et al. | A stream compiler for communication-exposed architectures | |
US7305649B2 (en) | Automatic generation of a streaming processor circuit | |
CN103019742A (zh) | 一种多dsp平台上的自动代码生成方法 | |
CN102508816B (zh) | 一种应用于粗粒度可重构阵列的配置方法 | |
KR101302879B1 (ko) | 시스템 온 칩의 적어도 일부의 테스팅을 가능하게 하는 방법과 장치 및 컴퓨터 판독 가능한 저장 매체 | |
CN103116493B (zh) | 一种应用于粗粒度可重构阵列的自动映射方法 | |
KR20100084186A (ko) | 시스템 온 칩을 기술하고 테스트하는 방법 및 장치 | |
KR20100084569A (ko) | 테스팅 방법 | |
CN102541540A (zh) | 一种多星遥测参数图形化配置系统 | |
CN110503179A (zh) | 计算方法以及相关产品 | |
Takach et al. | An automaton model for scheduling constraints in synchronous machines | |
Ziebinski et al. | Soft core processor generated based on the machine code of the application | |
CN102129495B (zh) | 一种降低可重构算子阵列结构功耗的方法 | |
US7676661B1 (en) | Method and system for function acceleration using custom instructions | |
Fricke et al. | Automatic tool-flow for mapping applications to an application-specific cgra architecture | |
Sahin | A compilation tool for automated mapping of algorithms onto FPGA-based custom computing machines | |
Nguyen et al. | Model-driven SoC design: the UML-SystemC bridge | |
Duncan et al. | The COBRA-ABS high-level synthesis system for multi-FPGA custom computing machines | |
Marinescu et al. | High-level specification and efficient implementation of pipelined circuits | |
Kapre | Packet-switched on-chip FPGA overlay networks | |
Meftali et al. | Scalable multistage networks for multiprocessor system-on-chip design | |
Böhm | A framework for incremental modelling and verification of on-chip protocols |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121205 Termination date: 20200402 |
|
CF01 | Termination of patent right due to non-payment of annual fee |