一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

集成电路的验证方法、装置、电子设备、存储介质与流程

2022-06-01 12:04:57 来源:中国专利 TAG:


1.本公开的实施例涉及一种集成电路的验证方法、集成电路的验证装置、电子设备、非瞬时性计算机可读存储介质。


背景技术:

2.对于集成电路,尤其是大规模集成电路在设计完成后,需要对其功能进行验证。由于受到大规模集成电路的系统限制,时常需要在多个不同的时钟频率系统之间交换数据、在不同的时钟频率系统之间通过输入接口和输出接口来接收、发送数据或处理异步信号等,也即在集成电路中可能存在多个时钟域(clock domain),每个时钟域为集成电路中由同一个时钟信号控制的区域。
3.不同时钟域对应的时钟信号称为异步时钟。对于集成电路中相连的两个模块,例如,每个模块可以由一些完成特定功能的电路逻辑构成,如果两个模块分别由不同的时钟(也即异步时钟)驱动,则两个模块的时钟信号称为异步时钟信号(asynchronous interface);如果两个模块由同一个时钟驱动,则两个模块的时钟信号称为同步时钟信号(synchronous interface)。


技术实现要素:

4.本公开至少一实施例提供一种集成电路的验证方法,其中,所述集成电路包括多个异步的时钟域,所述验证方法包括:获取多个异步时序器件对,其中,每个异步时序器件对包括第一时序器件和第二时序器件,所述第一时序器件和所述第二时序器件位于所述多个时钟域中的两个不同的时钟域,所述第一时序器件的数据输出端与所述第二时序器件的数据输入端之间存在电信号传输关系;根据所述多个异步时序器件对,对所述集成电路执行模型构建处理,以得到待仿真电路;对所述待仿真电路进行前端仿真验证;其中,所述模型构建处理包括:针对所述每个异步时序器件对:根据所述第一时序器件和所述第二时序器件之间的电路特性,确定响应时间;根据所述响应时间,构建响应模型,其中,所述响应模型包括输入端和输出端,所述响应模型配置为从第一时刻开始的所述响应时间内输出亚稳态信号,从所述第一时刻开始的所述响应时间之后输出稳态响应信号,所述第一时刻为所述输入端接收到的输入信号发生跳变的时刻;将所述响应模型添加入所述集成电路中基于所述第一时序器件和所述第二时序器件确定的数据链路。
5.例如,在本公开至少一实施例提供一种集成电路的验证方法中,根据所述第一时序器件和所述第二时序器件之间的电路特性,确定响应时间,包括:根据所述电路特性,确定延时时间;根据所述延时时间,确定所述响应时间。
6.例如,在本公开至少一实施例提供一种集成电路的验证方法中,根据所述电路特性,确定延时时间,包括:根据所述电路特性,确定约束时间,其中,所述约束时间表示所述第二时序器件至少在所述第一时刻之后的第二时刻采集到稳态响应信号,所述第一时刻与所述第二时刻相差所述约束时间;根据所述约束时间,确定所述延时时间。
7.例如,在本公开至少一实施例提供一种集成电路的验证方法中,所述第二时序器件所在的时钟域基于目标时钟信号确定,根据所述电路特性,确定约束时间,包括:根据所述电路特性,确定所述约束时间为x个时钟周期,其中,所述时钟周期为所述目标时钟信号的时钟周期,x为正整数。
8.例如,在本公开至少一实施例提供一种集成电路的验证方法中,根据所述约束时间,确定所述延时时间,包括:确定判定沿,其中,所述判定沿为所述目标时钟信号中,在所述第一时刻之后出现的第一个跳变沿;以所述判定沿作为第一个判定沿,计数y个判定沿,其中,y为正数且小于等于x;将所述第一时刻与第y个判定沿之间的时长作为所述延时时间。
9.例如,在本公开至少一实施例提供一种集成电路的验证方法中,y为0至x之间的随机值。
10.例如,在本公开至少一实施例提供一种集成电路的验证方法中,根据所述电路特性,确定约束时间,包括:根据所述电路特性,确定所述第一时序器件和所述第二时序器件之间的最大延时,将所述最大延时作为所述约束时间。
11.例如,在本公开至少一实施例提供一种集成电路的验证方法中,根据所述约束时间,确定所述延时时间,包括:确定所述延时时间等于所述约束时间。
12.例如,在本公开至少一实施例提供一种集成电路的验证方法中,根据所述延时时间,确定所述响应时间,包括:确定所述响应时间小于或等于所述延时时间。
13.例如,在本公开至少一实施例提供一种集成电路的验证方法中,所述第二时序器件对所述第一时序器件发送的信号执行同步处理,所述响应模型还包括同步处理模块,所述同步处理模块包括多个时序器件,所述同步处理模块配置为对所述第一时序器件发送的信号执行同步处理,根据所述电路特性,确定延时时间,包括:根据所述电路特性,确定约束时间,其中,所述约束时间表示第三时序器件至少在所述第一时刻之后的第二时刻采集到稳态响应信号,所述第一时刻与所述第二时刻相差所述约束时间,所述第三时序器件表示所述多个时序器件中与所述同步处理模块的数据信号输入端直接相连的时序器件;根据所述约束时间,确定所述延时时间。
14.例如,在本公开至少一实施例提供一种集成电路的验证方法中,根据所述延时时间,确定所述响应时间,包括:确定所述同步处理模块对应的处理延时;根据所述处理延时和所述延时时间,确定所述响应时间。
15.例如,在本公开至少一实施例提供一种集成电路的验证方法中,根据所述处理延时和所述延时时间,确定所述响应时间,包括:确定所述响应时间小于或等于所述处理延时与所述延时时间之和。
16.例如,在本公开至少一实施例提供一种集成电路的验证方法中,响应于所述第三时序器件接收的信号为亚稳态信号,根据所述处理延时、所述延时时间,确定所述响应时间,包括:确定所述响应时间小于或等于所述处理延时、亚稳态延时以及所述延时时间之和。
17.例如,在本公开至少一实施例提供一种集成电路的验证方法中,所述模型构建处理还包括:根据所述约束时间,对所述仿真模型进行命名,以使得所述仿真模型的命名与所述约束时间相对应。
18.例如,在本公开至少一实施例提供一种集成电路的验证方法中,将所述响应模型添加入所述集成电路中基于所述第一时序器件和所述第二时序器件确定的数据链路,包括:将所述响应模型插入所述第二时序器件以及与所述第二时序器件直接相连的器件之间,所述响应模型的输出端与所述第二时序器件的数据输入端直接相连。
19.例如,本公开至少一实施例提供一种集成电路的验证方法还包括:获得通过所述仿真验证的待规划电路,其中,所述待规划电路包括所述多个异步时序器件对;对所述待规划电路执行规划处理;其中,所述规划处理包括:将所述多个异步时序器件对中的至少一个异步时序器件对分别对应的至少一个响应模型替换为相应的物理器件,其中,所述物理器件的命名与对应的响应模型的命名相同;根据所述物理器件的命名,获取多个约束时间。
20.例如,在本公开至少一实施例提供一种集成电路的验证方法中,所述规划处理还包括:根据所述多个约束时间,对所述待规划电路进行布局布线优化。
21.例如,在本公开至少一实施例提供一种集成电路的验证方法中,所述规划处理还包括:设置虚拟时钟域;根据所述多个约束时间,对所述待规划电路中的多个异步时序器件对设置时序约束。
22.例如,在本公开至少一实施例提供一种集成电路的验证方法中,所述规划处理还包括:设置虚拟时钟域,包括:根据所述多个异步时序器件对以及所述多个时钟域,确定至少一个虚拟时钟;针对每个虚拟时钟,设置基于所述多个异步时序器件对确定的至少一条时序路径属于同一个虚拟时钟域,其中,所述同一个虚拟时钟域基于所述每个虚拟时钟确定。
23.例如,在本公开至少一实施例提供一种集成电路的验证方法中,所述规划处理还包括:根据所述多个异步时序器件对设置的时序约束,对所述多个异步时序器件对进行时序检查。
24.例如,在本公开至少一实施例提供一种集成电路的验证方法中,所述亚稳态信号包括随机信号和不确定态信号,所述响应模型执行从第一时刻开始的所述响应时间内输出亚稳态信号时,包括执行以下操作:获取信号配置参数;根据所述信号配置参数,在从所述第一时刻开始的响应时间内输出所述随机信号或所述不确定态信号中的一种。
25.本公开至少一实施例提供一种集成电路的验证装置,其中,所述集成电路包括多个异步的时钟域,所述验证装置包括:获取单元,配置为获取多个异步时序器件对,其中,每个异步时序器件对包括第一时序器件和第二时序器件,所述第一时序器件和所述第二时序器件位于所述多个时钟域中的两个不同的时钟域,所述第一时序器件的数据输出端与所述第二时序器件的数据输入端之间存在电信号传输关系;处理单元,配置为根据所述多个异步时序器件对,对所述集成电路执行模型构建处理,以得到待仿真电路;仿真验证单元,配置为对所述待仿真电路进行前端仿真验证;其中,所述模型构建处理包括:针对所述每个异步时序器件对:根据所述第一时序器件和所述第二时序器件之间的电路特性,确定响应时间;根据所述响应时间,构建响应模型,其中,所述响应模型包括输入端和输出端,所述响应模型配置为从第一时刻开始的所述响应时间内输出亚稳态信号,从所述第一时刻开始的所述响应时间之后输出稳态响应信号,所述第一时刻为所述输入端接收到的输入信号发生跳变的时刻;将所述响应模型添加入所述集成电路中基于所述第一时序器件和所述第二时序器件确定的数据链路。
26.本公开至少一实施例提供一种电子设备,包括:存储器,非瞬时性地存储有计算机可执行指令;处理器,配置为运行所述计算机可执行指令,其中,所述计算机可执行指令被所述处理器运行时实现根据本公开任一实施例所述的集成电路的验证方法。
27.本公开至少一实施例提供一种非瞬时性计算机可读存储介质,其中,所述非瞬时性计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现根据本公开任一实施例所述的集成电路的验证方法。
附图说明
28.为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
29.图1为一种异步界面的示意图;
30.图2为本公开至少一实施例提供的一种集成电路的验证方法的示意性流程图;
31.图3为本公开至少一实施例提供的模型构建处理的示意性流程图;
32.图4为本公开至少一实施例提供的延时时间示意图;
33.图5a为本公开一实施例提供的响应模型的示意图;
34.图5b为本公开一实施例提供的响应模型的输出信号的示意图;
35.图5c为本公开另一实施例提供的响应模型的输出信号的示意图;
36.图6a为本公开另一实施例提供的响应模型的示意图;
37.图6b为本公开另一实施例提供的响应模型的输出信号的示意图;
38.图7a为本公开至少一实施例提供的一种集成电路的验证装置的示意性框图;
39.图7b为本公开至少一实施例提供的一种处理单元的示意性框图;
40.图7c为本公开至少一实施例提供的一种规划处理单元的示意性框图;
41.图8为本公开至少一实施例提供的一种电子设备的示意性框图;
42.图9为本公开至少一实施例提供的一种非瞬时性计算机可读存储介质的示意图。
具体实施方式
43.为了使得本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
44.除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
45.为了保持本公开实施例的以下说明清楚且简明,本公开省略了部分已知功能和已知部件的详细说明。
46.随着半导体技术的发展,集成电路的工艺越来越先进,规模越来越大,验证的周期也越来越长,验证的难度越来越高。对于采用先进工艺的大规模集成电路的项目和产品,验证越来越成为项目进度的重要考量因素。
47.在大规模集成电路中往往存在有多个时钟域。不同时钟域的信号相互关联,形成了大量跨时钟域的数据链路。这些数据链路因发送方和接收方分别属于不同的时钟域而被称为异步界面。
48.图1为一种异步界面的示意图。如图1所示,时序器件a1至时序器件an为由第一时钟信号clk_1驱动的时序器件,其中,p1点为时序器件a1的时钟输入端,p2点为时序器件a1的数据输出端;时序器件b1至时序器件bn为由第二时钟信号clk_2驱动的时序器件,其中,p3点为时序器件b1的数据输入端。一个异步时序器件对(时序器件a1至时序器件an中的任一个时序器件和时序器件b1至时序器件bn中的任一个时序器件)之间可能存在多个组合逻辑器件(combinatorial logics),以构成一条数据链路,数据链路的发送方为时序器件a1至时序器件an中的一个时序器件,数据链路的接收方为时序器件b1至时序器件bn中的一个时序器件。例如,数据链路可以是时序路径。
49.例如,在异步界面上,还可以包括更多的时钟域。例如,发送方还可以包括由第三时钟信号clk_3、第四时钟信号clk_4驱动的时序器件;接收方还可以包括由第五时钟信号clk_5、第六时钟信号clk_6驱动的时序器件。例如,一个异步时序器件对还可以包括由第三时钟信号clk_3驱动的一个时序器件和由第六时钟信号clk_6驱动的一个时序器件等。
50.异步界面因数据与时钟的相位关系不确定,可能出现建立时间或保持时间不满足,导致接收方可能看到亚稳态。
51.此外,也因发送方和接收方时钟关系不确定,集成电路不能进行静态时序分析,从而也无法在较早阶段的前端仿真中覆盖验证,而只能等到后端时序收敛后,将sdf(standard delay format,标准延时格式)文件中的时序信息反标至后端网表以进行后端验证(也称后仿真或后仿)。但由于后仿验证环境的搭建难度高、需要覆盖的边界(corner)多、验证时间长、出错难以定位,这越来越成为验证的瓶颈。
52.如果在后仿阶段发现设计存在问题,只能通过工程修改(engineering change order)解决,工程修改的难度较高;并且,如果执行工程修改可能还需要重新布局布线,这增加了迭代次数,极大的拖延了项目进度,造成项目进度滞后。
53.例如,除了在后仿阶段进行验证以外,还可以在前仿阶段中引入全随机或固定周期数的亚稳态输出,但这种方式由于异步界面完全没有时序约束,并且亚稳态的长度与实际的信号延时完全脱钩,无法体现异步界面的具体特性,导致验证结果过于悲观或过于乐观。此外,如果前端仿真中引入了亚稳态,容易在综合前的逻辑仿真中造成亚稳态传播,导致测试用例无法通过,浪费大量时间定位亚稳态的源头,导致验证结果过于悲观。
54.本公开至少一实施例提供一种集成电路的验证方法、集成电路的验证装置、电子设备和非瞬时性计算机可读存储介质。该集成电路的验证方法包括:获取多个异步时序器件对,其中,每个异步时序器件对包括第一时序器件和第二时序器件,第一时序器件和第二时序器件位于多个时钟域中的两个不同的时钟域,第一时序器件的数据输出端与第二时序
器件的数据输入端之间存在电信号传输关系;根据多个异步时序器件对,对集成电路执行模型构建处理,以得到待仿真电路;对待仿真电路进行前端仿真验证;其中,模型构建处理包括:针对每个异步时序器件对:根据第一时序器件和第二时序器件之间的电路特性,确定响应时间;根据响应时间,构建响应模型,其中,响应模型包括输入端和输出端,响应模型配置为从第一时刻开始的响应时间内输出亚稳态信号,从第一时刻开始的响应时间之后输出稳态响应信号,第一时刻为输入端接收到的输入信号发生跳变的时刻;将响应模型添加入集成电路中基于第一时序器件和第二时序器件确定的数据链路。
55.本公开至少一实施例提供的集成电路的验证方法根据异步时序器件对之间的电路特性确定响应时间,这种方式更加贴近电路的真实情况,精准地对异步界面中的各个异步时序器件对注入亚稳态信号,以较小的改动实现准确、快速的逻辑仿真,将异步界面的验证提前到前端仿真阶段执行,前端仿真验证快,且节约了搭建后端仿真环境的时间,从而降低了验证所需的时间成本;此外,一般后端仿真需要等待时序收敛后才能开始执行,而本公开提供的验证方法能够在项目早期执行,这极大地降低了定位潜在问题的难度,便于修改,并且极大的缩短项目研发时间和后期迭代次数,提高项目研发效率。
56.下面结合附图对本公开的实施例进行详细说明,但是本公开并不限于这些具体的实施例。
57.图2为本公开至少一实施例提供的一种集成电路的验证方法的示意性流程图。
58.例如,该集成电路的验证方法应用于集成电路的设计。例如,在电路的前端设计(逻辑设计)阶段完成后,应用该集成电路的验证方法对电路设计中的异步时钟进行仿真验证。
59.例如,集成电路包括多个异步的时钟域,例如,多个异步的时钟域包括由多个异步的时钟信号控制的时钟域。例如,两个时钟信号为异步的时钟信号可以是两个时钟信号的时钟频率不相同,例如其中一个时钟信号的时钟频率为100mhz,另一个时钟信号的时钟频率为120mhz。例如,两个时钟信号为异步的时钟信号还可以是两个时钟信号的初始相位不同、但时钟频率相同。也就是说,本公开中的多个异步的时钟信号彼此之间均没有确定的相位关系。
60.例如,参考图1所示的异步界面,以多个时钟域的数量为2为例具体说明。如图1所示,多个时钟域可以包括基于第一时钟信号clk_1确定的第一时钟域和基于所述第二时钟信号clk_2确定的第二时钟域。例如,第一时钟域为由第一时钟信号clk_1控制的区域,第一时钟域包括由第一时钟信号clk_1驱动的多个时序器件,例如时序器件a1至时序器件an。第二时钟域为由第二时钟信号clk_2控制的区域,第二时钟域包括由第二时钟信号clk_2驱动的多个时序器件,例如时序器件b1至时序器件bn。
61.在本公开中,器件包括逻辑器件,逻辑器件包括时序器件和组合逻辑器件。时序器件指代数字电路设计中的触发器、寄存器、锁存器等器件,时序器件对输入信号具有存储和记忆功能,当接收到时钟信号的有效沿或有效电平时,能够触发时序器件对输入信号的存储及输出信号的状态改变。组合逻辑器件指代数字电路设计中的与门、或门等实现逻辑运算的器件,组合逻辑器件对输入信号不具备存储和记忆功能,在任一时刻,组合逻辑器件的输出信号的状态取决于当前时刻的输入信号的状态。
62.例如,如图2所示,本公开至少一实施例提供的集成电路的验证方法包括步骤s10
至s30。
63.在步骤s10,获取多个异步时序器件对。
64.例如,每个异步时序器件对包括第一时序器件和第二时序器件,第一时序器件和第二时序器件位于多个时钟域中的两个不同的时钟域,第一时序器件的数据输出端与第二时序器件的数据输入端之间存在电信号传输关系。
65.例如,两个不同的时钟域包括第一时钟域和第二时钟域,第一时序器件为第一时钟域中的“末端时序器件”,第二时序器件为第二时钟域中的“起始端时序器件”,也即第一时序器件的数据输出端与第二时钟域中的任意一个时序器件存在电信号传输关系,该电信号传输关系由至少一个组合逻辑器件实现,此时,该第二时钟域中的任意一个时序器件为第二时序器件。
66.例如,以图1为例,时序器件a1与时序器件b1存在电信号传输关系,例如时序器件a1输出的数据信号经组合逻辑传输至时序器件b1,时序器件b1根据第二时钟信号clk_2对该数据信号进行采样,此时,时序器件a1与时序器件b1构成一个异步时序器件对,第一时序器件为a1,第二时序器件为b1。
67.例如,在一些示例中,第一时序器件发送的信号为准静态信号,例如,准静态信号表示信号可以看作稳态信号,例如在采样前的很长一段时间内该信号都是稳定信号,接收方不会采样到该信号的变化,或者接收方不关注该信号所产生的亚稳态。例如,准静态信号可以是使能信号、处于源头的复位信号等。此时,第二时序器件不需要对该信号进行同步处理,则该电信号传输关系中不存在其他时序器件,第一时序器件至第二时序器件构成的数据链路为一条时序路径。
68.例如,在另一些示例中,第一时序器件发送的信号不是准静态信号,此时,第二时序器件需要对该信号进行同步处理。例如,同步处理可以由同步处理模块实现,例如,同步处理模块包括多个级联的时序器件。那么,该电信号传输关系中还存在用于同步处理的多个时序器件,第一时序器件至第二时序器件构成的数据链路包括多条时序路径,例如,第一时序器件与同步处理模块中的第一级时序器件构成一条时序路径,这里的第一级时序器件为多个级联的时序器件中第一个接收到第一时序器件发送的信号的时序器件。
69.在步骤s20,根据多个异步时序器件对,对集成电路执行模型构建处理,以得到待仿真电路。
70.图3为本公开至少一实施例提供的模型构建处理的示意性流程图。
71.例如,如图3所示,本公开至少一实施例提供的模型构建处理包括步骤s201至s203。
72.例如,针对每个异步时序器件对分别执行步骤s201-s203。
73.在步骤s201,根据第一时序器件和第二时序器件之间的电路特性,确定响应时间。
74.例如,第一时序器件和第二时序器件之间的电路特性可以包括第二时序器件的时序逻辑要求。例如,根据第二时序器件的时序逻辑要求可以确定需要为第一时序器件至第二时序器件之间的数据链路所施加的约束值,具体过程参见后文描述。
75.在步骤s202,根据响应时间,构建响应模型。
76.例如,响应模型包括输入端和输出端,响应模型配置为从第一时刻开始的响应时间内输出亚稳态信号,从第一时刻开始的响应时间之后输出稳态响应信号,第一时刻为输
入端接收到的输入信号发生跳变的时刻。
77.例如,得到每个异步时序器件对对应的响应模型后,执行步骤s203,以将响应模型插入集成电路。
78.在步骤s203,将响应模型添加入集成电路中基于第一时序器件和第二时序器件确定的数据链路。
79.例如,步骤s203可以包括:将响应模型插入第二时序器件以及与第二时序器件直接相连的器件之间,响应模型的输出端与第二时序器件的数据输入端直接相连。
80.例如,集成电路原设计中与第二时序器件直接相连的器件在后文中称为源器件。例如,源器件可以是组合逻辑器件也可以是第一时序器件。
81.例如,源器件输出的信号称为源信号,源信号发生跳变的时刻为第一时刻。
82.例如,步骤s201可以包括:根据电路特性,确定延时时间;根据延时时间,确定响应时间。
83.例如,根据电路特性,确定延时时间,可以包括:根据电路特性,确定约束时间;根据约束时间,确定延时时间。
84.例如,根据第一时序器件和第二时序器件之间的电路特性还可以确定第二时序器件是否需要对第一时序器件发送的信号进行同步处理,例如,根据第一时序器件发送的信号是否为准静态信号来确定是否需要对第一时序器件发送的信号进行同步处理。根据第二时序器件是否需要对第一时序器件发送的信号进行同步处理,步骤s201-s203的处理方式略有不同。下面分别针对两种情形具体说明步骤s201-s203的处理过程。
85.例如,当第一时序器件发送的信号为准静态信号时,第二时序器件不需要对该信号进行同步处理。例如,该信号可以是单比特信号或包括多比特位的总线信号,例如使能信号、复位信号、地址总线信号等。此时,约束时间表示第二时序器件至少在第一时刻之后的第二时刻采集到稳态响应信号,第一时刻与第二时刻相差约束时间。
86.例如,约束时间是指设计者希望给第一时序器件至第二时序器件之间的数据链路所施加的约束值。例如,在数据链路为时序路径时,这个约束值可以在后端设计过程中作为对该条时序路径的时序约束。
87.由于约束时间根据电路特性确定,这样更贴近异步界面的实际情况,精准地为异步界面注入亚稳态,减少了一些不必要的仿真场景,从而帮助仿真模型减少需要模拟的场景,提高准确率的同时又能降低验证的工作量。
88.例如,约束时间可以从多周期约束或最大延时约束两个角度来设置。
89.例如,约束时间在后端体现为多周期约束时,约束时间表示设计者预期源信号发生变化到响应模型的输出信号(也即第二时序器件接收的数据信号)做出响应,两个动作之间的最大延时为x个接收方的时钟周期。
90.例如,第二时序器件所在的时钟域基于目标时钟信号确定,例如,这里的目标时钟信号可以是如前所述的第二时钟信号。根据所述电路特性,确定约束时间,可以包括:根据电路特性,确定约束时间为x个时钟周期,其中,时钟周期为目标时钟信号的时钟周期,x为正整数。
91.例如,在约束时间为x个时钟周期时,后端设计过程所施加的时序约束称为多周期约束,也即允许数据在x个周期之后稳定,以使得在布线过程中释放布线资源,同时也降低
布线运行时间。通常对于设计者来说,一般从输入信号需要在几个时钟周期之后使用来考虑问题,例如,第二时序器件需要在5个时钟周期之后采集到稳态信号,那么约束时间可以设置为4个时钟周期,以能够在第5个时钟周期时可以采集到稳态信号。这种设置方式的可移植性强,约束时间与电路的工艺、时钟信号频率无关。
92.例如,根据约束时间,可以确定设计所想要施加的约束值为x个时钟周期。
93.例如,根据约束时间,确定延时时间,可以包括:确定判定沿,其中,判定沿为目标时钟信号中,在第一时刻之后出现的第一个跳变沿;以判定沿作为第一个判定沿,计数y个判定沿,其中,y为正数且小于等于x;将第一时刻与第y个判定沿之间的时长作为延时时间。
94.图4为本公开至少一实施例提供的延时时间示意图。
95.如图4所示,第一时钟信号表示驱动第一时序器件的时钟信号,第二时钟信号表示驱动第二时序器件的时钟信号,由图4可以看出,两个时钟信号的频率不同,也即两个时钟信号为异步时钟信号。
96.如图4所示,源信号为源器件输出的信号,源信号发生跳变的时刻为第一时刻。
97.例如,根据电路特性确定约束时间为3个目标时钟信号(也即第二时钟信号)的时钟周期。
98.如图4所示,由于第二时钟信号中在第一时刻之后出现的第一个跳变沿为下降沿,则判定沿为下降沿。以该下降沿作为第一个判定沿,计数3个下降沿,也即图4中的标号为





的下降沿。
99.如图4所示,从第一时刻至标号为

的下降沿之间的时间为延时时间。
100.例如,在图4所示的情形中,y=x=3。
101.例如,在一些实施例中,y可以小于x,例如,y=2等。
102.例如,在一些实施例中,y可以是固定值。
103.例如,在一些实施例中,y可以是0至x之间的随机值。此时,在每次检测到源信号变化时,y都可以选择不同的随机值,从而得到随机变化的延时时间,以覆盖更多的仿真情况,获得丰富的信号关系,增加场景的差异性,更容易找到边界条件,所得到的仿真结果也更加准确、可靠。
104.在后端设计过程中,时序约束判断是从源信号发生跳变开始,记录x个时钟周期作为延时。但是在前端仿真过程中,若以第二时钟器件的触发沿作为起始,计数x个时钟周期,以图4为例,若触发沿是上升沿,则这种方式所得到的延时时间大于后端设计过程中所记录的延时,前端仿真所用的约束时间与后端施加的时序约束不对应,从而导致一些仿真场景属于无用仿真,浪费了一些算力和仿真资源。
105.例如,约束时间体现为最大延时约束时,约束时间表示设计者预期源信号发生变化到响应模型的输出信号(也即第二时序器件接收的数据信号)做出响应,两个动作之间的最大延时为p皮秒。
106.需要说明的是,本公开中最大延时的单位以皮秒为例进行描述,在实践中可以根据需要选择不同的时间单位,例如纳秒、毫秒等,本公开对此不作限制。
107.例如,对于电路中的一些电路模块的使能信号、位于源头的复位信号等类似于准静态信号的信号,这些信号的负载较大,但信号在需要使用的时候已经完全稳定,对于这些信号可以根据需要设置最大延时值。
108.例如,根据所述电路特性,确定约束时间,可以包括:根据电路特性,确定第一时序器件和第二时序器件之间的最大延时,将最大延时作为约束时间。
109.例如,根据约束时间,确定延时时间,可以包括:确定延时时间等于约束时间。
110.例如,通过如上所述的两种方式得到延时时间之后,根据延时时间,确定响应时间,可以包括:确定响应时间小于或等于延时时间。
111.例如,约束时间指定了该数据链路的最差情况,也就是输入信号稳定所需的最长延时,实际后端物理实现时的延时可能会比该约束时间少。电路仿真时通常需要验证最差情况下,电路还能否正常工作,若电路在最差情况下仍然能够正常工作就表示电路足够健壮,所以响应模型的响应时间可以选取为延时时间。
112.当然,实际中也可以根据需要选择响应时间小于或等于延时时间,或者响应时间为0至延时时间之间的随机值等,以覆盖更多的验证场景,获得丰富的信号关系,以较小的资源消耗和算力消耗得到更准确、可靠的仿真结果。
113.例如,在一些实施例中,模型构建处理还可以包括:根据约束时间,对仿真模型进行命名,以使得仿真模型的命名与约束时间相对应。
114.例如,响应模型可以被制作为通用的模块,在实例化过程中根据不同的命名即可得到设计者希望的约束时间,从而参考步骤s201的过程得到响应时间。例如,响应时间表示从响应模型输入端输入的信号发生变化到响应模型的输出信号做出响应所需的时间,响应模型在响应时间内,输出信号为亚稳态信号,由此,构建响应模型。
115.例如,响应模型命名为cx,表示预期响应模型的约束时间是x个目标时钟信号的时钟周期,也即设计者希望后端设计过程中产生x个周期的时序约束。
116.例如,响应模型命名为dp,表示预期响应模型的约束时间是p皮秒,也即设计者希望后端设计过程中产生p皮秒的时序约束。
117.这种方式可以在后端设计过程中,将响应模型综合为具有该名称的物理器件,例如,物理器件可以是缓存器。后端设计过程可以通过物理器件的名称得到前端设计者希望的时序约束,从而自动生成sdc(synopsys design constraints,综合设计约束)文件,以作为布线优化、为异步界面添加时序约束等的参考。由此,后端通过获取模块名关键字自动产生相关约束,不需要前端额外提供,既减少前端工作量,又很好的传达了设计意图,前端和后端设计过程中对于异步界面的理解、约束是一致的,得到更符合实际情况的电路,既减少了仿真工作量,避免无效仿真,又尽可能在有限算力和时间的情况下,高效地验证电路。
118.例如,响应模型在第一时刻之后的响应时间内输出亚稳态信号,之后输出稳态信号,这个稳态信号为响应模型对源信号做出的响应。也就是说,响应时间指示了响应模型输出亚稳态的时间。
119.由于不确定状态在逻辑仿真时,有可能因仿真工具的关系四处传播,导致后续的很多信号都变为不确定状态,进而导致测试用例失败。电路验证的各个阶段或者不同层次,会因不确定状态的传播,导致大量的测试用例不过,或者产生意想不到的问题,从而需要大量时间来定位不确定状态的源头。为了避免这种太过悲观的场景,响应模型设置有信号配置参数,根据信号配置参数可以自由调节响应模型输出的亚稳态信号的类型。
120.例如,亚稳态信号包括随机信号和不确定态信号(也称x态信号)。响应模型执行从第一时刻开始的响应时间内输出亚稳态信号时,包括执行以下操作:获取信号配置参数;根
据信号配置参数,在从第一时刻开始的响应时间内输出所述随机信号或不确定态信号中的一种。
121.一般来说,不确定态信号对应仿真的最差情况,可以用于确定最差仿真情况下的电路是否能够正常工作。随机信号包括随机的0或1,也即每次对同一信号采样时所得到的结果是不固定的。由此,设计者可以根据所需要的仿真场景根据信号配置参数自由选择亚稳态信号的形式,本公开提供的验证方法能够支持多种仿真场景,更符合实际的电路状态。
122.例如,约束时间还可以通过配置文件记录,并在后端设计过程中提供给后端。
123.例如,响应模型可以采用行为级描述语言实现,例如硬件编程语言。
124.图5a为本公开一实施例提供的响应模型的示意图。
125.例如,根据响应模型的命名得到约束时间,进而根据步骤s201得到响应时间。例如,根据响应模型的信号配置参数确定响应模型输出的亚稳态信号的类型,由此,构建响应模型。
126.如图5a所示,根据步骤s201和步骤s202构建的响应模型插入源器件和第二时序器件之间。响应模型的输入端与源器件的数据信号输出端相连,响应模型的输出端与第二时序器件的数据信号输入端相连。
127.例如,图5a所示的源器件为组合逻辑器件。
128.图5b为本公开一实施例提供的响应模型的输出信号的示意图。
129.例如,若响应模型实例化的名称为“c3”,表示约束时间为3个第二时钟信号的时钟周期。此时,图5b中的第一时钟信号、第二时钟信号、源信号的描述可以参考图4所示的相关内容,这里不再赘述。
130.例如,如图5b所示,输出信号表示响应模型的输出信号变化,输出信号中的阴影部分表示输出信号处于亚稳态状态,例如可以是不确定态也可以是随机信号。
131.例如,如图5b所示,响应时间等于延时时间。响应模型的输出信号在第一时刻之前是稳定的低电平状态,在响应模型的输入端接收的源信号出现跳变后(也即第一时刻),输出信号变为亚稳态信号并持续响应时间;之后,输出信号产生上升沿,也即响应模型输出源信号对应的响应;之后稳定为高电平状态。
132.图5c为本公开另一实施例提供的响应模型的输出信号的示意图。
133.例如,若响应模型实例化的名称为“dp”,表示约束时间为p皮秒。例如,约束时间、延时时间以及响应时间彼此相等,从而如图5c所示,响应时间为p皮秒。
134.如图5c所示,响应模型的输出信号在第一时刻之前是稳定的低电平状态,在响应模型的输入端接收的源信号出现跳变后(也即第一时刻),输出信号变为亚稳态信号并持续响应时间;之后,响应模型的输出信号产生上升沿,也即响应模型输出源信号对应的响应;之后稳定为高电平状态。
135.例如,本公开至少一实施例提供的响应模型根据电路实际情况设置更为精确的响应时间,引入符合电路实际情况的不同时长的亚稳态,从而在前端逻辑仿真阶段更准确地体现异步界面的不确定性。
136.例如,当第一时序器件发送的信号不是准静态信号时,第二时序器件需要对该信号进行同步处理,以保证多个接收方所接收的信号是统一的。
137.例如,在一些实施例中,响应模型还包括同步处理模块,同步处理模块包括多个时
序器件,同步处理模块配置为对第一时序器件发送的信号执行同步处理。例如,同步处理模块可以是一个多级级联触发器。
138.例如,响应模型可以根据模式参数配置是否包含同步处理模块,例如,模式参数为第一值时,所得到的响应模型包括同步处理模块,模式参数为第二值时,所得到的响应模型不包括同步处理模块。由此,可以便捷、灵活的得到不同功能的响应模块。
139.例如,根据电路特性,确定延时时间,可以包括:根据电路特性,确定约束时间,其中,约束时间表示第三时序器件至少在第一时刻之后的第二时刻采集到稳态响应信号,第一时刻与第二时刻相差约束时间,第三时序器件表示多个时序器件中与同步处理模块的数据信号输入端直接相连的时序器件;根据约束时间,确定延时时间。
140.例如,这里的第三时序器件即为前述的同步处理模块中的“第一级时序器件”。这个约束值可以在后端设计过程中作为对第一时序器件和前述的同步处理单元中的第一级时序器件所构成时序路径的时序约束。
141.当第二时序器件需要对第一时序器件发送的信号进行同步处理时,约束时间是指设计者希望给第一时序器件至第三时序器件之间的时序路径所施加的约束值。例如,这个约束值可以在后端设计过程中作为对该条时序路径的时序约束。
142.例如,此时约束时间也可以从多周期约束或最大延时约束两个角度来设置。具体的约束时间设置方式与上述不需要同步处理时的过程相同,这里不再赘述。
143.在得到约束时间后,根据约束时间得到延时时间。具体过程以及相应的技术效果与上述不需要同步处理时的过程相同,这里不再赘述。
144.在需要进行同步处理时,从源器件到第二时序器件之间的路径延时还包括同步处理过程引入的延时,例如,引入的延时至少包括同步处理模块对应的处理延时。
145.例如,根据延时时间,确定响应时间,可以包括:确定同步处理模块对应的处理延时;根据处理延时和延时时间,确定响应时间。
146.例如,根据处理延时和延时时间,确定响应时间,可以包括:确定响应时间小于或等于处理延时与延时时间之和。
147.例如,约束时间或延时时间所指定的延时是源信号从源器件的输出端传输至第三时序器件的延时。
148.例如,由于驱动第一时序器件的时钟信号与驱动第三时序器件的时钟信号的相位关系不确定,第一时序器件的输出对第三时序器件来说有可能是亚稳态,此时,同步处理过程引入的延时除同步处理模块自身的处理延时之外还包括亚稳态延时。
149.例如,根据处理延时、延时时间,确定响应时间,可以包括:确定响应时间小于或等于处理延时、亚稳态延时以及延时时间之和。
150.例如,亚稳态延时通常是一个目标时钟信号的时钟周期。
151.图6a为本公开一实施例提供的响应模型的示意图。
152.例如,根据响应模型的命名得到约束时间,进而根据步骤s201得到响应时间。例如,根据响应模型的信号配置参数确定响应模型输出的亚稳态信号的类型。
153.如图6a所示,在第二时序器件需要进行同步处理时,根据步骤s201和步骤s202构建的响应模型插入源器件和第二时序器件之间。响应模型的输入端与源器件的数据信号输出端q相连,响应模型的输出端与第二时序器件的数据信号输入端d相连。
154.例如,响应模型包括同步处理模块,同步处理模块包括3个级联触发器,3个级联触发器包括如图6a所示的触发器reg1、触发器reg2和触发器reg3。触发器reg1为第三时序器件,触发器reg1的数据输入端d1接收响应模型的输入端接收的源信号;触发器reg1的数据输出端q1与触发器reg2的数据输入端d2直接相连,触发器reg2的数据输出端q2与触发器reg3的数据输入端d3直接相连,触发器reg3的数据输出端q3与响应模型的输出端相连。
155.例如,由第一时钟信号驱动的源器件输出的源信号被触发器reg1接收,因第一时钟信号与第二时钟信号的相位关系不确定,所以触发器reg1的输出有可能是亚稳态,但经过后续两级级联的触发器reg2和触发器reg3,数据输出端q3输出的信号大概率是稳定的。
156.由于时序约束中触发器的数据输入端为时序路径的终点,所以约束时间指定的延时,也即延时时间,只代表源器件的输出端到触发器reg1的数据输入端d1的延时。
157.例如,图6a所示的源器件为第一时序器件。
158.从仿真角度考虑,整个响应模型的延时是由延时时间、同步处理模块的延时以及可能出现的亚稳态延时组成。
159.图6b为本公开一实施例提供的响应模型的输出信号的示意图。该响应模型为图6a中的响应模型。
160.如图6b所示,例如,假设响应模型实例化的名称为“c3”,表示约束时间为3个第二时钟信号的时钟周期,也即源信号从源器件的数据输出端到触发器reg1的数据输入端d1的延时为3个第二时钟信号的时钟周期。
161.同步处理模块所产生的处理延时为3个第二时钟信号的时钟周期。若第三时序器件接收的第一时序器件输出的信号为亚稳态信号,产生的亚稳态延时为1个第二时钟信号的时钟周期。
162.考虑到亚稳态的随机性,所以亚稳态产生的一个时钟周期的延时是随机出现的,因此,从源器件的数据输出端到第二时序器件的数据输入端之间的延时为6个(延时时间与处理延时之和)或7个(延时时间、处理延时与亚稳态延时之和)第二时钟信号的时钟周期。
163.参考图6a和6b,第一时钟信号表示驱动源器件的时钟信号,第二时钟信号表示驱动第二时序器件的时钟信号,源信号为源器件输出的信号,源信号发生跳变的时刻为第一时刻。
164.关于第二时钟信号中标号为





的下降沿以及延时时间的确定方式可以参考图4的相关内容,这里不再赘述。
165.之后,由于同步处理模块中的触发器均是上升沿驱动,因此从下降沿

开始,计数3个上升沿(图6b中标号为





的上升沿)得到处理延时。
166.若触发器reg1输出的信号处于亚稳态,则还需要增加一个时钟周期的亚稳态延时,如图6b中标号为

的上升沿。
167.因此,如图6b所示,响应时间等于前述的延时时间、处理延时以及亚稳态延时之和。需要说明的是,亚稳态延时实际应当发生在上升沿

之前,也即若上升沿

到来时,触发器reg1采集的信号为亚稳态则产生亚稳态延时,图6b为方便描述,将其放在处理延时之后显示。
168.例如,如图6b所示,响应模型的输出信号在第一时刻之前是稳定的低电平状态,在响应模型的输入端接收的源信号出现跳变后(也即第一时刻),响应模型的输出信号变为亚
稳态信号并持续响应时间;之后,响应模型的输出信号产生上升沿,也即响应模型输出源信号对应的响应;之后稳定为高电平状态。
169.综合如前所述的内容,例如,构建响应模块时,创建通用模块并为该通用模块设置多个外部接口用于配置。
170.例如,对于需要执行同步处理的情形,通过配置模式参数得到包含同步处理模块的响应模型;通过配置信号配置参数选择响应模型的亚稳态信号类型;通过设置响应模型的命名得到响应模型的响应时间;将构建的响应模型的输出端与第二时序器件的输入端相连,将响应模型的输入端与源器件的数据输出端相连,完成一条数据链路的处理。
171.对于不需要执行同步处理的情形,通过配置模式参数得到不含同步处理模块的响应模型;通过配置信号配置参数选择响应模型的亚稳态信号类型;通过设置响应模型的命名得到响应模型的响应时间;将构建的响应模型的输出端与第二时序器件的输入端相连,将响应模型的输入端与源器件的数据输出端相连,完成一条数据链路的处理。
172.由此,可以根据电路的实际情况构建响应模型,所得到的响应模型更加贴近电路的真实状态。并且,提供多种外部接口用于灵活配置响应模型,可移植性强,使用更加灵活,能够便捷地得到更加丰富的仿真场景。
173.在步骤s30,对待仿真电路进行前端仿真验证。
174.对步骤s20得到待仿真电路进行逻辑仿真,以确认电路能否在各种仿真场景下正常工作,并根据仿真结果修改、迭代rtl文件(register transfer level,寄存器传输级描述文件)。
175.因此,本公开至少一实施例提供的集成电路的验证方法能够以较小的改变实现了对异步界面的前端仿真验证,仿真场景更贴近电路的实际情况,所得到的仿真结果既不悲观也不乐观,且能够准确体现异步界面的具体延时,实现对异步界面相对准确快速的前端仿真验证,前端仿真阶段就能够体现异步界面的重要特征,以使得项目早起就可以验证异步界面,极大的缩短项目研发时间和迭代次数,降低了验证难度。
176.将上述前端仿真验证得到的前端网表作为待规划电路,继续执行后端设计流程。
177.例如,本公开至少一实施例提供的集成电路的验证方法还包括:获得通过仿真验证的待规划电路,其中,待规划电路包括多个异步时序器件对;对待规划电路执行规划处理;其中,规划处理包括:将多个异步时序器件对中的至少一个异步时序器件对分别对应的至少一个响应模型替换为相应的物理器件,其中,物理器件的命名与对应的响应模型的命名相同;根据物理器件的命名,获取多个约束时间。
178.例如,在一些实施例中,一些异步时序器件对之间的数据链路无法插入响应模型替换的物理器件,这些数据链路不执行后续的针对异步界面的优化处理。
179.例如,为通过响应模型灵活注入亚稳态,响应模型可以采用行为级语言描述。由于行为级语言描述是不可综合的语言,所以在综合阶段需要将这些响应模型替换为可综合的电路描述。
180.例如,在综合阶段,可以将每个异步时序器件对构成的数据链路上插入的响应模型替换为相应的物理器件。例如,物理器件的名称与响应模型的名称相同。
181.例如,若响应模型不需要执行同步处理,则响应模型相应的物理器件为缓存器,通过缓存器的命名向后端设计者提供前端设计者希望的时序约束。例如,若仿真模型的命名
为“cx”,则表示仿真模型所对应的异步时序器件对所对应的约束时间为x个目标时钟信号的时钟周期。
182.例如,若响应模型需要执行同步处理,则响应模型相应的物理器件为缓存器和同步处理电路单元组合的形式,物理实现后的响应模型不仅能够通过缓存器的命名向后端设计者提供前端设计者希望的时序约束,还能够完成同步处理功能。例如,若仿真模型的命名为“dy”,则表示仿真模型所对应的异步时序器件对所对应的约束时间为y皮秒。
183.这里,约束时间与前述前端仿真过程中的约束时间定义相同,这里不再赘述。
184.例如,在得到前端预期的约束时间后,可以根据这个约束时间执行布局布线优化、时序约束、时序检查等。
185.例如,根据物理器件的命名,可以生成时序约束文件,也即sdc文件,用于作为器件布局的位置参考等。
186.例如,当约束时间为x个目标时钟信号的时钟周期时,后端设计中对异步时序器件对设置的时序约束为多周期约束。例如,多周期约束可以通过set_multicycle_path命令表示。
187.例如,当约束时间为y皮秒时,后端设计中对异步时序器件对设置的时序约束为最大延时约束,例如,最大延时约束可以通过set_max_delay命令表示。
188.例如,这里的多周期约束或最大延时约束是针对第一时序器件至第二时序器件组成的时序路径,或者第一时序器件和同步处理模块中的第三时序器件组成的时序路径。
189.例如,本公开至少一实施例提供的集成电路的验证方法还包括:根据多个约束时间,对待规划电路进行布局布线优化。
190.例如,若第一时序器件和第二时序器件对应的约束时间较短,则需要将两个时序器件摆放距离近一些,以满足前端所希望的时序约束。因此,约束时间可以作为布线延时参考提供给后端,以使得前端和后端设计过程中对于异步界面的理解、约束是一致的,得到符合前端设计需求的电路物理实现。
191.例如,本公开至少一实施例提供的规划处理还可以包括:设置虚拟时钟域;根据多个约束时间,对待规划电路中的多个异步时序器件对设置时序约束。
192.例如,设置虚拟时钟域,可以包括:根据多个异步时序器件对以及多个时钟域,确定至少一个虚拟时钟;针对每个虚拟时钟,设置基于多个异步时序器件对确定的至少一条时序路径属于同一个虚拟时钟域,其中,同一个虚拟时钟域基于每个虚拟时钟确定。
193.例如,若集成电路的异步界面上包括较少数量的时钟域,例如2个时钟域,则虚拟时钟域通常是接收方的时钟域,例如是第二时序器件所在的时钟域。
194.例如,若集成电路的异步界面上包括较多数量的时钟域,由于布局布线调整是整体性的调整,如果每两个时钟域执行一遍布线优化,则可能每次优化迭代互相影响较大,迭代次数较多且难以找到最优的布线结果。
195.例如,可以从多个时钟域中选择时钟频率最高、或者异步界面上驱动的接收方时序器件最多的时钟信号作为虚拟时钟域。
196.针对每个虚拟时钟域,假设异步界面上的器件均属于该虚拟时钟域,则可以根据多个异步时序器件对设置的时序约束,对多个异步时序器件对进行时序检查。这种时序检查可以参考同步电路的时序检查,这里不再赘述。
197.例如,本公开至少一实施例提供的验证方法引入虚拟时钟以实现对异步界面的时序约束,并在后端设计过程中根据该约束,限定输入信号的延时在指定范围,除提供布局布线的参考外,还能够通过假定整条时序路径属于同一个虚拟时钟域,执行类似于同步路径的时序检查。
198.例如,在一个具体示例中,后端设计过程中首先对待规划电路进行初始的布局布线处理,得到初始版图规划结果,这个过程根据自动的布局布线算法执行相应的约束。
199.之后,对初始版图规划结果进行时序检查,以确定异步界面上不满足时序约束条件的多条时序路径。
200.之后,根据多条时序路径的具体情况,将部分或全部响应模型物理实现为相应的物理器件,根据物理器件的命名生成sdc文件。
201.之后,根据sdc文件执行布局布线优化迭代,以及可以设置虚拟时钟域,对这些需要调整时序的多条时序路径添加相应的时序约束,执行时序检查等,最终得到满足条件的版图规划结果。
202.本公开至少一实施例提供的集成电路的验证方法,通过引入响应模型得到一个能够贯穿前端设计流程和后端设计流程的异步界面验证方法,该模块通过模块命名传达设计者预期的约束时间,根据前端所需的约束时间在后端设计过程中对异步界面做一定的时序约束、执行时序检查以及根据约束时间进行布局布线,所得到的电路能够实现更好的体现前端设计意图。
203.与上述的集成电路的验证方法相对应,本公开至少一实施例还提供一种集成电路的验证装置,图7a为本公开至少一实施例提供的一种集成电路的验证装置的示意性框图。
204.例如,如图7a所示,集成电路的验证装置700至少包括:获取单元701、处理单元702和仿真验证单元703。
205.获取单元701,配置为获取多个异步时序器件对,其中,每个异步时序器件对包括第一时序器件和第二时序器件,第一时序器件和第二时序器件位于多个时钟域中的两个不同的时钟域,第一时序器件的数据输出端与第二时序器件的数据输入端之间存在电信号传输关系。
206.处理单元702,配置为根据多个异步时序器件对,对集成电路执行模型构建处理,以得到待仿真电路。
207.仿真验证单元703,配置为对待仿真电路进行前端仿真验证。
208.图7b为本公开至少一实施例提供的一种处理单元的示意性框图。
209.例如,如图7b所示,处理单元702包括:确定子单元7021、构建子单元7022、添加子单元7023和命名子单元7024。
210.确定子单元7021,配置为根据第一时序器件和第二时序器件之间的电路特性,确定响应时间。
211.构建子单元7022,配置为根据响应时间,构建响应模型,其中,响应模型包括输入端和输出端,响应模型配置为从第一时刻开始的响应时间内输出亚稳态信号,从第一时刻开始的响应时间之后输出稳态响应信号,第一时刻为输入端接收到的输入信号发生跳变的时刻。
212.添加子单元7023,配置为将响应模型添加入集成电路中基于第一时序器件和第二
时序器件确定的数据链路。
213.例如,确定子单元7021执行根据第一时序器件和第二时序器件之间的电路特性,确定响应时间时,包括执行以下操作:根据电路特性,确定延时时间;根据延时时间,确定响应时间。
214.确定子单元7021执行根据电路特性,确定延时时间时,包括执行以下操作:根据电路特性,确定约束时间,其中,约束时间表示第二时序器件至少在第一时刻之后的第二时刻采集到稳态响应信号,第一时刻与第二时刻相差约束时间;根据约束时间,确定延时时间。
215.例如,第二时序器件所在的时钟域基于目标时钟信号确定,确定子单元7021执行根据电路特性,确定约束时间,包括执行以下操作:根据电路特性,确定约束时间为x个时钟周期,其中,时钟周期为目标时钟信号的时钟周期,x为正整数。
216.例如,确定子单元7021执行根据约束时间,确定延时时间,包括执行以下操作:确定判定沿,其中,判定沿为目标时钟信号中,在第一时刻之后出现的第一个跳变沿;以判定沿作为第一个判定沿,计数y个判定沿,其中,y为正数且小于等于x;将第一时刻与第y个判定沿之间的时长作为延时时间。
217.例如,确定子单元7021执行根据电路特性,确定约束时间,包括执行以下操作:根据电路特性,确定第一时序器件和第二时序器件之间的最大延时,将最大延时作为约束时间。
218.例如,确定子单元7021执行根据约束时间,确定延时时间,包括执行以下操作:确定延时时间等于约束时间。
219.例如,确定子单元7021执行根据延时时间,确定响应时间,包括执行以下操作:确定响应时间小于或等于延时时间。
220.例如,第二时序器件对第一时序器件发送的信号执行同步处理,响应模型还包括同步处理模块,同步处理模块包括多个时序器件,同步处理模块配置为对第一时序器件发送的信号执行同步处理,确定子单元7021执行根据电路特性,确定延时时间,包括执行以下操作:根据电路特性,确定约束时间,其中,约束时间表示第三时序器件至少在第一时刻之后的第二时刻采集到稳态响应信号,第一时刻与第二时刻相差约束时间,第三时序器件表示多个时序器件中与同步处理模块的数据信号输入端直接相连的时序器件;根据约束时间,确定延时时间。
221.例如,确定子单元7021执行根据延时时间,确定响应时间,包括执行以下操作:确定同步处理模块对应的处理延时;根据处理延时和延时时间,确定响应时间。
222.例如,确定子单元7021执行根据处理延时和延时时间,确定响应时间,包括执行以下操作:确定响应时间小于或等于处理延时与延时时间之和。
223.例如,响应于第三时序器件接收的信号为亚稳态信号,确定子单元7021执行根据处理延时、延时时间,确定响应时间时,包括执行以下操作:确定响应时间小于或等于处理延时、亚稳态延时以及延时时间之和。
224.例如,添加子单元7023执行将响应模型添加入集成电路中基于第一时序器件和第二时序器件确定的数据链路时,包括执行以下操作:将响应模型插入第二时序器件以及与第二时序器件直接相连的器件之间,响应模型的输出端与第二时序器件的数据输入端直接相连。
225.例如,处理单元702还包括命名子单元7024。
226.命名子单元7024配置为根据约束时间,对仿真模型进行命名,以使得仿真模型的命名与约束时间相对应。
227.例如,亚稳态信号包括随机信号和不确定态信号,响应模型执行从第一时刻开始的响应时间内输出亚稳态信号时,包括执行以下操作:获取信号配置参数;根据信号配置参数,在从第一时刻开始的响应时间内输出随机信号或不确定态信号中的一种。
228.例如,如图7a所示,集成电路的验证装置700还包括规划处理单元704。
229.规划处理单元704配置为获得通过仿真验证的待规划电路,其中,待规划电路包括多个异步时序器件对;对待规划电路执行规划处理。
230.图7c为本公开至少一实施例提供的一种规划处理单元的示意性框图。
231.例如,如图7c所示,规划处理单元704包括约束时间获取单元7041、优化单元7042、时序约束设置单元7043和时序检查单元7044。
232.例如,约束时间获取单元7041配置为将多个异步时序器件对中的至少一个异步时序器件对分别对应的至少一个响应模型替换为相应的物理器件,其中,物理器件的命名与对应的响应模型的命名相同;根据物理器件的命名,获取多个约束时间。
233.例如,优化单元7042配置为根据多个约束时间,对待规划电路进行布局布线优化。
234.例如,时序约束设置单元7043配置为设置虚拟时钟域;根据多个约束时间,对待规划电路中的多个异步时序器件对设置时序约束。
235.例如,时序约束设置单元7043执行设置虚拟时钟域时,包括执行以下操作:根据多个异步时序器件对以及多个时钟域,确定至少一个虚拟时钟;针对每个虚拟时钟,设置基于多个异步时序器件对确定的至少一条时序路径属于同一个虚拟时钟域,其中,同一个虚拟时钟域基于每个虚拟时钟确定。
236.例如,时序检查单元7044配置为根据多个异步时序器件对设置的时序约束,对多个异步时序器件对进行时序检查。
237.例如,获取单元701、处理单元702和仿真验证单元703包括存储在存储器中的代码和程序;处理器可以执行该代码和程序以实现如上所述的获取单元701、处理单元702和仿真验证单元703的一些功能或全部功能。例如,获取单元701、处理单元702和仿真验证单元703可以是专用硬件器件,用来实现如上所述的获取单元701、处理单元702和仿真验证单元703的一些或全部功能。例如,获取单元701、处理单元702和仿真验证单元703可以是一个电路板或多个电路板的组合,用于实现如上所述的功能。在本技术实施例中,该一个电路板或多个电路板的组合可以包括:(1)一个或多个处理器;(2)与处理器相连接的一个或多个非暂时的存储器;以及(3)处理器可执行的存储在存储器中的固件。
238.需要说明的是,获取单元701用于实现图2所示的步骤s10,处理单元702用于实现图2所示的步骤s20,仿真验证单元703用于实现图2所示的步骤s30。从而关于获取单元701的具体说明可以参考上述集成电路的验证方法的实施例中图2所示的步骤s10的相关描述,关于处理单元702的具体说明可以参考上述集成电路的验证方法的实施例中图2所示的步骤s20的相关描述,关于仿真验证单元703的具体说明可以参考上述集成电路的验证方法的实施例中图2所示的步骤s30的相关描述。此外,集成电路的验证装置可以实现与前述集成电路的验证方法相似的技术效果,在此不再赘述。
239.本公开至少一实施例还提供一种电子设备,图8为本公开至少一实施例提供的一种电子设备的示意性框图。
240.例如,如图8所示,该电子设备包括处理器1001、通信接口1002、存储器1003和通信总线1004。处理器1001、通信接口1002、存储器1003通过通信总线1004实现相互通信,处理器1001、通信接口1002、存储器1003等组件之间也可以通过网络连接进行通信。本公开对网络的类型和功能在此不作限制。
241.例如,存储器1003用于非瞬时性地存储计算机可执行指令。处理器1001用于运行计算机可执行指令时,计算机可执行指令被处理器1001运行时实现根据上述任一实施例所述的集成电路的验证方法。关于该集成电路的验证方法的各个步骤的具体实现以及相关解释内容可以参见上述集成电路的验证方法的实施例,在此不作赘述。
242.例如,处理器1001执行存储器1003上所存储的程序而实现集成电路的验证方法的实现方式,与前述集成电路的验证方法的实施例部分所提及的实现方式相同,这里也不再赘述。
243.例如,通信总线1004可以是外设部件互连标准(pci)总线或扩展工业标准结构(eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
244.例如,通信接口1002用于实现电子设备与其他设备之间的通信。
245.例如,处理器1001和存储器1003可以设置在服务器端(或云端)。
246.例如,处理器1001可以控制电子设备中的其它组件以执行期望的功能。处理器1001可以是中央处理器(cpu)、网络处理器(np)等,还可以是数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。中央处理元(cpu)可以为x86或arm架构等。
247.例如,存储器1003可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(rom)、硬盘、可擦除可编程只读存储器(eprom)、便携式紧致盘只读存储器(cd-rom)、usb存储器、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机可执行指令,处理器1001可以运行所述计算机可执行指令,以实现电子设备的各种功能。在存储介质中还可以存储各种应用程序和各种数据等。
248.例如,关于电子设备执行集成电路的验证的过程的详细说明可以参考集成电路的验证方法的实施例中的相关描述,重复之处不再赘述。
249.图9为本公开至少一实施例提供的一种非瞬时性计算机可读存储介质的示意图。例如,如图9所示,在存储介质1100上可以非暂时性地存储一个或多个计算机可执行指令1101。例如,当计算机可执行指令1101由处理器执行时可以执行根据上文所述的集成电路的验证方法中的一个或多个步骤。
250.例如,该存储介质1100可以应用于上述电子设备和/或集成电路的验证装置1400中。例如,存储介质1100可以包括电子设备中的存储器1003。
251.例如,关于存储介质1100的说明可以参考电子设备的实施例中对于存储器的描述,重复之处不再赘述。
252.对于本公开,还有以下几点需要说明:
253.(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。
254.(2)为了清晰起见,在用于描述本发明的实施例的附图中,层或结构的厚度和尺寸被放大。可以理解,当诸如层、膜、区域或基板之类的元件被称作位于另一元件“上”或“下”时,该元件可以“直接”位于另一元件“上”或“下”,或者可以存在中间元件。
255.(3)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
256.以上所述仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献