CN112541310A - 逻辑综合控制方法及装置 - Google Patents

逻辑综合控制方法及装置 Download PDF

Info

Publication number
CN112541310A
CN112541310A CN202011509557.XA CN202011509557A CN112541310A CN 112541310 A CN112541310 A CN 112541310A CN 202011509557 A CN202011509557 A CN 202011509557A CN 112541310 A CN112541310 A CN 112541310A
Authority
CN
China
Prior art keywords
memory
design file
initial value
rtl design
logic synthesis
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
Application number
CN202011509557.XA
Other languages
English (en)
Other versions
CN112541310B (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.)
Gowin Semiconductor Corp
Original Assignee
Gowin Semiconductor Corp
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 Gowin Semiconductor Corp filed Critical Gowin Semiconductor Corp
Priority to CN202011509557.XA priority Critical patent/CN112541310B/zh
Publication of CN112541310A publication Critical patent/CN112541310A/zh
Application granted granted Critical
Publication of CN112541310B publication Critical patent/CN112541310B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • 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

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)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本发明公开了逻辑综合控制方法及装置,包括:检测读取到的RTL设计文件中存储器的初值是否发生变化;当检测结果为是时,根据预先建立的映射关系,对应修改最近一次对RTL设计文件执行逻辑综合操作得到的综合后网表中存储器实例的初值,以更新该综合后网表,该映射关系用于表示RTL设计文件中存储器的初值与最近一次对RTL设计文件执行逻辑综合操作得到的综合后网表中存储器实例的初值之间的对应关系。可见,本发明能够在RTL设计文件中存储器的初值发生变化的情况下根据预先建立的映射关系,只需对应修改综合后网表中存储器实例的初值即可,无需再次进行逻辑综合,有利于减少逻辑综合时间,提高FPGA的开发设计效率。

Description

逻辑综合控制方法及装置
技术领域
本发明涉及FPGA技术领域,尤其涉及一种逻辑综合控制方法及装置。
背景技术
人工智能是研究并开发用于模拟、延伸和扩展人类智能的理论、方法、技术及应用系统的一门新的技术科学,是新一轮产业变革的核心驱动力和经济发展的新引擎。FPGA作为一种通用的可编程逻辑器件,其设计更接近于硬件底层的架构,拥有大量的RAM资源、DSP资源等,具有擅长数据并行计算、更加灵活和低延迟的特点,同时还具有功耗低、可编程及设计灵活等特点。基于此,FPGA在人工智能的很多应用领域得到了广泛的使用。
在将FPGA应用到人工智能领域的实际应用中,确定出人工智能的系统算法之后,在不同的应用环境或应用场景下,通常需要不断的修改系统算法的参数。实践发现,每次修改系统算法的参数之后均需要对FPGA开发的整个流程进行更新,大大增加了FPGA的开发时间,降低了FPGA的开发效率。可见,如何提高FPGA的开发效率显得尤为重要。
发明内容
本发明提供了一种逻辑综合控制方法及装置,能够提高FPGA的开发效率。
本发明第一方面公开了一种逻辑综合控制方法,检测读取到的RTL设计文件中存储器的初值是否发生变化;
当检测到所述RTL设计文件中所述存储器的初值发生变化时,根据预先建立的映射关系对应修改最近一次对所述RTL设计文件执行逻辑综合操作得到的综合后网表中存储器实例的初值,以更新该综合后网表;
其中,所述映射关系用于表示所述RTL设计文件中所述存储器的初值与最近一次对所述RTL设计文件执行逻辑综合操作得到的综合后网表中存储器实例的初值之间的对应关系。
作为一种可选的实施方式,在本发明第一方面中,所述检测读取到的RTL设计文件中存储器的初值是否发生变化之前,所述方法还包括:
在首次对读取到的RTL设计文件执行逻辑综合操作之后,建立所述RTL设计文件中存储器的初值与最近一次对所述RTL设计文件执行逻辑综合操作得到的综合后网表中存储器实例的初值之间的映射关系。
作为一种可选的实施方式,在本发明第一方面中,在检测到所述RTL设计文件中所述存储器的初值发生变化之后,所述方法还包括:
检测所述RTL设计文件中除了所述存储器的初值发生变化之外是否还存在其它部分的修改;
当检测到所述RTL设计文件中除了所述存储器的初值发生变化之外不存在其它部分的修改时,触发执行所述的根据预先建立的映射关系对应修改最近一次对所述RTL设计文件执行逻辑综合操作得到的综合后网表中存储器实例的初值,以更新该综合后网表的操作。
作为一种可选的实施方式,在本发明第一方面中,所述方法还包括:
当检测到所述RTL设计文件中除了所述存储器的初值发生变化之外还存在其它部分的修改时,根据所述RTL设计文件执行逻辑综合操作。
作为一种可选的实施方式,在本发明第一方面中,所述方法还包括:
根据所述RTL设计文件中所述存储器的初值以及最近一次对所述RTL设计文件执行逻辑综合操作得到的综合后网表,更新所述映射关系。
作为一种可选的实施方式,在本发明第一方面中,所述检测读取到的RTL设计文件中存储器的初值是否发生变化,包括:
在对所述RTL设计文件执行逻辑综合操作得到综合后网表之后,检测是否接收到目标数据,所述目标数据是对预先确定出的AI算法对应的新程序代码进行编译处理后得到的;
当检测接收到所述目标数据时,确定读取到的RTL设计文件中存储器的初值发生变化;
以及,在检测接收到所述目标数据之后,所述方法还包括:
将接收到的所述目标数据存储至所述RTL设计文件的存储器中,以更新所述RTL设计文件中所述存储器的初值。
作为一种可选的实施方式,在本发明第一方面中,所述映射关系还用于表示最近一次对所述RTL设计文件执行逻辑综合操作得到的综合后网表中所述存储器实例的初值在所述RTL设计文件中的数据来源。
本发明第二方面公开了一种逻辑综合控制装置,所述装置包括:
第一检测模块,用于检测读取到的RTL设计文件中存储器的初值是否发生变化;
修改模块,用于当所述第一检测模块检测到所述RTL设计文件中所述存储器的初值发生变化时,根据预先建立的映射关系对应修改最近一次对所述RTL设计文件执行逻辑综合操作得到的综合后网表中存储器实例的初值,以更新该综合后网表;
其中,所述映射关系用于表示所述RTL设计文件中所述存储器的初值与最近一次对所述RTL设计文件执行逻辑综合操作得到的综合后网表中存储器实例的初值之间的对应关系。
作为一种可选的实施方式,在本发明第二方面中,所述装置还包括:
建立模块,用于在首次对读取到的RTL设计文件执行逻辑综合操作之后,建立所述RTL设计文件中存储器的初值与最近一次对所述RTL设计文件执行逻辑综合操作得到的综合后网表中存储器实例的初值之间的映射关系。
作为一种可选的实施方式,在本发明第二方面中,所述装置还包括:
第二检测模块,用于在所述第一检测模块检测到所述RTL设计文件中所述存储器的初值发生变化之后,检测所述RTL设计文件中除了所述存储器的初值发生变化之外是否还存在其它部分的修改,当检测到所述RTL设计文件中除了所述存储器的初值发生变化之外不存在其它部分的修改时,触发所述修改模块执行所述的根据预先建立的映射关系对应修改最近一次对所述RTL设计文件执行逻辑综合操作得到的综合后网表中存储器实例的初值,以更新该综合后网表的操作。
作为一种可选的实施方式,在本发明第二方面中,所述装置还包括:
逻辑综合模块,用于当所述第二检测模块检测到所述RTL设计文件中除了所述存储器的初值发生变化之外还存在其它部分的修改时,根据所述RTL设计文件执行逻辑综合操作。
作为一种可选的实施方式,在本发明第二方面中,所述装置还包括:
更新模块,用于在所述逻辑综合模块根据所述RTL设计文件执行逻辑综合操作之后,根据所述RTL设计文件中所述存储器的初值以及最近一次对所述RTL设计文件执行逻辑综合操作得到的综合后网表,更新所述映射关系。
作为一种可选的实施方式,在本发明第二方面中,所述第一检测模块包括:
检测子模块,用于在对所述RTL设计文件执行逻辑综合操作得到综合后网表之后,检测是否接收到目标数据,所述目标数据是对预先确定出的AI算法对应的新程序代码进行编译处理后得到的;
确定子模块,用于当所述检测子模块检测接收到所述目标数据时,确定读取到的RTL设计文件中存储器的初值发生变化;
以及,所述装置还包括:
存储模块,用于将接收到的所述目标数据存储至所述RTL设计文件的存储器中,以更新所述RTL设计文件中所述存储器的初值。
作为一种可选的实施方式,在本发明第二方面中,所述映射关系还用于表示最近一次对所述RTL设计文件执行逻辑综合操作得到的综合后网表中所述存储器实例的初值在所述RTL设计文件中的数据来源。
本发明第三方面公开了另一种逻辑综合控制装置,所述装置包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行本发明第一方面公开的逻辑综合控制方法中的部分或全部步骤。
本发明第四方面公开了一种计算机存储介质,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行本发明第一方面公开的逻辑综合控制方法中的部分或全部步骤。
与现有技术相比,本发明实施例具有以下有益效果:
本发明实施例中,检测读取到的RTL设计文件中存储器的初值是否发生变化;当检测结果为是时,根据预先建立的映射关系,对应修改最近一次对RTL设计文件执行逻辑综合操作得到的综合后网表中存储器实例的初值,以更新该综合后网表,该映射关系用于表示RTL设计文件中存储器的初值与最近一次对RTL设计文件执行逻辑综合操作得到的综合后网表中存储器实例的初值之间的对应关系。可见,本发明能够在RTL设计文件中存储器的初值发生变化的情况下根据预先建立的映射关系,只需对应修改综合后网表中存储器实例的初值即可,无需再次进行逻辑综合,有利于减少逻辑综合时间,提高FPGA的开发设计效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例公开的一种逻辑综合控制方法的流程示意图;
图2是本发明实施例公开的另一种逻辑综合控制方法的流程示意图;
图3是本发明实施例公开的一种FPGA开发设计流程的对比示意图;
图4是本发明实施例公开的一种逻辑综合控制装置的结构示意图;
图5是本发明实施例公开的另一种逻辑综合控制装置的结构示意图;
图6是本发明实施例公开的又一种逻辑综合控制装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品、端口或端没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品、端口或端固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本发明公开了一种逻辑综合控制方法及装置,能够在RTL设计文件中存储器的初值发生变化的情况下根据预先建立的映射关系,只需对应修改综合后网表中存储器实例的初值即可,无需再次进行逻辑综合,有利于减少逻辑综合时间,提高FPGA的开发设计效率。以下分别进行详细说明。
实施例一
请参阅图1,图1是本发明实施例公开的一种逻辑综合控制方法的流程示意图。其中,图1所描述的方法可以应用于FPGA综合工具中,该FPGA综合工具可以与人工智能相结合,实现将FPGA应用于人工智能领域中。如图1所示,该方法可以包括以下操作:
101、FPGA综合工具检测读取到的RTL设计文件中存储器的初值是否发生变化;当步骤101的判断结果为是时,触发执行步骤102;当步骤101的判断结果为否时,可以结束本次流程,也可以继续触发执行步骤101。
本发明实施例中,在FPGA的开发设计流程中,RTL设计文件中定义的存储器(memory)在逻辑综合过程中通常会被推断(infer)为FPGA芯片中的存储器实例(memoryinstance),且由于RTL设计文件中存储器的初值不同,逻辑综合后生成的存储器实例的初值也有所不同。
本发明实施例中,在FPGA综合工具进行逻辑综合的过程中,首先读取RTL设计文件及存储器初值文件,在首次逻辑综合时,FPGA综合工具将RTL设计文件中能够被推断为存储器实例的电路推断为存储器实例。其中,RTL设计文件中的存储器使用一系列的寄存器数组(register array)来表示,使用解码器来选择存储器的写入,使用译码器来实现存储器的读出,解码器、寄存器数组及译码器组合起来可以被推断为存储器实例,且在推断为存储器实例的过程中,FPGA综合工具根据被推断为存储器实例的电路的连接关系将存储器实例的读地址、写地址、输入端口、输出端口进行连接,同时设置读模式、写模式、存储器初值及其它配置参数,在确定出RTL设计文件中存储器初值的同时,记录存储器实例的初值在RTL设计文件中的数据来源以及存储器实例的初值与RTL设计文件中存储器的初值的对应关系。
102、当检测到RTL设计文件中存储器的初值发生变化时,FPGA综合工具根据预先建立的映射关系对应修改最近一次对RTL设计文件执行逻辑综合操作得到的综合后网表中存储器实例的初值,以更新该综合后网表。
本发明实施例中,该映射关系用于表示RTL设计文件中存储器的初值与最近一次对RTL设计文件执行逻辑综合操作得到的综合后网表中存储器实例的初值之间的对应关系。可选的,该映射关系还用于表示最近一次对RTL设计文件执行逻辑综合操作得到的综合后网表中存储器实例的初值在RTL设计文件中的数据来源,有利于提高对应修改综合后网表中存储器实例的效率及准确性。
本发明实施例中,FPGA综合工具根据预先建立的映射关系对应修改最近一次对RTL设计文件执行逻辑综合操作得到的综合后网表中存储器实例的初值,以更新该综合后网表,可以具体包括:
FPGA综合工具根据预先建立的映射关系确定RTL设计文件中发生变化的存储器的初值所对应的最近一次对RTL设计文件执行逻辑综合操作得到的综合后网表中存储器实例的目标位置;
FPGA综合工具将综合后网表中存储器实例在该目标位置的初值修改为RTL设计文件中发生变化的存储器的初值。
可选的,该映射关系可以是在首次对读取到的RTL设计文件执行逻辑综合操作得到综合后网表之后建立的,也可以是在对读取到的RTL设计文件执行预设次数的逻辑综合操作之后建立的,本发明实施例不作限定,且最优方案为前者。其中,建立映射关系之后,在后续的开发设计流程中,若RTL设计文件中存储器的初值发生变化,本发明实施例所描述的方法只需对应修改存储器实例的初值即可,无需再次进行逻辑综合,能够减少逻辑综合次数,进而减少逻辑综合时间,有利于提高FPGA的开发设计效率,且在首次对读取到的RTL设计文件执行逻辑综合操作得到综合后网表之后建立映射关系,能够使得后续执行逻辑综合操作的次数最小化,进一步减少逻辑综合时间,进一步提高了FPGA的开发设计效率。
在一个可选的实施例中,FPGA综合工具检测读取到的RTL设计文件中存储器的初值是否发生变化,可以包括:
在对RTL设计文件执行逻辑综合操作得到综合后网表之后,FPGA综合工具检测是否接收到目标数据,该目标数据是对预先确定出的AI算法对应的新程序代码进行编译处理后得到的;
当检测接收到目标数据时,FPGA综合工具确定读取到的RTL设计文件中存储器的初值发生变化。
进一步的,该方法还可以包括以下操作:
将接收到的目标数据存储至RTL设计文件的存储器中,以更新RTL设计文件中存储器的初值。
本发明实施例中,当FPGA应用于人工智能领域时,若AI算法的参数发生变化,对AI算法对应的新程序代码编译处理后的目标数据需要发送至FPGA综合工具中,由FPGA综合工具将接收到的目标数据更新存储至RTL设计文件的存储器中,以作为RTL设计文件中存储器的最新初值,也即当检测接收到对AI算法对应的新程序代码编译处理后的目标数据时,FPGA综合工具即可认定RTL设计文件中存储器的初值发生变化。
以示例1举例说明,具体如下:
Figure BDA0002845982700000081
其中,此存储器数据宽度为4,深度为8,存储器大小为4*8,此存储器的初值被设置为{a73,a72,a71,a70;a63,a62,a61,a60;...;a03,a02,a01,a00},解析器解析到的初值大小为宽度为1、深度为32的1*32矩阵,逻辑综合过程中将此存储器推断为memory instanceins01,此memory instance ins01使用参数INIT0~INIT7来表示存储器的初值。逻辑综合过程中生成的初值对应关系文件内容如下:
Figure BDA0002845982700000091
其中,该对应关系文件显示了RTL设计文件中存储器的初值与综合后网表中memory instance INIT的对应关系。当RTL设计文件中只有a73a72a71a70发生变化时,只需要将上一次综合后网表的ins01.INIT_7=a73a72a71a70进行修改即可。需要说明的是,该对应关系文件可以以文本格式、网页格式或其它用户可读的任何格式呈现,只要能够表明RTL设计文件中存储器的初值与综合后网表中存储器实例的初值的对应关系即可。
本发明实施例所描述的方法应用于人工智能领域的FPGA开发设计流程与现有技术中应用于人工智能领域的FPGA开发设计流程的对比可以参照图3所示,图3是本发明实施例公开的一种FPGA开发设计流程的对比示意图,其中,图3中的3a表示现有技术中应用于人工智能领域的FPGA开发设计流程,图3中的3b表示本发明实施例所描述的方法应用于人工智能领域的FPGA开发设计流程。如图3所示,图3中的3a表示当AI算法的参数发生变化时,RTL设计文件中存储器的初值也发生变化,FPGA综合工具需要重新执行逻辑综合操作得到新的综合后网表,根据新的综合后网表进行布局布线并将布局布线结果生成可以写入到FPGA芯片的位流文件,最后将位流文件下载至FPGA中以完成FPGA的开发设计;图3中的3b表示当AI算法的参数发生变化时,RTL设计文件中存储器的初值也发生变化,根据已建立的映射关系直接修改最新得到的综合后网表中存储器实例的初值以更新综合后网表,根据更新后的综合后网表进行布局布线并将布局布线结果生成可以写入到FPGA芯片的位流文件,最后将位流文件下载至FPGA中以完成FPGA的开发设计。通过对比可知,本发明实施例所描述的方法应用于人工智能领域的FPGA开发设计流程时能够在人工智能的系统算法的参数发生变化时,无需再次进行逻辑综合,有利于减少逻辑综合时间,提高FPGA的开发设计效率。
可见,本发明实施例所描述的方法能够在RTL设计文件中存储器的初值发生变化的情况下根据预先建立的映射关系,只需对应修改综合后网表中存储器实例的初值即可,无需再次进行逻辑综合,有利于减少逻辑综合时间,提高FPGA的开发设计效率。
实施例二
请参阅图2,图2是本发明实施例公开的另一种逻辑综合控制方法的流程示意图。其中,图2所描述的方法可以应用于FPGA综合工具中,该FPGA综合工具可以与人工智能相结合,实现将FPGA应用于人工智能领域中。如图2所示,该方法可以包括以下操作:
201、在首次对读取到的RTL设计文件执行逻辑综合操作之后,FPGA综合工具建立RTL设计文件中存储器的初值与最近一次对RTL设计文件执行逻辑综合操作得到的综合后网表中存储器实例的初值之间的映射关系。
其中,在步骤201中,最近一次对RTL设计文件执行逻辑综合操作也即为首次对读取到的RTL设计文件执行逻辑综合操作。可选的,该映射关系还可以用于表示最近一次对RTL设计文件执行逻辑综合操作得到的综合后网表中存储器实例的初值在所述RTL设计文件中的数据来源。
202、FPGA综合工具检测读取到的RTL设计文件中存储器的初值是否发生变化;当步骤202的判断结果为是时,触发执行步骤203;当步骤202的判断结果为否时,可以结束本次流程,也可以继续触发执行步骤202。
需要说明的是,若读取到的RTL设计文件中存储器的初值发生变化,对于存储器实例而言,这就意味着存储器实例的初值的数据来源发生变化。
203、FPGA综合工具检测RTL设计文件中除了存储器的初值发生变化之外是否还存在其它部分的修改;当步骤203的检测结果为否时,触发执行步骤204;当步骤203的检测结果为是时,触发步骤205。
204、FPGA综合工具根据预先建立的映射关系对应修改最近一次对RTL设计文件执行逻辑综合操作得到的综合后网表中存储器实例的初值,以更新该综合后网表。
205、FPGA综合工具根据RTL设计文件执行逻辑综合操作。
在一个可选的实施例中,该方法还可以包括以下操作:
206、FPGA综合工具根据RTL设计文件中存储器的初值以及最近一次对RTL设计文件执行逻辑综合操作得到的综合后网表,更新映射关系。
本发明实施例中,在执行完毕步骤206之后,可以继续触发执行步骤202。
本发明实施例中,具体的,在修改了RTL设计文件中存储器的初值之后,进行逻辑综合时,FPGA综合工具首先找到上一次综合出的所有的存储器实例,检测RTL设计文件是否只修改了存储器实例的初值的数据来源(也即存储器的初值),如果除了存储器的初值之外还修改了RTL设计文件的其它部分,此时FPGA综合工具会重新读入RTL设计文件再次进行逻辑综合。如果检测到RTL设计文件只修改了存储器实例的初值的数据来源,此时FPGA综合工具会根据上一次逻辑综合过程中的存储器实例的初值与存储器实例的初值的数据来源及数据之间的对应关系直接修改上一次综合后网表中存储器实例的初值,无需再次进行逻辑综合,减少逻辑综合时间,提高FPGA的开发设计效率。
以示例2举例说明,具体如下:
Figure BDA0002845982700000111
Figure BDA0002845982700000121
在上述示例2中,RTL设计文件中的存储器在逻辑综合过程中会被推断为1个名为mem的memory instance,mem的初值来源于memory.ini,其初值与memory.ini中的数据为一一对应的关系。在第一次逻辑综合过程中,FPGA综合工具会记录下mem的初值来源为memory.ini,mem的初值与memory.ini的数据对应关系,比如mem的第m个初值对应memory.ini的第n个数据。如果此RTL设计文件的其它部分不改变,只有memory.ini发生改变时,FPGA综合工具检测到此种情况时,根据上次逻辑综合过程中记录的mem中的初值与memory.ini的数据的对应关系直接更新上次逻辑综合过程中推断出的memory instance的初值,不需再次经过耗时的逻辑综合步骤,减少了开发过程中的逻辑综合运行时间,提高了用户的开发效率。
可见,本发明实施例所描述的方法能够在首次执行逻辑综合操作之后及时建立相应的映射关系,以便于后续当RTL设计文件中存储器的初值发生变化时直接对应修改最新的综合后网表中存储器实例的初值即可,有利于实现最少次数的逻辑综合操作,进而有利于提高FPGA的开发设计效率。此外,还能够根据RTL设计文件中的修改情况或数据更新情况执行相匹配的操作,在减少逻辑综合次数、提高FPGA开发设计效率的同时,还能够提高得到的综合后网表的可靠性,保证了逻辑综合的质量,还能够提高本发明实施例所描述的逻辑综合控制方法的灵活性,进而有利于提高本发明实施例所描述的逻辑综合控制方法的普遍适用性。此外,还能够方便用户的对比调试。
实施例三
请参阅图4,图4是本发明实施例公开的一种逻辑综合控制装置的结构示意图。其中,图4所描述的装置可以应用于FPGA综合工具中,该FPGA综合工具可以与人工智能相结合,实现将FPGA应用于人工智能领域中。如图4所示,该逻辑综合控制装置可以包括:
第一检测模块301,用于检测读取到的RTL设计文件中存储器的初值是否发生变化。
修改模块302,用于当第一检测模块301检测到RTL设计文件中存储器的初值发生变化时,根据预先建立的映射关系对应修改最近一次对RTL设计文件执行逻辑综合操作得到的综合后网表中存储器实例的初值,以更新该综合后网表。
其中,该映射关系用于表示RTL设计文件中存储器的初值与最近一次对RTL设计文件执行逻辑综合操作得到的综合后网表中存储器实例的初值之间的对应关系。可选的,该映射关系还可以用于表示RTL设计文件中存储器的初值与最近一次对RTL设计文件执行逻辑综合操作得到的综合后网表中存储器实例的初值之间的对应关系。
可见,实施图4所描述的装置能够在RTL设计文件中存储器的初值发生变化的情况下根据预先建立的映射关系,只需对应修改综合后网表中存储器实例的初值即可,无需再次进行逻辑综合,有利于减少逻辑综合时间,提高FPGA的开发设计效率。
在一个可选的实施例中,如图5所示,该装置还可以包括:
建立模块303,用于在首次对读取到的RTL设计文件执行逻辑综合操作之后,建立RTL设计文件中存储器的初值与最近一次对RTL设计文件执行逻辑综合操作得到的综合后网表中存储器实例的初值之间的映射关系。
可见,该可选的实施例还能够在首次执行逻辑综合操作之后及时建立相应的映射关系,以便于后续当RTL设计文件中存储器的初值发生变化时直接对应修改最新的综合后网表中存储器实例的初值即可,有利于实现最少次数的逻辑综合操作,进而有利于提高FPGA的开发设计效率。
在另一个可选的实施例中,如图5所示,该装置还可以包括:
第二检测模块304,用于在第一检测模块301检测到RTL设计文件中存储器的初值发生变化之后,检测RTL设计文件中除了存储器的初值发生变化之外是否还存在其它部分的修改,当检测到RTL设计文件中除了存储器的初值发生变化之外不存在其它部分的修改时,触发修改模块302执行上述的根据预先建立的映射关系对应修改最近一次对RTL设计文件执行逻辑综合操作得到的综合后网表中存储器实例的初值,以更新该综合后网表的操作。
也即,在该可选的实施例中,修改模块302具体用于:
当第一检测模块301检测到RTL设计文件中存储器的初值发生变化时以及当第二检测模块304检测到RTL设计文件中除了存储器的初值发生变化之外不存在其它部分的修改时,根据预先建立的映射关系对应修改最近一次对RTL设计文件执行逻辑综合操作得到的综合后网表中存储器实例的初值,以更新该综合后网表。
在该可选的实施例中,进一步可选的,如图5所示,该装置还可以包括:
逻辑综合模块305,用于当第二检测模块304检测到RTL设计文件中除了存储器的初值发生变化之外还存在其它部分的修改时,根据RTL设计文件执行逻辑综合操作。
可见,该可选的实施例还能够根据RTL设计文件中的修改情况或数据更新情况执行相匹配的操作,在减少逻辑综合次数、提高FPGA开发设计效率的同时,还能够提高得到的综合后网表的可靠性,保证了逻辑综合的质量,还能够提高逻辑综合的灵活性及普遍适用性。
在该可选的实施例中,如图5所示,该装置还可以包括:
更新模块306,用于在逻辑综合模块305根据RTL设计文件执行逻辑综合操作之后,根据RTL设计文件中存储器的初值以及最近一次对RTL设计文件执行逻辑综合操作得到的综合后网表,更新映射关系。
可见,该可选的实施例还能够在重新执行逻辑综合操作之后自动更新已建立的映射关系,以便于为后续RTL设计文件中存储器的初值发生变化时根据更新后的映射关系对应修改综合后网表中存储器实例的初值进而实现综合后网表的更新,不仅有利于提高综合后网表的更新效率,还能够提高综合后网表的更新准确性。
在又一个可选的实施例中,如图5所示,第一检测模块301可以包括:
检测子模块3011,用于在对RTL设计文件执行逻辑综合操作得到综合后网表之后,检测是否接收到目标数据,目标数据是对预先确定出的AI算法对应的新程序代码进行编译处理后得到的;
确定子模块3012,用于当检测子模块3011检测接收到目标数据时,确定读取到的RTL设计文件中存储器的初值发生变化。
其中,如图5所示,该装置还可以包括:
存储模块307,用于将接收到的目标数据存储至RTL设计文件的存储器中,以更新RTL设计文件中存储器的初值。
可见,该可选的实施例还能够将FPGA应用于人工智能领域,在确定出人工智能的系统算法(又称AI算法)之后,可根据实际的应用场景修改AI算法的参数,并将对AI算法对应的新程序代码编译处理后的数据存储至RTL设计文件的存储器的初值中,以实现在将FPGA应用于人工智能领域时以及AI算法的参数发生变化的情况下,无需重新执行逻辑综合操作,只需对应修改上次逻辑综合生成的综合后网表中存储器实例的初值即可,减少了逻辑综合时间,有利于提高FPGA的开发设计效率。此外,还能够方便用户进行对比调试。
实施例四
本发明实施例公开了一种FPGA综合工具,该FPGA综合工具用于执行实施例一或实施例二所描述的方法中的部分或全部步骤,或者,该FPGA综合工具包括实施例三所描述的任意一种逻辑综合控制装置。
实施例五
请参阅图6,图6是本发明实施例公开的又一种逻辑综合控制装置的结构示意图。如图6所示,该逻辑综合的实现控制装置可以应用于FPGA综合工具中,该FPGA综合工具可以与人工智能相结合,实现将FPGA应用于人工智能领域中。如图6所示,该装置可以包括:
存储有可执行程序代码的存储器401;
与存储器401耦合的处理器402;
处理器402调用存储器401中存储的可执行程序代码,执行本发明实施例一或实施例二公开的逻辑综合控制方法中FPGA综合工具所执行的部分或全部步骤。
实施例六
本发明实施例公开了一种计算机存储介质,计算机存储介质存储有计算机指令,计算机指令被调用时,用于执行本发明实施例一或实施例二公开的逻辑综合控制方法中FPGA综合工具所执行的部分或全部步骤。
以上所描述的装置实施例仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施例的具体描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,存储介质包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(ErasableProgrammable Read Only Memory,EPROM)、一次可编程只读存储器(One-timeProgrammable Read-Only Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
最后应说明的是:本发明实施例公开的一种逻辑综合控制方法及装置所揭露的仅为本发明较佳实施例而已,仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各项实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应的技术方案的本质脱离本发明各项实施例技术方案的精神和范围。

Claims (10)

1.一种逻辑综合控制方法,其特征在于,所述方法包括:
检测读取到的RTL设计文件中存储器的初值是否发生变化;
当检测到所述RTL设计文件中所述存储器的初值发生变化时,根据预先建立的映射关系对应修改最近一次对所述RTL设计文件执行逻辑综合操作得到的综合后网表中存储器实例的初值,以更新该综合后网表;
其中,所述映射关系用于表示所述RTL设计文件中所述存储器的初值与最近一次对所述RTL设计文件执行逻辑综合操作得到的综合后网表中存储器实例的初值之间的对应关系。
2.根据权利要求1所述的逻辑综合控制方法,其特征在于,所述检测读取到的RTL设计文件中存储器的初值是否发生变化之前,所述方法还包括:
在首次对读取到的RTL设计文件执行逻辑综合操作之后,建立所述RTL设计文件中存储器的初值与最近一次对所述RTL设计文件执行逻辑综合操作得到的综合后网表中存储器实例的初值之间的映射关系。
3.根据权利要求1或2所述的逻辑综合控制方法,其特征在于,在检测到所述RTL设计文件中所述存储器的初值发生变化之后,所述方法还包括:
检测所述RTL设计文件中除了所述存储器的初值发生变化之外是否还存在其它部分的修改;
当检测到所述RTL设计文件中除了所述存储器的初值发生变化之外不存在其它部分的修改时,触发执行所述的根据预先建立的映射关系对应修改最近一次对所述RTL设计文件执行逻辑综合操作得到的综合后网表中存储器实例的初值,以更新该综合后网表的操作。
4.根据权利要求3所述的逻辑综合控制方法,其特征在于,所述方法还包括:
当检测到所述RTL设计文件中除了所述存储器的初值发生变化之外还存在其它部分的修改时,根据所述RTL设计文件执行逻辑综合操作。
5.根据权利要求4所述的逻辑综合控制方法,其特征在于,所述方法还包括:
根据所述RTL设计文件中所述存储器的初值以及最近一次对所述RTL设计文件执行逻辑综合操作得到的综合后网表,更新所述映射关系。
6.根据权利要求1所述的逻辑综合控制方法,其特征在于,所述检测读取到的RTL设计文件中存储器的初值是否发生变化,包括:
在对所述RTL设计文件执行逻辑综合操作得到综合后网表之后,检测是否接收到目标数据,所述目标数据是对预先确定出的AI算法对应的新程序代码进行编译处理后得到的;
当检测接收到所述目标数据时,确定读取到的RTL设计文件中存储器的初值发生变化;
以及,在检测接收到所述目标数据之后,所述方法还包括
将接收到的所述目标数据存储至所述RTL设计文件的存储器中,以更新所述RTL设计文件中所述存储器的初值。
7.根据权利要求6所述的逻辑综合控制方法,其特征在于,所述映射关系还用于表示最近一次对所述RTL设计文件执行逻辑综合操作得到的综合后网表中所述存储器实例的初值在所述RTL设计文件中的数据来源。
8.一种逻辑综合控制装置,其特征在于,所述装置包括:
第一检测模块,用于检测读取到的RTL设计文件中存储器的初值是否发生变化;
修改模块,用于当所述第一检测模块检测到所述RTL设计文件中所述存储器的初值发生变化时,根据预先建立的映射关系对应修改最近一次对所述RTL设计文件执行逻辑综合操作得到的综合后网表中存储器实例的初值,以更新该综合后网表;
其中,所述映射关系用于表示所述RTL设计文件中所述存储器的初值与最近一次对所述RTL设计文件执行逻辑综合操作得到的综合后网表中存储器实例的初值之间的对应关系。
9.一种逻辑综合控制装置,其特征在于,所述装置包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行如权利要求1-7任一项所述的逻辑综合控制方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行如权利要求1-7任一项所述的逻辑综合控制方法。
CN202011509557.XA 2020-12-18 2020-12-18 逻辑综合控制方法及装置 Active CN112541310B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011509557.XA CN112541310B (zh) 2020-12-18 2020-12-18 逻辑综合控制方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011509557.XA CN112541310B (zh) 2020-12-18 2020-12-18 逻辑综合控制方法及装置

Publications (2)

Publication Number Publication Date
CN112541310A true CN112541310A (zh) 2021-03-23
CN112541310B CN112541310B (zh) 2021-10-29

Family

ID=75019219

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011509557.XA Active CN112541310B (zh) 2020-12-18 2020-12-18 逻辑综合控制方法及装置

Country Status (1)

Country Link
CN (1) CN112541310B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113255258A (zh) * 2021-06-23 2021-08-13 上海国微思尔芯技术股份有限公司 逻辑综合方法、装置、电子设备及存储介质
CN115827568A (zh) * 2022-11-23 2023-03-21 芯华章科技(北京)有限公司 获取逻辑系统设计的数据的方法、电子设备和存储介质
CN116542191A (zh) * 2023-07-06 2023-08-04 奇捷科技(深圳)有限公司 逻辑更正方法、装置、设备及存储介质
CN117332730A (zh) * 2023-10-10 2024-01-02 上海合芯数字科技有限公司 综合后的网表和sdc中基本单元名称匹配方法、系统、终端及介质

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9026967B1 (en) * 2007-11-23 2015-05-05 Altera Corporation Method and apparatus for designing a system on multiple field programmable gate array device types
CN104657306A (zh) * 2013-11-22 2015-05-27 阿尔特拉公司 具有高速调试访问端口的集成电路
CN107273621A (zh) * 2017-06-21 2017-10-20 上海研鸥信息科技有限公司 一种fpga应用电路的可移植方法
CN107346351A (zh) * 2016-05-06 2017-11-14 百度(美国)有限责任公司 用于基于源代码中定义的硬件要求来设计fpga的方法和系统
CN107632816A (zh) * 2016-07-19 2018-01-26 阿尔特拉公司 通过在设计编制期间替换用于执行除法的部件来改进系统操作的方法和设备
CN108959011A (zh) * 2018-07-03 2018-12-07 山东芯革电子科技有限公司 一种基于fpga原型验证系统上的共享式在线调试方法
CN110210133A (zh) * 2019-06-03 2019-09-06 哈尔滨工程大学 一种edif网表级组合逻辑电路的自动故障注入方法
CN110457868A (zh) * 2019-10-14 2019-11-15 广东高云半导体科技股份有限公司 Fpga逻辑综合的优化方法及装置、系统
CN110543664A (zh) * 2019-07-22 2019-12-06 深圳市紫光同创电子有限公司 一种面向具有特有结构fpga的工艺映射方法
CN110750265A (zh) * 2019-09-06 2020-02-04 华中科技大学 一种面向图计算的高层次综合方法及系统
CN111141794A (zh) * 2020-01-15 2020-05-12 合肥工业大学 一种fpga焊接点故障在线状态监测方法
CN111144056A (zh) * 2019-11-13 2020-05-12 广东高云半导体科技股份有限公司 基于后端需求的技术映射控制方法及装置、系统
CN111208977A (zh) * 2019-12-29 2020-05-29 盐城市浪微软件有限公司 一种基于大数据的软件开发方案的生成方法及系统
CN111416680A (zh) * 2020-03-17 2020-07-14 天津光电通信技术有限公司 一种基于fpga的gmp映射/解映射处理实现方法
CN111414725A (zh) * 2020-03-13 2020-07-14 中科亿海微电子科技(苏州)有限公司 一种针对fpga可动态扩展的软件布线结构建模方法和装置
CN111868702A (zh) * 2018-04-02 2020-10-30 英特尔公司 用于可配置空间加速器中的远程存储器访问的装置、方法和系统
CN112036104A (zh) * 2020-09-09 2020-12-04 湖南泛联新安信息科技有限公司 一种基于rtl网表的有限状态机识别及提取方法

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9026967B1 (en) * 2007-11-23 2015-05-05 Altera Corporation Method and apparatus for designing a system on multiple field programmable gate array device types
CN104657306A (zh) * 2013-11-22 2015-05-27 阿尔特拉公司 具有高速调试访问端口的集成电路
CN107346351A (zh) * 2016-05-06 2017-11-14 百度(美国)有限责任公司 用于基于源代码中定义的硬件要求来设计fpga的方法和系统
CN107632816A (zh) * 2016-07-19 2018-01-26 阿尔特拉公司 通过在设计编制期间替换用于执行除法的部件来改进系统操作的方法和设备
CN107273621A (zh) * 2017-06-21 2017-10-20 上海研鸥信息科技有限公司 一种fpga应用电路的可移植方法
CN111868702A (zh) * 2018-04-02 2020-10-30 英特尔公司 用于可配置空间加速器中的远程存储器访问的装置、方法和系统
CN108959011A (zh) * 2018-07-03 2018-12-07 山东芯革电子科技有限公司 一种基于fpga原型验证系统上的共享式在线调试方法
CN110210133A (zh) * 2019-06-03 2019-09-06 哈尔滨工程大学 一种edif网表级组合逻辑电路的自动故障注入方法
CN110543664A (zh) * 2019-07-22 2019-12-06 深圳市紫光同创电子有限公司 一种面向具有特有结构fpga的工艺映射方法
CN110750265A (zh) * 2019-09-06 2020-02-04 华中科技大学 一种面向图计算的高层次综合方法及系统
CN110457868A (zh) * 2019-10-14 2019-11-15 广东高云半导体科技股份有限公司 Fpga逻辑综合的优化方法及装置、系统
CN111144056A (zh) * 2019-11-13 2020-05-12 广东高云半导体科技股份有限公司 基于后端需求的技术映射控制方法及装置、系统
CN111208977A (zh) * 2019-12-29 2020-05-29 盐城市浪微软件有限公司 一种基于大数据的软件开发方案的生成方法及系统
CN111141794A (zh) * 2020-01-15 2020-05-12 合肥工业大学 一种fpga焊接点故障在线状态监测方法
CN111414725A (zh) * 2020-03-13 2020-07-14 中科亿海微电子科技(苏州)有限公司 一种针对fpga可动态扩展的软件布线结构建模方法和装置
CN111416680A (zh) * 2020-03-17 2020-07-14 天津光电通信技术有限公司 一种基于fpga的gmp映射/解映射处理实现方法
CN112036104A (zh) * 2020-09-09 2020-12-04 湖南泛联新安信息科技有限公司 一种基于rtl网表的有限状态机识别及提取方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈强: "基于CPLD/FPGA的多触发器逻辑功能模拟研究", 《山西电子技术》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113255258A (zh) * 2021-06-23 2021-08-13 上海国微思尔芯技术股份有限公司 逻辑综合方法、装置、电子设备及存储介质
CN113255258B (zh) * 2021-06-23 2021-10-01 上海国微思尔芯技术股份有限公司 逻辑综合方法、装置、电子设备及存储介质
CN115827568A (zh) * 2022-11-23 2023-03-21 芯华章科技(北京)有限公司 获取逻辑系统设计的数据的方法、电子设备和存储介质
CN115827568B (zh) * 2022-11-23 2023-07-28 芯华章科技(北京)有限公司 获取逻辑系统设计的数据的方法、电子设备和存储介质
CN116542191A (zh) * 2023-07-06 2023-08-04 奇捷科技(深圳)有限公司 逻辑更正方法、装置、设备及存储介质
CN116542191B (zh) * 2023-07-06 2023-12-05 奇捷科技(深圳)有限公司 逻辑更正方法、装置、设备及存储介质
CN117332730A (zh) * 2023-10-10 2024-01-02 上海合芯数字科技有限公司 综合后的网表和sdc中基本单元名称匹配方法、系统、终端及介质
CN117332730B (zh) * 2023-10-10 2024-06-04 上海合芯数字科技有限公司 综合后的网表和sdc中基本单元名称匹配方法、系统、终端及介质

Also Published As

Publication number Publication date
CN112541310B (zh) 2021-10-29

Similar Documents

Publication Publication Date Title
CN112541310B (zh) 逻辑综合控制方法及装置
WO2020259163A1 (zh) 设备部署方法及装置、设备运行方法及电子设备
US20150286355A1 (en) Crawling for extracting a model of a gui-based application
CN110941934A (zh) 一种fpga原型验证开发板分割仿真系统、方法、介质及终端
WO2021031137A1 (zh) 人工智能应用开发系统、计算机设备及存储介质
WO2021238053A1 (zh) 耳机及其程序升级方法、控制装置和可读存储介质
CN112328298A (zh) 移动端的代码库裁剪方法及装置
CN110955434A (zh) 软件开发包处理方法、装置、计算机设备和存储介质
CN116663491B (zh) 基于bdd求解功能覆盖组条件约束语句的方法、设备和介质
CN112860587A (zh) Ui自动测试方法和装置
CN116107669B (zh) 深度学习框架的算子注册方法、装置、设备及存储介质
CN110955380B (zh) 访存数据生成方法、存储介质、计算机设备和装置
CN116796678A (zh) 一种基于解析式技术的fpga布局方法
CN113272785B (zh) 一种挂载文件系统的方法、终端设备及存储介质
JP6903249B2 (ja) テストケース生成装置、テストケース生成方法、およびテストケース生成プログラム
CN112463042B (zh) 一种数据卷导入数据校验方法、装置、终端及存储介质
CN110378037B (zh) 基于Ceph的CFD仿真数据存储方法、装置及服务器
US10409624B1 (en) Data array compaction in an emulation system
CN114580170A (zh) 一种用于多任务并行构建的数据处理方法及装置
CN110988661B (zh) 一种fpga原型验证开发板时分分析系统、方法、介质及终端
US7130784B2 (en) Logic simulation
CN103513989B (zh) 按键数据获取方法及装置
CN112578772A (zh) 电子控制单元的数据处理方法及相关装置
CN113272813A (zh) 定制数据流硬件模拟仿真方法、装置、设备及存储介质
CN115081628B (zh) 一种深度学习模型适配度的确定方法及装置

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