CN116595916A - 数字集成电路的设计方法、装置、电子设备、存储介质 - Google Patents

数字集成电路的设计方法、装置、电子设备、存储介质 Download PDF

Info

Publication number
CN116595916A
CN116595916A CN202310664004.9A CN202310664004A CN116595916A CN 116595916 A CN116595916 A CN 116595916A CN 202310664004 A CN202310664004 A CN 202310664004A CN 116595916 A CN116595916 A CN 116595916A
Authority
CN
China
Prior art keywords
netlist
boundary
description file
level description
engineering
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
Application number
CN202310664004.9A
Other languages
English (en)
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.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN202310664004.9A priority Critical patent/CN116595916A/zh
Publication of CN116595916A publication Critical patent/CN116595916A/zh
Pending legal-status Critical Current

Links

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/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02EREDUCTION OF GREENHOUSE GAS [GHG] EMISSIONS, RELATED TO ENERGY GENERATION, TRANSMISSION OR DISTRIBUTION
    • Y02E60/00Enabling technologies; Technologies with a potential or indirect contribution to GHG emissions mitigation

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

一种数字集成电路的设计方法、装置、电子设备、存储介质。该数字集成电路的设计方法包括:获取第一寄存器传输级描述文件;基于第一寄存器传输级描述文件和第二寄存器传输级描述文件,确定第一寄存器传输级描述文件中的区别部分;对区别部分进行分析,确定位于由区别部分确定的替换区域的边界处的边界信号;基于边界信号,结合区别部分,创建区别部分对应的工程修改模块;基于工程修改模块对第二寄存器传输级描述文件对应的第二后端网表进行工程修改,得到工程修改后的第一后端网表。该数字集成电路的设计方法通用、高效,不仅适用于复杂的ECO,使得网表修改变得方便、可行,同时省去了使用工具时建立流程的时间,修改结果也相对可控。

Description

数字集成电路的设计方法、装置、电子设备、存储介质
技术领域
本公开的实施例涉及一种数字集成电路的设计方法、数字电路的设计装置、电子设备、非瞬时性计算机可读存储介质。
背景技术
集成电路的设计流程包括前端设计和后端设计,前端设计主要包括算法或硬件架构设计与分析、RTL(RegisterTransferLevel,寄存器传输级描述文件)实现、功能性验证、逻辑综合等设计阶段,后端设计包括布局布线、时序收敛、物理性验证等设计阶段。整个集成电路的设计流程中,每个设计阶段都涉及复杂的设计过程,每个设计阶段都可能需要几周甚至几个月的开发时间。
发明内容
本公开至少一实施例提供一种集成电路的设计方法,包括:获取第一寄存器传输级描述文件,其中,所述第一寄存器传输级描述文件通过对第二寄存器传输级描述文件进行功能缺陷修复得到;基于所述第一寄存器传输级描述文件和所述第二寄存器传输级描述文件,确定所述第一寄存器传输级描述文件中的区别部分,其中,所述区别部分为所述第一寄存器传输级描述文件相对于所述第二寄存器传输级描述文件不同的代码部分;对所述区别部分进行分析,确定位于由所述区别部分确定的替换区域的边界处的边界信号,其中,所述替换区域包括多个逻辑锥结构,所述多个逻辑锥结构为在所述功能缺陷修复过程中新增或需要修改的逻辑锥结构;基于所述边界信号,结合所述区别部分,创建所述区别部分对应的工程修改模块;基于所述工程修改模块对所述第二寄存器传输级描述文件对应的第二后端网表进行工程修改,得到工程修改后的第一后端网表。
例如,在本公开至少一实施例提供的设计方法中,基于所述第一寄存器传输级描述文件和所述第二寄存器传输级描述文件,确定所述第一寄存器传输级描述文件中的区别部分,包括:对所述第一寄存器传输级描述文件和所述第二寄存器传输级描述文件进行比较,将所述第一寄存器传输级描述文件相对于所述第二寄存器传输级描述文件增加或修改的代码部分作为所述区别部分。
例如,在本公开至少一实施例提供的设计方法中,所述边界信号包括边界输入信号和边界输出信号,对所述区别部分进行分析,确定位于由所述区别部分确定的替换区域的边界处的边界信号,包括:确定由所述第一寄存器传输级描述文件中除所述区别部分以外的部分确定的非替换区域;对所述区别部分进行分析,确定第一逻辑锥结构中来自所述非替换区域的输入信号作为所述边界输入信号,确定第二逻辑锥结构输出至所述非替换区域的输出信号作为所述边界输出信号,其中,所述第一逻辑锥结构和所述第二逻辑锥结构为所述多个逻辑锥结构中与所述非替换区域存在直接信号传输关系的逻辑锥结构。
例如,在本公开至少一实施例提供的设计方法中,所述边界输入信号包括设计输入端口的信号、寄存器输出端口的信号、黑盒子输出端口的信号;所述边界输出信号包括设计输出端的信号、寄存器输入端口的信号、黑盒子输入端口的信号以及具有多个驱动的线网类型,其中,所述多个驱动中的至少一个驱动是设计输出端口或黑盒子的输出端口。
例如,在本公开至少一实施例提供的设计方法中,所述边界信号包括边界输入信号和边界输出信号,基于所述边界信号,结合所述区别部分,创建所述区别部分对应的工程修改模块,包括;将所述边界输入信号作为所述工程修改模块的输入信号;将所述边界输出信号作为所述工程修改模块的输出信号;将所述区别部分作为所述工程修改模块的内部实现,创建所述工程修改模块。
例如,在本公开至少一实施例提供的设计方法中,基于所述工程修改模块对所述第二寄存器传输级描述文件对应的第二后端网表进行工程修改,得到工程修改后的第一后端网表,包括:对所述工程修改模块进行综合,得到所述工程修改模块对应的工程修改网表;确定所述第二后端网表中所述替换区域对应的网表替换部分;对所述第二后端网表进行工程修改,以将所述第二后端网表中的所述网表替换部分替换为所述工程修改网表,得到所述第一后端网表。
例如,在本公开至少一实施例提供的设计方法中,确定所述第二后端网表中所述替换区域对应的网表替换部分,包括:依据所述边界信号,从所述第二后端网表中确定所述替换区域对应的网表替换部分。
例如,在本公开至少一实施例提供的设计方法中,对所述第二后端网表进行工程修改,以将所述第二后端网表中的所述网表替换部分替换为所述工程修改网表,得到所述第一后端网表,包括:断开所述网表替换部分中所述边界信号与所述第二后端网表中所述网表替换部分以外的其它部分的连接关系;将所述网表替换部分替换为所述工程修改网表,并将所述工程修改网表中的所述边界信号与所述第二后端网表中的相应端口连接,得到所述第一后端网表。
例如,在本公开至少一实施例提供的设计方法中,断开所述网表替换部分中所述边界信号与所述第二后端网表中所述网表替换部分以外的其它部分的连接关系,包括:断开所述网表替换部分中与所述边界信号相关的逻辑锥结构的相关端口的连接关系,其中,所述相关端口包括与所述边界信号相关的逻辑锥结构中与所述第二后端网表的其它部分存在直接信号传输关系的端口。
例如,在本公开至少一实施例提供的设计方法中,将所述网表替换部分替换为所述工程修改网表,并将所述工程修改网表中的所述边界信号与所述第二后端网表中的相应端口连接,得到所述第一后端网表,包括:将所述网表替换部分替换为所述工程修改网表,并将所述工程修改网表中与所述边界信号相关的第一逻辑锥结构的输入端口和第二逻辑锥结构的输出端口与所述第二后端网表中的相应端口连接,得到所述第一后端网表。
例如,本公开至少一实施例提供的设计方法还包括:对所述第一后端网表和所述第一寄存器传输级描述文件进行等价性验证。
例如,本公开至少一实施例提供的设计方法还包括:对所述第一后端网表进行时序检查。
本公开至少一实施例提供一种数字集成电路的设计装置,包括:获取单元,配置为获取第一寄存器传输级描述文件,其中,所述第一寄存器传输级描述文件通过对第二寄存器传输级描述文件进行功能缺陷修复得到;确定单元,配置为基于所述第一寄存器传输级描述文件和所述第二寄存器传输级描述文件,确定所述第一寄存器传输级描述文件中的区别部分,其中,所述区别部分为所述第一寄存器传输级描述文件相对于所述第二寄存器传输级描述文件不同的代码部分;分析单元,配置为对所述区别部分进行分析,确定位于由所述区别部分确定的替换区域的边界处的边界信号,其中,所述替换区域包括多个逻辑锥结构,所述多个逻辑锥结构为在所述功能缺陷修复过程中新增或需要修改的逻辑锥结构;创建单元,配置为基于所述边界信号,结合所述区别部分,创建所述区别部分对应的工程修改模块;工程修改单元,配置为基于所述工程修改模块对所述第二寄存器传输级描述文件对应的第二后端网表进行工程修改,得到工程修改后的第一后端网表。
例如,在本公开至少一实施例提供的设计装置中,所述边界信号包括边界输入信号和边界输出信号,所述分析单元执行对所述区别部分进行分析,确定位于由所述区别部分确定的替换区域的边界处的边界信号时,包括执行以下操作:确定由所述第一寄存器传输级描述文件中除所述区别部分以外的部分确定的非替换区域;对所述区别部分进行分析,确定第一逻辑锥结构中来自所述非替换区域的输入信号作为所述边界输入信号,确定第二逻辑锥结构输出至所述非替换区域的输出信号作为所述边界输出信号,其中,所述第一逻辑锥结构和所述第二逻辑锥结构为所述多个逻辑锥结构中与所述非替换区域存在直接信号传输关系的逻辑锥结构。
例如,在本公开至少一实施例提供的设计装置中,所述边界信号包括边界输入信号和边界输出信号,所述创建单元执行基于所述边界信号,结合所述区别部分,创建所述区别部分对应的工程修改模块时,包括执行以下操作;将所述边界输入信号作为所述工程修改模块的输入信号;将所述边界输出信号作为所述工程修改模块的输出信号;将所述区别部分作为所述工程修改模块的内部实现,创建所述工程修改模块。
例如,在本公开至少一实施例提供的设计装置中,所述工程修改单元执行基于所述工程修改模块对所述第二寄存器传输级描述文件对应的第二后端网表进行工程修改,得到工程修改后的第一后端网表时,包括执行以下操作:对所述工程修改模块进行综合,得到所述工程修改模块对应的工程修改网表;确定所述第二后端网表中所述替换区域对应的网表替换部分;对所述第二后端网表进行工程修改,以将所述第二后端网表中的所述网表替换部分替换为所述工程修改网表,得到所述第一后端网表。
本公开至少一实施例提供一种电子设备,包括:存储器,非瞬时性地存储有计算机可执行指令;处理器,配置为运行所述计算机可执行指令,其中,所述计算机可执行指令被所述处理器运行时实现根据本公开至少一实施例所述的数字集成电路的设计方法。
本公开至少一实施例提供一种非瞬时性计算机可读存储介质,其中,所述非瞬时性计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现根据本公开至少一实施例所述的数字集成电路的设计方法。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1为一种逻辑锥结构示意图;
图2为本公开至少一实施例提供的一种数字集成电路的设计方法的示意性流程图;
图3为本公开一实施例提供的替换区域的示意图;
图4A和图4B为本公开一实施例提供的工程修改过程的示意图;
图5为本公开至少一实施例提供的数字集成电路的设计方法的处理流程图;
图6A为本公开一实施例提供的第二寄存器传输级描述文件的示意图;
图6B为本公开一实施例提供的第一寄存器传输级描述文件的示意图;
图6C为本公开一实施例提供的工程修改模块的示意图;
图7为本公开至少一实施例提供的一种数字电路的设计装置的示意性框图;
图8为本公开至少一实施例提供的一种电子设备的示意性框图;
图9为本公开至少一实施例提供的一种非瞬时性计算机可读存储介质的示意图。
具体实施方式
为了使得本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
为了保持本公开实施例的以下说明清楚且简明,本公开省略了部分已知功能和已知部件的详细说明。
超大规模集成电路广泛应用于当今生活各个领域,随着集成电路工艺以及设计水平的提升,单芯片上集成的功能越来越多。芯片设计过程中,为保证芯片逻辑功能的正确性和完备性,在流片前验证人员需要对设计进行持续不断地验证。
芯片集成度和功能复杂度的增加给验证提出了很高的要求,设计过程中不可避免会出现设计功能缺陷(Bug)。对于项目早期(例如尚未开始综合)发现的缺陷,可以直接通过修改RTL代码来修复。在集成电路前端设计完成后,例如,在逻辑综合完成后、布局布线完成后或时序收敛完成后时发现设计存在问题需要进行修改,此时如果直接对RTL(RegisterTransferLevel,寄存器传输级描述文件)进行修改,则需要重新执行一遍集成电路的后端设计流程,严重影响项目进度,大量的集成电路后端设计成果被浪费掉。在这种情况下,可以对集成电路进行工程修改(EngineeringChangeOrder,简称ECO),以实现电路的修改。工程修改可以直接修改网表,不需要针对设计进行重新综合以及布局布线等流程,可以极大地节省项目周期和成本,修改后的网表与经过充分功能验证的修复后RTL代码做等效性检查可以确保ECO的正确性。
通常,工程修改根据执行阶段分为逻辑工程修改(LogicECO)和物理工程修改(PhysicalECO)。逻辑工程修改通常在在芯片流片前执行,例如基于最终的寄存器传输级描述文件,以脚本形式对该寄存器传输级描述文件对应的后端网表添加或删除一些逻辑,或者做更加细微的修改,例如为信号完整性而清理一些电路路径等,从而实现电路功能上的工程修改。物理工程修改通常在芯片的生产阶段执行,例如在设计中添加一些需要的元件(cell)或利用电路中的备用元件(sparecell)实现工程修改,以满足电路的约束要求。
工程修改可以由设计人员手动自行修改,也可以利用工程修改工具进行自动的工程修改,例如工程修改工具可以为ConformalECODesigner等。目前,市场上提供的能够对电路进行自动工程修改的商业化工具的基本原理是逻辑等价性。例如,进行工程修改前的寄存器传输级描述文件和对应的后端网表(post-layoutnetlist)称为旧RTL和旧网表,旧RTL和旧网表组成旧设计对,进行工程修改后的寄存器传输级描述文件和对应的后端网表称为新RTL和新网表,新RTL和新网表组成新设计对,自动工程修改工具需要保证新RTL和新网表之间的逻辑等价,例如对新RTL和新网表进行等价性验证。
在集成电路中,逻辑锥(logiccone)是由设计(design)中的组合逻辑电路组成的,例如被寄存器、输入输出端口、BlackBox(黑盒子)等包围的组合逻辑集合。
图1为一种逻辑锥结构示意图。如图1所示,逻辑锥结构的输入可以包括设计输入端口、寄存器输出端口、黑盒子输出端口等,逻辑锥结构的输出可以包括设计输出端口、寄存器输入端口和黑盒子输入端口等。例如,设计输入端口可以包括设计的外部输入端口,或者也可以包括设计中的功能模块(module)的输入端口。例如,设计输出端口可以包括设计的外部输出端口,或者也可以包括设计中的功能模块(module)的输出端口。
逻辑锥结构的输出边界一般作为等价性验证的比对点(Comparepoint)。在等价性验证时,一个设计可以被划分成一个个逻辑锥,以逻辑锥结构为单位,将其抽象为数学模型,然后针对每个比较点将旧设计与新设计进行比较。如果旧设计对和新设计对中所有逻辑锥的比对点的检查都能通过,就认为它们逻辑上是相等的。ECO的过程本质上就是将网表中受影响的逻辑锥结构修改为与正确的RTL逻辑相等的过程。
当设计人员在项目后期发现大型RTL功能缺陷,并且该缺陷对网表冲击很大时,会给ECO带来很大挑战,直接修改网表会十分困难。例如,大规模集成电路的后端网表中可能存在几十甚至上百万个逻辑锥结构,一些较大的RTL功能缺陷在修复后可能会影响几十上百个逻辑锥结构,此时直接修改网表会十分困难。
例如,对于大型RTL功能缺陷,若由执行ECO的设计人员手动修改,需要设计人员在对RTL代码以及网表进行分析并充分理解基础上,结合修复功能缺陷需要的改动,不重新综合而直接手动对网表做出修改,包括重新连线,添加、删除逻辑门或者使用预留器件等,通过对修复后RTL代码和ECO网表做等效性检查来确保ECO的正确性。但是,这种方式需要设计人员对RTL代码以及网表非常熟悉,即使RTL很容易修复的功能缺陷,将修复对应到网表可能会很费时间;并且,这种方式限于简单的ECO,当功能缺陷对网表的冲击很大时,无法依靠纯手动来完成网表修改。
例如,对于大型RTL功能缺陷,若由工程修改工具进行自动的工程修改,需要根据选用的工具去单独配置、建立相应的流程;在ECO较复杂的情况下,工具迭代周期较长,甚至由于ECO过于复杂导致无法完成工程修改;并且,在使用工程修改工具时,其修改结果也不方便控制。
针对上述情况,找到一种通用、高效的ECO方法具有十分重要的意义。
本公开至少一实施例提供一种数字集成电路的设计方法、数字电路的设计装置、电子设备和非瞬时性计算机可读存储介质。该数字集成电路的设计方法包括:获取第一寄存器传输级描述文件,其中,第一寄存器传输级描述文件通过对第二寄存器传输级描述文件进行功能缺陷修复得到;基于第一寄存器传输级描述文件和第二寄存器传输级描述文件,确定第一寄存器传输级描述文件中的区别部分,其中,区别部分为第一寄存器传输级描述文件相对于第二寄存器传输级描述文件不同的代码部分;对区别部分进行分析,确定位于由区别部分确定的替换区域的边界处的边界信号,其中,替换区域包括多个逻辑锥结构,多个逻辑锥结构为在功能缺陷修复过程中新增或需要修改的逻辑锥结构;基于边界信号,结合区别部分,创建区别部分对应的工程修改模块;基于工程修改模块对第二寄存器传输级描述文件对应的第二后端网表进行工程修改,得到工程修改后的第一后端网表。
本公开至少一实施例提供的数字集成电路的设计方法分析功能缺陷修复前后的寄存器传输级描述文件的区别部分,依据边界信号确定受影响的逻辑锥结构,将受影响的逻辑锥结构对应的寄存器传输级描述文件部分(即区别部分)作为一个整体生成工程修改模块,以利用该工程修改模块对原网表进行工程修改,得到新的工程修改后的网表。该工程修改方法通用、高效,不仅适用于复杂的ECO,使得网表修改变得方便、可行,同时省去了使用工具时建立流程(flow)的时间,修改结果也相对可控,极大提高了工程修改的效率,加快项目研发进度。
下面结合附图对本公开的实施例进行详细说明,但是本公开并不限于这些具体的实施例。
图2为本公开至少一实施例提供的一种数字集成电路的设计方法的示意性流程图。
例如,数字集成电路可以是大规模集成电路。例如,数字集成电路可以是一个完整设计,或者是一个完整设计中的部分电路。
例如,如图2所示,本公开实施例提供的数字集成电路的设计方法至少包括步骤S10至S50。
在步骤S10,获取第一寄存器传输级描述文件。
例如,第一寄存器传输级描述文件通过对第二寄存器传输级描述文件进行功能缺陷修复得到。
例如,如前所述,当在布局布线、时序收敛等完成之后,设计人员发现电路存在问题需要进行修改,进行工程修改前的寄存器传输级描述文件为旧RTL,在本公开中,旧RTL称为第二寄存器传输级描述文件。在工程修改过程中,设计人员对第二寄存器传输级描述文件中的设计功能缺陷进行修复和充分验证,得到工程修改后的新RTL,在本公开中,新RTL称为第一寄存器传输级描述文件。
例如,设计人员依据发现的电路问题,对第二寄存器传输级描述文件的代码进行改动,以修复第二寄存器传输级描述文件中存在的设计功能缺陷,得到第一寄存器传输级描述文件。例如,这种功能缺陷修复可能对RTL代码改动较大,相应的网表的冲击也较大,例如,这种功能缺陷修复可能会影响、改动后端网表中上百个或上千个逻辑锥结构。
在步骤S20,基于第一寄存器传输级描述文件和第二寄存器传输级描述文件,确定第一寄存器传输级描述文件中的区别部分。
例如,区别部分为第一寄存器传输级描述文件相对于第二寄存器传输级描述文件不同的代码部分。
例如,在一些示例中,步骤S20可以包括:对第一寄存器传输级描述文件和第二寄存器传输级描述文件进行比较,将第一寄存器传输级描述文件相对于第二寄存器传输级描述文件增加或修改的代码部分作为区别部分。
例如,第一寄存器传输级描述文件和第二寄存器传输级描述文件为RTL代码,区别部分为两者代码上的不同之处。
在步骤S30,对区别部分进行分析,确定位于由区别部分确定的替换区域的边界处的边界信号。
例如,替换区域包括多个逻辑锥结构,多个逻辑锥结构为在功能缺陷修复过程中新增或需要修改的逻辑锥结构。
例如,通过对区别部分进行分析,可以确定受影响的替换区域的边界处的边界信号。替换区域是指在修复RTL缺陷过程中,受影响的逻辑锥结构作为一个整体所组成的区域,这里受影响的逻辑锥结构为在功能缺陷修复过程中新增或需要修改的逻辑锥结构。
例如,在一些示例中,步骤S30可以包括:确定由第一寄存器传输级描述文件中除区别部分以外的部分确定的非替换区域;确定第一逻辑锥结构中来自非替换区域的输入信号作为边界输入信号,确定第二逻辑锥结构输出至非替换区域的输出信号作为边界输出信号,这里,第一逻辑锥结构和第二逻辑锥结构为多个逻辑锥结构中与非替换区域存在直接信号传输关系的逻辑锥结构。
例如,边界信号包括受影响的逻辑锥结构的输入边界或输出边界。因此,边界输入信号的类型可以包括逻辑锥结构的输入信号类型,例如边界输入信号包括设计输入端口的信号、寄存器输出端口的信号、黑盒子输出端口的信号。
例如,边界输出信号的类型可以包括逻辑锥结构的输出信号类型,例如,边界输出信号包括设计输出端的信号、寄存器输入端口的信号、黑盒子输入端口的信号以及具有多个驱动的线网类型,这里,多个驱动中的至少一个驱动是设计输出端口或黑盒子的输出端口。
图3为本公开一实施例提供的替换区域的示意图。
需要说明的是,由于区别部分为RTL代码形式,也即处于前端设计过程,还未进行后端的综合等处理,因此图3所示的替换区域和非替换区域本质上是逻辑概念,而并非是具体的物理实现。当然,在经过后端设计的综合、布局布线等过程后,网表中可以存在具体的逻辑锥结构的物理形态。这里通过图3所示出的是将所有受影响逻辑锥结构作为一个整体看待的替换区域示意。
如图3所示,外部的实线矩形框表示第一寄存器传输级描述文件确定的区域,该区域包括有大量逻辑锥结构,用于实现第一寄存器传输级描述文件的功能。
虚线矩形框表示由区别部分确定的替换区域,第一寄存器传输级描述文件确定的区域包括替换区域以及除替换区域以外所有其它部分组成的非替换区域,非替换区域是由第一寄存器传输级描述文件中与第二寄存器传输级描述文件相同的代码部分确定。
例如,在图3所示的示例中,替换区域包括逻辑锥结构1、逻辑锥结构2、逻辑锥结构3和逻辑锥结构4等多个逻辑锥结构,这些逻辑锥结构为在功能修复过程中发生了修改、替换或新增的逻辑锥结构;非替换区域包括逻辑锥结构5、逻辑锥结构6等。当然,图3所示仅为一种示意,替换区域或非替换区域还可以包括更多或更少的逻辑锥结构,逻辑锥结构的连接关系也可以相应调整。
图3中的虚线框构成了替换区域的边界。逻辑锥结构1为与非替换区域存在直接信号传输关系的逻辑锥结构,逻辑锥结构1直接接收来自非替换区域的信号(图3中的与逻辑锥结构5连接的黑盒子的输出信号和与逻辑锥结构6连接的寄存器的输出信号)作为输入信号,因此,逻辑锥结构1可以作为第一逻辑锥结构,其输入信号中来自非替换区域的输入信号为边界输入信号,也即边界输入信号包括图3中标记“1”和“2”的信号。
类似的,逻辑锥结构2也与非替换区域存在直接信号传输关系,逻辑锥结构2直接接收来自非替换区域的信号(图3中的设计输入端口的信号)作为输入信号,因此,逻辑锥结构2可以作为第一逻辑锥结构,其输入信号中来自非替换区域的输入信号为边界输入信号,也即边界输入信号还包括图3中标记“3”的信号。
逻辑锥结构3为与非替换区域存在直接信号传输关系的逻辑锥结构,逻辑锥结构3直接输出信号至非替换区域(图3中的设计输出端口的信号),因此,逻辑锥结构3可以作为第二逻辑锥结构,其输出至非替换区域的信号为边界输出信号,也即边界输出信号包括图3中标记“4”的信号。
逻辑锥结构4与非替换区域不存在直接信号传输关系,因此其不属于第一逻辑锥结构或第二逻辑锥结构。
通过步骤S30可以得到由区别部分确定的替换区域的边界处的边界信号,以将受影响的所有逻辑锥结构作为一个整体进行后续的工程修改,而不需以单个逻辑锥为颗粒度进行替换。这种方式不需要确定或关注网表中因为功能缺陷修复受影响的具体的逻辑锥结构,依据边界信号可以确定需要修改的替换区域以在后续步骤进行替换和修改,尤其在功能缺陷修复对网表的冲击较大时,使得网表修改变得方便、可行,极大地节省项目周期和成本。
在步骤S40,基于边界信号,结合区别部分,创建区别部分对应的工程修改模块。
例如,使用步骤S30确定的边界信号作为端口信号,结合修复功能缺陷所需的RTL代码的改动,创建一个新的工程修改模块。
例如,在一些示例中,步骤S40可以包括:将边界输入信号作为工程修改模块的输入信号;将边界输出信号作为工程修改模块的输出信号;将区别部分作为工程修改模块的内部实现,创建工程修改模块。
具体的,在创建工程修改模块时,在工程修改模块中定义步骤S30得到的边界输入信号作为工程修改模块的输入信号,定义步骤S30得到的边界输出信号作为工程修改模块的输出信号,将区别部分作为工程修改模块的实现代码,由此得到工程修改模块。例如,可以直接复制区别部分作为工程修改模块的代码主体,或者,也可以对区别部分的部分代码行进行适当优化,不改变功能的前提下以更优的方式实现相同功能。
例如,这里该工程修改模块为RTL代码形式,之后在步骤S50进行综合,得到网表形式。
在步骤S50,基于工程修改模块对第二寄存器传输级描述文件对应的第二后端网表进行工程修改,得到工程修改后的第一后端网表。
例如,对第二寄存器传输级描述文件进行综合、布局布线、时序收敛等处理后得到第二后端网表,第二后端网表为工程修改前的旧网表。
例如,在一些示例中,步骤S50可以包括:对工程修改模块进行综合,得到工程修改模块对应的工程修改网表;确定第二后端网表中替换区域对应的网表替换部分;对第二后端网表进行工程修改,以将第二后端网表中的网表替换部分替换为工程修改网表,得到第一后端网表。
例如,工程修改网表中可以包括修改后的、正确的逻辑锥结构。
例如,确定第二后端网表中替换区域对应的网表替换部分,可以包括:依据边界信号,从第二后端网表中确定替换区域对应的网表替换部分。
例如,依据边界信号,可以从第二后端网表中确定对应的边界信号,第二后端网表中依据边界信号的连接关系确定第二后端网表中需要替换的网表替换部分。
例如,对第二后端网表进行工程修改,以将第二后端网表中的网表替换部分替换为工程修改网表,得到第一后端网表,可以包括:断开网表替换部分中边界信号与第二后端网表中网表替换部分以外的其它部分的连接关系;将网表替换部分替换为工程修改网表,并将工程修改网表中的边界信号与第二后端网表中的相应端口连接,得到第一后端网表。
例如,断开网表替换部分中边界信号与第二后端网表中网表替换部分以外的其它部分的连接关系,可以包括:断开网表替换部分中与边界信号相关的逻辑锥结构的相关端口的连接关系,其中,相关端口包括与边界信号相关的逻辑锥结构中与第二后端网表的其它部分存在直接信号传输关系的端口。
例如,将网表替换部分替换为工程修改网表,并将工程修改网表中的边界信号与第二后端网表中的相应端口连接,得到第一后端网表,可以包括:将网表替换部分替换为工程修改网表,并将工程修改网表中与边界信号相关的第一逻辑锥结构的输入端口和第二逻辑锥结构的输出端口与第二后端网表中的相应端口连接,得到第一后端网表。
例如,在工程修改时,断开第二后端网表中受影响的逻辑锥结构的连接关系并丢弃这些旧的逻辑锥结构,插入新的、正确的逻辑锥结构并重新连接得到最终的第一后端网表。
图4A和图4B为本公开一实施例提供的工程修改过程的示意图。
如图4A所示,在第二后端网表中包括有逻辑锥结构a至逻辑锥结构e等多个逻辑锥结构,虚线矩形框所示为依据边界信号从第二后端网表中确定的替换区域对应的网表替换部分,也即网表替换部分中的逻辑锥结构a、逻辑锥结构b、逻辑锥结构c需要修改或替换。
例如,第二后端网表中除虚线矩形框以外部分为其它部分,在工程修改时,断开网表替换部分中与边界信号相关的逻辑锥结构的相关端口的连接关系,与边界信号相关的逻辑锥结构为与第二后端网表中的其它部分存在直接连接关系的逻辑锥结构,相关端口为这些逻辑锥结构中与第二后端网表的其它部分存在直接信号传输关系的端口。例如,在图4A中,与边界信号相关的逻辑锥结构包括逻辑锥结构a、逻辑锥结构b和逻辑锥结构c,相关端口包括逻辑锥结构a中接收其它部分输入信号的端口1和2,逻辑锥结构b中接收其它部分输入信号的端口3以及逻辑锥结构c中向其它部分输出信号的端口4。
如图4A所示,断开这些相关端口的连接关系。
之后,如图4B所示,将网表替换部分替换为工程修改网表,工程修改网表中包括修改后的、正确的逻辑锥结构a’、逻辑锥结构b’和逻辑锥结构c’。将工程修改网表中与边界信号相关的第一逻辑锥结构的输入端口(例如图4B中逻辑锥结构a’的输入端口1’和输入端口2’,逻辑锥结构b’的输入端口3’)和第二逻辑锥结构的输出端口(例如图4B中逻辑锥结构c’的输出端口4’)与第二后端网表中的相应端口连接,得到第一后端网表。
需要说明的是,图4A和图4B所示为一种示意,而不对第一后端网表、第二后端网表、工程修改网表的结构构成任何限制。
由此,可以通过执行上述步骤S10-S50得到工程修改后的第一后端网表,该数字集成电路的设计方法提供了一种通用、高效的ECO方法,通过边界信号确定需要修改的替换区域,基于RTL代码的修改创建一个新的ECO模块,使用该ECO模块进行替换完成工程修改,可以极大地节省项目周期和成本,适用于复杂的ECO修改的场景,使得网表修改变得方便、可行;并且,不需要基于ECO工具单独配置、建立流程,修改结果也相对可控。
例如,进行工程修改前的第二寄存器传输级描述文件和对应的第二后端网表(post-layoutnetlist)组成旧设计对,进行工程修改后的第一寄存器传输级描述文件和对应的第一后端网表组成新设计对,工程修改由于跳过了传统的前向过程,如综合、布局布线、时序收敛等,因此需要保证新设计对之间的逻辑等价,例如对第一寄存器传输级描述文件和第一后端网表进行等价性验证。
例如,本公开至少一实施例提供的数字集成电路的设计方法还包括:对第一后端网表和第一寄存器传输级描述文件进行等价性验证。
逻辑等价是使用形式化的、静态的手段确定不同版本的文件之间是否功能上等价。在等价性验证过程中,对于整个状态空间,旧设计对之间和新设计对之间必须具有匹配的状态元件(比较点),这意味着第二寄存器传输级描述文件、第二后端网表必须匹配,第一寄存器传输级描述文件和第一后端网表必须匹配,这里的匹配指它们具有一对一的映射关系。如果第一后端网表和第一寄存器传输级描述文件中所有逻辑锥结构的比对点都能一对一对应,则认为对第一后端网表和第一寄存器传输级描述文件逻辑上是等价的。
例如,由于对网表进行了修改,除等价性验证外还需要对第一后端网表进行时序检查,以确认时序是否满足要求。
例如,本公开至少一实施例提供的数字集成电路的设计方法还包括:对第一后端网表进行时序检查。
最终的第一后端网表如果时序检查通过,并且与修复功能缺陷后第一寄存器传输级描述文件的等价性检查通过,代表工程修改正确完成。
图5为本公开至少一实施例提供的数字集成电路的设计方法的处理流程图。
图6A为本公开一实施例提供的第二寄存器传输级描述文件的示意图,图6B为本公开一实施例提供的第一寄存器传输级描述文件的示意图,图6C为本公开一实施例提供的工程修改模块的示意图。
下面结合图5、图6A-图6C,具体说明数字集成电路的设计方法的处理流程。
首先,如图5所示,对图6A所示的第二寄存器传输级描述文件进行功能缺陷修复,并完成充分的功能仿真验证,得到图6B所示的第一寄存器传输级描述文件。
之后,如图5所示,基于第一寄存器传输级描述文件和第二寄存器传输级描述文件,分析区别部分。如图6B所示,其中的阴影部分的代码为相对于第二寄存器传输级描述文件不同的代码部分,也即区别部分,例如,区别部分包括图6B中的4-9行、13-17行、22-23行、29-30行以及33行代码。
之后,如图5所示,对区别部分进行分析,确定由区别部分确定的替换区域的边界处的边界信号。例如,经过对区别部分进行分析,确定边界信号包括如下信号:
1)MA_vld和MA_prb:设计输出端口的输出信号;
2)MA_prb_vld:被端口信号驱动的线网类型;
3)wr_ptr和mem:内部寄存器;
4)clk、rst_n、MB_empty、MB_last、MB_rtr和MB_rts:设计输入端口的输入信号。
例如,边界输入信号包括如上的边界信号2)-4),边界输出信号包括如上的边界信号1)。
之后,如图5所示,将边界信号作为端口信号,将区别部分作为内部代码实现,创建区别部分对应的工程修改模块。
例如,工程修改模块的代码如图6C所示,其中,定义边界输入信号为工程修改模块的输入信号,也即定义工程修改模块的输入包括clk/rst_n/MB_empty/MA_prb_vld/mem/wr_ptr/MB_last/MB_rtr/MB_rts;定义边界输出信号为工程修改模块的输出信号,也即定义工程修改模块的输出包括MA_vld/MA_prb;将图6B中的阴影部分代码(图6B中的4-9行、13-17行、22-23行、29-30行以及33行)全部作为工程修改模块的代码实现。
例如,可以直接复制区别部分作为工程修改模块的代码实现,或者,也可以对其中的部分代码行进行适当优化,不改变功能的前提下以更优的方式实现。例如,图6C中的条件语句(图6C中矩形框所示)部分为图6B中的第17行代码的另一种表述形式。
之后,如图5所示,对工程修改模块进行综合,得到工程修改网表。
之后,如图5所示,基于工程修改网表,对第二寄存器传输级描述文件综合得到的第二后端网表进行工程修改,得到第一后端网表,具体过程参考步骤S50的相关描述,这里不再赘述。
之后,如图5所示,对第一后端网表和第一寄存器传输级描述文件进行等价性验证,以及对第一后端网表进行时序检查,如果时序检查和等价性检查均通过,代表工程修改正确完成。
在上述实施例中,通过区别部分分析边界信号,基于边界信号确定需要修改的替换区域,以能在第二后端网表中大量逻辑锥结构里确定需要受影响的逻辑锥结构整体组成的替换区域,并基于该区别部分、边界信号创建一个新的ECO模块,使用该ECO模块进行替换完成工程修改。即使RTL修改对网表的冲击较大,该方法也可以方便、高效地完成工程修改,极大地节省项目周期和成本,适用于复杂的ECO修改的场景,使得网表修改变得方便、可行;并且,不需要基于ECO工具单独配置、建立流程,修改结果也相对可控。
与上述的数字集成电路的设计方法相对应,本公开至少一实施例还提供一种数字电路的设计装置,图7为本公开至少一实施例提供的一种数字电路的设计装置的示意性框图。
例如,如图7所示,数字电路的设计装置100至少包括:获取单元101、确定单元102、分析单元103、创建单元104和工程修改单元105。
获取单元101配置为获取第一寄存器传输级描述文件。
例如,第一寄存器传输级描述文件通过对第二寄存器传输级描述文件进行功能缺陷修复得到。
确定单元102,配置为基于第一寄存器传输级描述文件和第二寄存器传输级描述文件,确定第一寄存器传输级描述文件中的区别部分。
例如,区别部分为第一寄存器传输级描述文件相对于第二寄存器传输级描述文件不同的代码部分。
分析单元103,配置为对区别部分进行分析,确定位于由区别部分确定的替换区域的边界处的边界信号。
例如,替换区域包括多个逻辑锥结构,多个逻辑锥结构为在功能缺陷修复过程中新增或需要修改的逻辑锥结构。
创建单元104,配置为基于边界信号,结合区别部分,创建区别部分对应的工程修改模块。
工程修改单元105,配置为基于工程修改模块对第二寄存器传输级描述文件对应的第二后端网表进行工程修改,得到工程修改后的第一后端网表。
例如,确定单元102执行基于第一寄存器传输级描述文件和第二寄存器传输级描述文件,确定第一寄存器传输级描述文件中的区别部分时,包括执行以下操作:对第一寄存器传输级描述文件和第二寄存器传输级描述文件进行比较,将第一寄存器传输级描述文件相对于第二寄存器传输级描述文件增加或修改的代码部分作为区别部分。
例如,边界信号包括边界输入信号和边界输出信号。
分析单元103执行对区别部分进行分析,确定位于由区别部分确定的替换区域的边界处的边界信号时,包括执行以下操作:确定由第一寄存器传输级描述文件中除区别部分以外的部分确定的非替换区域;对区别部分进行分析,确定第一逻辑锥结构中来自非替换区域的输入信号作为边界输入信号,确定第二逻辑锥结构输出至非替换区域的输出信号作为边界输出信号,其中,第一逻辑锥结构和第二逻辑锥结构为多个逻辑锥结构中与非替换区域存在直接信号传输关系的逻辑锥结构。
例如,边界输入信号包括设计输入端口的信号、寄存器输出端口的信号、黑盒子输出端口的信号;边界输出信号包括设计输出端的信号、寄存器输入端口的信号、黑盒子输入端口的信号以及具有多个驱动的线网类型,其中,多个驱动中的至少一个驱动是设计输出端口或黑盒子的输出端口。
例如,创建单元104执行基于边界信号,结合区别部分,创建区别部分对应的工程修改模块时,包括执行以下操作;将边界输入信号作为工程修改模块的输入信号;将边界输出信号作为工程修改模块的输出信号;将区别部分作为工程修改模块的内部实现,创建工程修改模块。
例如,工程修改单元105执行基于工程修改模块对第二寄存器传输级描述文件对应的第二后端网表进行工程修改,得到工程修改后的第一后端网表时,包括执行以下操作:对工程修改模块进行综合,得到工程修改模块对应的工程修改网表;确定第二后端网表中替换区域对应的网表替换部分;对第二后端网表进行工程修改,以将第二后端网表中的网表替换部分替换为工程修改网表,得到第一后端网表。
例如,工程修改单元105执行确定第二后端网表中替换区域对应的网表替换部分时,包括执行以下操作:依据边界信号,从第二后端网表中确定替换区域对应的网表替换部分。
例如,工程修改单元105执行对第二后端网表进行工程修改,以将第二后端网表中的网表替换部分替换为工程修改网表,得到第一后端网表时,包括执行以下操作:断开网表替换部分中边界信号与第二后端网表中网表替换部分以外的其它部分的连接关系;将网表替换部分替换为工程修改网表,并将工程修改网表中的边界信号与第二后端网表中的相应端口连接,得到第一后端网表。
例如,工程修改单元105执行断开网表替换部分中边界信号与第二后端网表中网表替换部分以外的其它部分的连接关系,包括执行以下操作:断开网表替换部分中与边界信号相关的逻辑锥结构的相关端口的连接关系,其中,相关端口包括与边界信号相关的逻辑锥结构中与第二后端网表的其它部分存在直接信号传输关系的端口。
例如,工程修改单元105执行将网表替换部分替换为工程修改网表,并将工程修改网表中的边界信号与第二后端网表中的相应端口连接,得到第一后端网表时,包括执行以下操作:将网表替换部分替换为工程修改网表,并将工程修改网表中与边界信号相关的第一逻辑锥结构的输入端口和第二逻辑锥结构的输出端口与第二后端网表中的相应端口连接,得到第一后端网表。
例如,数字集成电路的设计装置100还验证单元(未示出),验证单元配置为对第一后端网表和第一寄存器传输级描述文件进行等价性验证。
例如,数字集成电路的设计装置100还时序检查单元(未示出),时序检查单元配置为对第一后端网表进行时序检查。
例如,获取单元101、确定单元102、分析单元103、创建单元104和工程修改单元105包括存储在存储器中的代码和程序;处理器可以执行该代码和程序以实现如上所述的获取单元101、确定单元102、分析单元103、创建单元104和工程修改单元105的一些功能或全部功能。例如,获取单元101、确定单元102、分析单元103、创建单元104和工程修改单元105可以是专用硬件器件,用来实现如上所述的获取单元101、确定单元102、分析单元103、创建单元104和工程修改单元105的一些或全部功能。例如,获取单元101、确定单元102、分析单元103、创建单元104和工程修改单元105可以是一个电路板或多个电路板的组合,用于实现如上所述的功能。在本申请实施例中,该一个电路板或多个电路板的组合可以包括:(1)一个或多个处理器;(2)与处理器相连接的一个或多个非暂时的存储器;以及(3)处理器可执行的存储在存储器中的固件。
需要说明的是,获取单元101用于实现图2所示的步骤S10,确定单元102用于实现图2所示的步骤S20,分析单元103用于实现图2所示的步骤S30,创建单元104用于实现图2所示的步骤S40,工程修改单元105用于实现图2所示的步骤S50。从而关于获取单元101的具体说明可以参考上述数字集成电路的设计方法的实施例中图2所示的步骤S10的相关描述,关于确定单元102的具体说明可以参考上述数字集成电路的设计方法的实施例中图2所示的步骤S20的相关描述,关于分析单元103的具体说明可以参考上述数字集成电路的设计方法的实施例中图2所示的步骤S30的相关描述,关于创建单元104的具体说明可以参考上述数字集成电路的设计方法的实施例中图2所示的步骤S40的相关描述,关于工程修改单元105的具体说明可以参考上述数字集成电路的设计方法的实施例中图2所示的步骤S50的相关描述。
此外,数字电路的设计装置可以实现与前述数字集成电路的设计方法相似的技术效果,在此不再赘述。
本公开至少一实施例还提供一种电子设备,图8为本公开至少一实施例提供的一种电子设备的示意性框图。
例如,如图8所示,该电子设备包括处理器1001、通信接口1002、存储器1003和通信总线1004。处理器1001、通信接口1002、存储器1003通过通信总线1004实现相互通信,处理器1001、通信接口1002、存储器1003等组件之间也可以通过网络连接进行通信。本公开对网络的类型和功能在此不作限制。
例如,存储器1003用于非瞬时性地存储计算机可执行指令。处理器1001用于运行计算机可执行指令时,计算机可执行指令被处理器1001运行时实现根据上述任一实施例所述的数字集成电路的设计方法。关于该数字集成电路的设计方法的各个步骤的具体实现以及相关解释内容可以参见上述数字集成电路的设计方法的实施例,在此不作赘述。
例如,处理器1001执行存储器1003上所存储的程序而实现数字集成电路的设计方法的实现方式,与前述数字集成电路的设计方法的实施例部分所提及的实现方式相同,这里也不再赘述。
例如,通信总线1004可以是外设部件互连标准(PCI)总线或扩展工业标准结构(EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
例如,通信接口1002用于实现电子设备与其他设备之间的通信。
例如,处理器1001可以控制电子设备中的其它组件以执行期望的功能。处理器1001可以是中央处理器(CPU)、网络处理器(NP)等,还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。中央处理元(CPU)可以为X86或ARM架构等。
例如,存储器1003可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机可执行指令,处理器1001可以运行所述计算机可执行指令,以实现电子设备的各种功能。在存储介质中还可以存储各种应用程序和各种数据等。
例如,关于电子设备执行数字电路的设计的过程的详细说明可以参考数字集成电路的设计方法的实施例中的相关描述,重复之处不再赘述。
图9为本公开至少一实施例提供的一种非瞬时性计算机可读存储介质的示意图。例如,如图9所示,在存储介质1100上可以非暂时性地存储一个或多个计算机可执行指令1101。例如,当计算机可执行指令1101由处理器执行时可以执行根据上文所述的数字集成电路的设计方法中的一个或多个步骤。
例如,该存储介质1100可以应用于上述电子设备和/或数字电路的设计装置100中。例如,存储介质1100可以包括电子设备中的存储器1003。
例如,关于存储介质1100的说明可以参考电子设备的实施例中对于存储器的描述,重复之处不再赘述。
对于本公开,还有以下几点需要说明:
(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)为了清晰起见,在用于描述本发明的实施例的附图中,层或结构的厚度和尺寸被放大。可以理解,当诸如层、膜、区域或基板之类的元件被称作位于另一元件“上”或“下”时,该元件可以“直接”位于另一元件“上”或“下”,或者可以存在中间元件。
(3)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。

Claims (18)

1.一种数字集成电路的设计方法,包括:
获取第一寄存器传输级描述文件,其中,所述第一寄存器传输级描述文件通过对第二寄存器传输级描述文件进行功能缺陷修复得到;
基于所述第一寄存器传输级描述文件和所述第二寄存器传输级描述文件,确定所述第一寄存器传输级描述文件中的区别部分,其中,所述区别部分为所述第一寄存器传输级描述文件相对于所述第二寄存器传输级描述文件不同的代码部分;
对所述区别部分进行分析,确定位于由所述区别部分确定的替换区域的边界处的边界信号,其中,所述替换区域包括多个逻辑锥结构,所述多个逻辑锥结构为在所述功能缺陷修复过程中新增或需要修改的逻辑锥结构;
基于所述边界信号,结合所述区别部分,创建所述区别部分对应的工程修改模块;
基于所述工程修改模块对所述第二寄存器传输级描述文件对应的第二后端网表进行工程修改,得到工程修改后的第一后端网表。
2.根据权利要求1所述的设计方法,其中,基于所述第一寄存器传输级描述文件和所述第二寄存器传输级描述文件,确定所述第一寄存器传输级描述文件中的区别部分,包括:
对所述第一寄存器传输级描述文件和所述第二寄存器传输级描述文件进行比较,将所述第一寄存器传输级描述文件相对于所述第二寄存器传输级描述文件增加或修改的代码部分作为所述区别部分。
3.根据权利要求1所述的设计方法,其中,所述边界信号包括边界输入信号和边界输出信号,
对所述区别部分进行分析,确定位于由所述区别部分确定的替换区域的边界处的边界信号,包括:
确定由所述第一寄存器传输级描述文件中除所述区别部分以外的部分确定的非替换区域;
对所述区别部分进行分析,确定第一逻辑锥结构中来自所述非替换区域的输入信号作为所述边界输入信号,确定第二逻辑锥结构输出至所述非替换区域的输出信号作为所述边界输出信号,其中,所述第一逻辑锥结构和所述第二逻辑锥结构为所述多个逻辑锥结构中与所述非替换区域存在直接信号传输关系的逻辑锥结构。
4.根据权利要求3所述的设计方法,其中,所述边界输入信号包括设计输入端口的信号、寄存器输出端口的信号、黑盒子输出端口的信号;
所述边界输出信号包括设计输出端的信号、寄存器输入端口的信号、黑盒子输入端口的信号以及具有多个驱动的线网类型,其中,所述多个驱动中的至少一个驱动是设计输出端口或黑盒子的输出端口。
5.根据权利要求1所述的设计方法,其中,所述边界信号包括边界输入信号和边界输出信号,
基于所述边界信号,结合所述区别部分,创建所述区别部分对应的工程修改模块,包括;
将所述边界输入信号作为所述工程修改模块的输入信号;
将所述边界输出信号作为所述工程修改模块的输出信号;
将所述区别部分作为所述工程修改模块的内部实现,创建所述工程修改模块。
6.根据权利要求1所述的设计方法,其中,基于所述工程修改模块对所述第二寄存器传输级描述文件对应的第二后端网表进行工程修改,得到工程修改后的第一后端网表,包括:
对所述工程修改模块进行综合,得到所述工程修改模块对应的工程修改网表;
确定所述第二后端网表中所述替换区域对应的网表替换部分;
对所述第二后端网表进行工程修改,以将所述第二后端网表中的所述网表替换部分替换为所述工程修改网表,得到所述第一后端网表。
7.根据权利要求6所述的设计方法,其中,确定所述第二后端网表中所述替换区域对应的网表替换部分,包括:
依据所述边界信号,从所述第二后端网表中确定所述替换区域对应的网表替换部分。
8.根据权利要求6所述的设计方法,其中,对所述第二后端网表进行工程修改,以将所述第二后端网表中的所述网表替换部分替换为所述工程修改网表,得到所述第一后端网表,包括:
断开所述网表替换部分中所述边界信号与所述第二后端网表中所述网表替换部分以外的其它部分的连接关系;
将所述网表替换部分替换为所述工程修改网表,并将所述工程修改网表中的所述边界信号与所述第二后端网表中的相应端口连接,得到所述第一后端网表。
9.根据权利要求8所述的设计方法,其中,断开所述网表替换部分中所述边界信号与所述第二后端网表中所述网表替换部分以外的其它部分的连接关系,包括:
断开所述网表替换部分中与所述边界信号相关的逻辑锥结构的相关端口的连接关系,其中,所述相关端口包括与所述边界信号相关的逻辑锥结构中与所述第二后端网表的其它部分存在直接信号传输关系的端口。
10.根据权利要求8所述的设计方法,其中,将所述网表替换部分替换为所述工程修改网表,并将所述工程修改网表中的所述边界信号与所述第二后端网表中的相应端口连接,得到所述第一后端网表,包括:
将所述网表替换部分替换为所述工程修改网表,并将所述工程修改网表中与所述边界信号相关的第一逻辑锥结构的输入端口和第二逻辑锥结构的输出端口与所述第二后端网表中的相应端口连接,得到所述第一后端网表。
11.根据权利要求1-10任一项所述的设计方法,还包括:
对所述第一后端网表和所述第一寄存器传输级描述文件进行等价性验证。
12.根据权利要求1-10任一项所述的设计方法,还包括:
对所述第一后端网表进行时序检查。
13.一种数字集成电路的设计装置,包括:
获取单元,配置为获取第一寄存器传输级描述文件,其中,所述第一寄存器传输级描述文件通过对第二寄存器传输级描述文件进行功能缺陷修复得到;
确定单元,配置为基于所述第一寄存器传输级描述文件和所述第二寄存器传输级描述文件,确定所述第一寄存器传输级描述文件中的区别部分,其中,所述区别部分为所述第一寄存器传输级描述文件相对于所述第二寄存器传输级描述文件不同的代码部分;
分析单元,配置为对所述区别部分进行分析,确定位于由所述区别部分确定的替换区域的边界处的边界信号,其中,所述替换区域包括多个逻辑锥结构,所述多个逻辑锥结构为在所述功能缺陷修复过程中新增或需要修改的逻辑锥结构;
创建单元,配置为基于所述边界信号,结合所述区别部分,创建所述区别部分对应的工程修改模块;
工程修改单元,配置为基于所述工程修改模块对所述第二寄存器传输级描述文件对应的第二后端网表进行工程修改,得到工程修改后的第一后端网表。
14.根据权利要求13所述的设计装置,其中,所述边界信号包括边界输入信号和边界输出信号,
所述分析单元执行对所述区别部分进行分析,确定位于由所述区别部分确定的替换区域的边界处的边界信号时,包括执行以下操作:
确定由所述第一寄存器传输级描述文件中除所述区别部分以外的部分确定的非替换区域;
对所述区别部分进行分析,确定第一逻辑锥结构中来自所述非替换区域的输入信号作为所述边界输入信号,确定第二逻辑锥结构输出至所述非替换区域的输出信号作为所述边界输出信号,其中,所述第一逻辑锥结构和所述第二逻辑锥结构为所述多个逻辑锥结构中与所述非替换区域存在直接信号传输关系的逻辑锥结构。
15.根据权利要求13所述的设计装置,其中,所述边界信号包括边界输入信号和边界输出信号,
所述创建单元执行基于所述边界信号,结合所述区别部分,创建所述区别部分对应的工程修改模块时,包括执行以下操作;
将所述边界输入信号作为所述工程修改模块的输入信号;
将所述边界输出信号作为所述工程修改模块的输出信号;
将所述区别部分作为所述工程修改模块的内部实现,创建所述工程修改模块。
16.根据权利要求13所述的设计装置,其中,所述工程修改单元执行基于所述工程修改模块对所述第二寄存器传输级描述文件对应的第二后端网表进行工程修改,得到工程修改后的第一后端网表时,包括执行以下操作:
对所述工程修改模块进行综合,得到所述工程修改模块对应的工程修改网表;
确定所述第二后端网表中所述替换区域对应的网表替换部分;
对所述第二后端网表进行工程修改,以将所述第二后端网表中的所述网表替换部分替换为所述工程修改网表,得到所述第一后端网表。
17.一种电子设备,包括:
存储器,非瞬时性地存储有计算机可执行指令;
处理器,配置为运行所述计算机可执行指令,
其中,所述计算机可执行指令被所述处理器运行时实现根据权利要求1-12任一项所述的数字集成电路的设计方法。
18.一种非瞬时性计算机可读存储介质,其中,所述非瞬时性计算机可读存储介质存储有计算机可执行指令,
所述计算机可执行指令被处理器执行时实现根据权利要求1-12任一项所述的数字集成电路的设计方法。
CN202310664004.9A 2023-06-06 2023-06-06 数字集成电路的设计方法、装置、电子设备、存储介质 Pending CN116595916A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310664004.9A CN116595916A (zh) 2023-06-06 2023-06-06 数字集成电路的设计方法、装置、电子设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310664004.9A CN116595916A (zh) 2023-06-06 2023-06-06 数字集成电路的设计方法、装置、电子设备、存储介质

Publications (1)

Publication Number Publication Date
CN116595916A true CN116595916A (zh) 2023-08-15

Family

ID=87600770

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310664004.9A Pending CN116595916A (zh) 2023-06-06 2023-06-06 数字集成电路的设计方法、装置、电子设备、存储介质

Country Status (1)

Country Link
CN (1) CN116595916A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112257366A (zh) * 2020-10-13 2021-01-22 国微集团(深圳)有限公司 一种用于等价性验证的cnf生成方法及系统
CN117454817A (zh) * 2023-12-25 2024-01-26 芯能量集成电路(上海)有限公司 一种基于fpga的工程处理方法、装置、电子设备及存储介质
CN117494620A (zh) * 2023-11-16 2024-02-02 海光集成电路设计(北京)有限公司 综合方法、冗余单元的删除方法、装置、设备及存储介质
CN118395922A (zh) * 2024-06-19 2024-07-26 奇捷科技(深圳)有限公司 一种基于自适应学习的eco方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112257366A (zh) * 2020-10-13 2021-01-22 国微集团(深圳)有限公司 一种用于等价性验证的cnf生成方法及系统
CN112257366B (zh) * 2020-10-13 2024-05-07 深圳国微芯科技有限公司 一种用于等价性验证的cnf生成方法及系统
CN117494620A (zh) * 2023-11-16 2024-02-02 海光集成电路设计(北京)有限公司 综合方法、冗余单元的删除方法、装置、设备及存储介质
CN117454817A (zh) * 2023-12-25 2024-01-26 芯能量集成电路(上海)有限公司 一种基于fpga的工程处理方法、装置、电子设备及存储介质
CN117454817B (zh) * 2023-12-25 2024-04-12 芯能量集成电路(上海)有限公司 一种基于fpga的工程处理方法、装置、电子设备及存储介质
CN118395922A (zh) * 2024-06-19 2024-07-26 奇捷科技(深圳)有限公司 一种基于自适应学习的eco方法

Similar Documents

Publication Publication Date Title
CN116595916A (zh) 数字集成电路的设计方法、装置、电子设备、存储介质
US8875071B2 (en) Deployment of custom shift array macro cells in automated application specific integrated circuit design flow
US8108745B2 (en) On-device constrained random verification for device development
US8533655B1 (en) Method and apparatus for capturing data samples with test circuitry
US8365114B2 (en) Logic modification synthesis
US8762907B2 (en) Hierarchical equivalence checking and efficient handling of equivalence checks when engineering change orders are in an unsharable register transfer level
JP2000207440A (ja) 半導体集積回路の設計検証装置、方法及び記憶媒体
CN113569524A (zh) 芯片设计中基于综合网表提取时钟树的方法及应用
US10664561B1 (en) Automatic pipelining of memory circuits
US8868396B1 (en) Verification and debugging using heterogeneous simulation models
CN114239459B (zh) Fpga原型设计文件的处理方法、装置、设备及介质
US20120210286A1 (en) Adding fine grain tuning circuitry to integrated circuit design
US7543204B2 (en) Method, apparatus and computer program product for designing logic scan chains for matching gated portions of a clock tree
CN107784185B (zh) 一种门级网表中伪路径的提取方法、装置及终端设备
US7657851B2 (en) Device, system, and method for correction of integrated circuit design
US11036906B1 (en) Method and apparatus to accelerate verification signoff by selective re-use of integrated coverage models
US5526514A (en) Method for circuit verification and multi-level circuit optimization based on structural implications
US10460060B2 (en) Checking equivalence between changes made in a circuit definition language and changes in post-synthesis nets
CN116050309A (zh) 数字电路的设计方法、装置、电子设备、存储介质
US20230376662A1 (en) Circuit simulation based on an rtl component in combination with behavioral components
CN110991129B (zh) 一种基于fpga的密码协处理器全自动仿真验证方法
WO2006025412A1 (ja) 論理検証方法、論理モジュールデータ、デバイスデータおよび論理検証装置
CN116431582B (zh) 一种自动化扩展硬件设计电路资源的方法
US7546561B2 (en) System and method of state point correspondence with constrained function determination
US8726205B1 (en) Optimized simulation technique for design verification of an electronic circuit

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