模拟电路设计的制作方法

文档序号:32005992发布日期:2022-11-02 13:12阅读:45来源:国知局
模拟电路设计的制作方法

1.本公开涉及用于模拟电路设计的方法和系统,特别是用于自动化模拟电路的设计过程的方法和系统。


背景技术:

2.模拟组件引起大多数芯片生产测试失败和高达95%的现场失效。虽然近来数字电路的电路设计已在某种程度上实现自动化,但是模拟电路设计的自动化已经证明是有问题的,不仅是由于例如寄生效应。传统的模拟电路设计方式可涉及由工程团队依靠先验知识和经验而手动执行的“最佳猜测”估计或规范保护间隔,通常导致电路过度设计而效率低下,或容易故障。因此,创建更有效和更可靠的设计模拟电路的方法是有需求的。


技术实现要素:

3.本发明的各方面如独立权利要求中所述,可选特征如从属权利要求中所述。本发明的各方面可以相互结合,且一个方面的特征可以应用于其他方面。
4.在第一方面,提供了一种模拟电路设计装置。装置包括:
5.初级设计单元和多个二级设计单元;
6.其中,所述初级设计单元被配置为:
7.a)获取表示所述模拟电路的技术要求的信息;
8.b)基于所接收的信息,识别用于形成所述模拟电路的多个电路部分;
9.c)为所述多个电路部分中的每个电路部分确定所述每个电路部分的相应技术标准;以及
10.d)向所述多个二级设计单元中的至少一个二级设计单元提供所述每个电路部分的相应技术标准;
11.所述模拟电路设计装置的所述多个二级设计单元中的每个二级设计单元被配置为:
12.e)基于由所述初级设计单元提供的针对相应电路部分的技术标准设计所述多个电路部分中的相应电路部分;以及
13.f)输出所得到的、所述相应电路部分的设计;以及
14.所述初级设计单元还被配置为:
15.g)从所述多个二级设计单元中的至少一个二级设计单元获得包括所述每个电路部分的相应设计的一组设计;
16.h)基于该组设计生成所述模拟电路的至少一个初始设计;
17.i)基于所生成的设计来模拟模拟电路,以产生至少一个模拟输出;
18.j)验证所述模拟电路是否符合所述模拟电路的所述技术要求,以及
19.当所述模拟电路满足所述技术要求时,输出所生成的设计;以及
20.当所述模拟电路不满足所述技术要求时:
21.基于所述模拟输出和所述技术要求,为所述多个电路部分中的至少一个受影响的电路部分确定该受影响的电路部分的修正技术标准;
22.向至少一个对应的二级设计单元提供每个受影响的电路部分的所述修正技术标准;
23.从所述至少一个对应的二级设计单元接收每个受影响电路部分的相应更新设计;
24.用所述每个受影响的电路部分的相应更新设计来更新该组设计;以及
25.针对所更新的该组设计重复步骤h)到j)。
26.可以理解的是,针对受影响的电路部分的所修订的技术标准可以指定和/或要求该电路部分的结构有改变。例如,所修订的技术标准可意味着该电路部分需要额外的或更少的组件(例如,额外增益级)。在一些示例中,所修订的技术标准甚至意味着不再需要电路的整个部分,因此不再需要相应的设计单元。在一些示例中,所修订的技术标准可以额外地或替代地意味着需要另一设计层的设计单元来设计该设计的各个子部分,例如,所修订的技术标准可以需要使用第三级设计单元(tertiary design unit)来设计电路的相应部分的子部分。
27.所述模拟电路设计装置的所述多个二级设计单元中的每个二级设计单元可以被配置为:模拟相应电路部分的行为,并验证所述相应电路部分是否满足所述相应电路部分的技术标准;以及
28.当所述相应电路部分满足所述技术标准时,输出所设计的相应部分;以及
29.当所述相应电路部分不满足所述技术标准时,基于所模拟的行为改动所述相应部分的设计。
30.所述多个二级设计单元中的每个二级设计单元可以被配置为:通过基于所模拟的行为与所述技术标准之间的差异改动所述相应部分的设计,来基于所模拟的行为改动所述相应部分的设计。
31.在一些示例中,基于所模拟的行为改动所述相应部分的设计包括:调整对应的相应电路部分的技术标准。
32.所述模拟电路设计装置的所述多个二级设计单元中的每个二级设计单元可以被配置为:模拟相应电路部分的行为,并输出所模拟的行为作为上下文信息,所述上下文信息被所述二级设计单元中的另一个二级设计单元用于设计对应的进一步的相应电路部分。
33.在一些示例中,在由所述二级设计单元中的至少另一个二级设计单元完成给定电路部分的至少一个初始设计之后,至少一个二级设计单元被配置为:基于所述至少一个二级设计单元对应的电路部分的上下文来改动所述至少一个二级设计单元输出的初始设计,所述上下文包括基于由所述二级设计单元中的所述至少另一个二级设计单元所完成的所述给定电路部分的完成的设计,生成的技术标准。
34.所述二级设计单元中的每个二级设计单元可以被配置为:在所述多个电路部分中的另一电路部分的设计的修改引起进一步的电路部分的上下文改变的情况下,重复改动所述进一步的电路部分的设计的步骤。额外地或可选地,所述二级设计单元中的每个二级设计单元可以被配置为:仅在上下文的变化大于上下文变化的选定阈值水平的情况下,重复改动进一步的电路部分的设计的步骤。额外地或可选地,所述二级设计单元中的每个二级设计单元可以被配置为:在所述第二设计单元对应的电路部分的初始设计被每个对应的二
级设计单元完成之后,基于电路部分的相应上下文来改动从所述多个二级设计单元中的每个二级设计单元输出的该电路部分的设计。在一些示例中,进一步的电路部分的上下文是通过模拟所述给定电路部分的性能获得的。
35.在一些示例中,每个二级设计单元被配置为基于由所述初级设计单元提供的针对所述多个电路部分中的相应电路部分的技术标准设计所述多个电路部分中的相应电路部分,包括:在设计的电路和/或电路部分的数据库中查找满足所述技术标准的电路部分。额外地或可选地,多个设计单元中的每个涉及单元被配置为:通过例如基于与技术标准相关的最高和/或最低规格或值进行预估,和/或通过参考所计算的值或从先前迭代所确定的值来设计多个电路部分中的相应电路部分。
36.可以理解的是,电路的部分是基于所接收的信息和所述电路的该部分提供的功能来选择的。
37.在一些示例中,每个二级设计单元被配置为基于电路的所选择的部分的上下文来改动所述电路的所选择的部分的设计,包括:调整针对所述电路的所选择的部分的技术标准。
38.可以理解的是,基于上下文信息改动电路部分的设计可以包括:调整电路的组件/部分被配置为操纵和处理的输入和输出,和/或可以包括:改动设计的结构,例如,改变可以形成该部分设计的一部分的组件的类型、大小和/或数量。
39.在另一方面,提供了一种设计模拟电路的方法,该方法包括:
40.在模拟电路设计装置的初级设计单元处:
41.a)获取表示所述模拟电路的技术要求的信息;
42.b)基于所接收的信息,识别用于形成所述模拟电路的多个电路部分;
43.c)为所述多个电路部分中的每个电路部分确定所述每个电路部分的相应技术标准;以及
44.d)向所述多个二级设计单元中的至少一个二级设计单元提供所述每个电路部分的相应技术标准;
45.在所述模拟电路设计装置的所述多个二级设计单元中的每个二级设计单元处:
46.e)基于由所述初级设计单元提供的针对相应电路部分的技术标准设计所述多个电路部分中的相应电路部分;以及
47.f)输出所得到的、所述相应电路部分的设计;以及
48.在初级设计单元处:
49.g)从所述多个二级设计单元中的至少一个二级设计单元获得包括所述每个电路部分的相应设计的一组设计;
50.h)基于该组设计生成所述模拟电路的至少一个初始设计;
51.i)基于所生成的设计来模拟模拟电路,以产生至少一个模拟输出;
52.j)验证所述模拟电路是否符合所述模拟电路的所述技术要求,以及
53.当所述模拟电路满足所述技术要求时,输出所生成的设计;以及
54.当所述模拟电路不满足所述技术要求时:
55.基于所述模拟输出和所述技术要求,为所述多个电路部分中的至少一个受影响的电路部分确定该受影响的电路部分的修正技术标准;
56.向至少一个对应的二级设计单元提供每个受影响的电路部分的所述修正技术标准;
57.从所述至少一个对应的二级设计单元接收每个受影响电路部分的相应更新设计;
58.用所述每个受影响的电路部分的相应更新设计来更新该组设计;以及
59.针对所更新的该组设计重复步骤h)到j)。
60.在一些示例中,方法还包括:在所述模拟电路设计装置的所述多个二级设计单元中的每个二级设计单元处:模拟相应电路部分的行为,并验证所述相应电路部分是否满足所述相应电路部分的技术标准;以及
61.当所述相应电路部分满足所述技术标准时,输出所设计的相应部分;以及
62.当所述相应电路部分不满足所述技术标准时,基于所模拟的行为改动所述相应部分的设计。
63.基于所模拟的行为改动所述相应部分的设计可以包括:基于所模拟的行为与所述技术标准之间的差异来改动所述相应部分的设计。基于所模拟的行为改动所述相应部分的设计包括:调整对应的相应电路部分的技术标准。额外地或可选地,方法还包括:在所述模拟电路设计装置的所述多个二级设计单元中的每个二级设计单元处:模拟相应电路部分的行为,并输出所模拟的行为作为上下文信息,所述上下文信息被所述二级设计单元中的另一二级设计单元用于设计对应的进一步的相应电路部分。在一些示例中,在由所述二级设计单元中的至少另一个二级设计单元完成给定电路部分的至少一个初始设计之后,至少一个二级设计单元被配置为:基于所述至少一个二级设计单元对应的电路部分的上下文来改动所述至少一个二级设计单元输出的初始设计,所述上下文包括基于由所述二级设计单元中的所述至少另一个二级设计单元所完成的所述给定电路部分的完成的设计,生成的技术标准。这还可以包括:在所述二级设计单元中的每个二级设计单元处:在所述多个电路部分中的另一电路部分的设计的修改引起进一步的电路部分的上下文改变的情况下,重复改动所述进一步的电路部分的设计的步骤。仅在上下文的变化大于上下文变化的选定阈值水平的情况下,重复改动进一步的电路部分的设计的步骤。额外地或可选地,重复改动步骤可以包括:例如基于与技术标准相关的最高和/或最低规格或值,和/或通过参考所计算的值或从先前迭代所确定的值,来进行保护间隔、预估、或执行计算。
64.在一些示例中,多个设计单元中的每个涉及单元可选地被配置为:通过例如基于与技术标准相关的最高和/或最低规格或值进行预估,和/或通过参考所计算的值或从先前迭代所确定的值来设计多个电路部分中的相应电路部分。
65.方法还可以包括:在所述第二设计单元对应的电路部分的初始设计被每个对应的二级设计单元完成之后,基于电路部分各自的上下文来改动从所述多个二级设计单元中的每个二级设计单元输出的该电路部分的设计。
66.在一些示例中,通过模拟所述给定电路部分的性能来获得进一步的电路部分的上下文。
67.在一些示例中,基于由所述初级设计单元提供的针对所述多个电路部分中的相应电路部分的技术标准设计所述多个电路部分中的相应电路部分,包括:在设计的电路和/或电路部分的数据库中查找满足所述技术标准的电路部分。
68.可以理解的是,可以基于电路的部分提供的功能来选择所述电路的该部分。
69.还可以理解的是,基于电路的所选择的部分的上下文来改动所述电路的所选择的部分的设计可以包括:调整针对所述电路的所选择的部分的技术标准。
70.还可以理解的是,该方法还可以包括根据输出设计制作模拟电路。
71.所述上下文可以包括与参数和变量有关的信息,当电路的对应部分和该电路的至少一些其他部分一起使用时将要经历所述参数和变量。例如,上下文信息可以包括以下任一项或组合:硅工艺、温度范围、输出负载、输出阻抗、输入电容、输入共模范围、输入差分摆幅、供应电压、可用晶体管类型、输出共模范围、输出摆幅、稳定时间、噪声容限、电源抑制比(psrr)、共模范围-输入(输入cmr)、共模范围-输出(输出cmr)、线性度、最大偏移、带宽、最小回转速率、固有延迟、最小相位裕度、有源功耗、静态功耗、ip3点、滤波器中心频率、滤波器带通范围、负载阶跃响应、线阶跃响应、输出精度、噪声系数、校准范围、噪声底限、信噪比(snr);有效位数(enob)、信噪失真比(sinad)、输出频率范围、峰峰值抖动(jitter-ptp)、均方根抖动(jitter-rms)、输出纹波ptp、总谐波失真、启动时间、通道隔离、参考电压、增益误差、偏移误差、增益漂移。
72.在另一方面,提供了一种计算机可读非瞬时性存储介质,包括用于计算机的程序,该程序被配置为使处理器执行上述任意方法。
附图说明
73.现将参照附图仅以示例的方式对本公开的实施例进行说明,在附图中:
74.图1a示出了示例模拟电路的功能示意图;
75.图1b示出了划分为概念块的图1a的功能示意图;
76.图2示出了用于设计模拟电路的计算机实现的层级模型的功能示意图;
77.图3示出了用于设计模拟电路的计算机实现的模型的另一示例实现方式的功能示意图;
78.图4示出了例如使用图2或图3的示例计算机实现的模型来设计模拟电路的方法的功能示意流程图;
79.图5示出了例如使用图2或图3的示例计算机实现的模型来设计模拟电路的另一示例方法的功能示意流程图;
80.图6示出了例如使用图2或图3的示例计算机实现的模型来设计模拟电路的另一示例方法的功能示意流程图;
81.图7示出了例如使用图2或图3的示例计算机实现的模型来设计模拟电路的另一示例方法的功能示意流程图;
82.图8a示出了由计算机实现的层级模型(例如,参考图1a至图7中的任一描述的模型)设计的模拟电路的部分(portion);以及
83.图8b示出包括图8a的电路部分的所设计的模拟电路的示例。
具体实施方式
84.图1a示出了示例模拟电子电路的简化功能示意图,该模拟电子电路在该示例中是模数转换器(adc)1000。模拟电路可以包括多个部分或组件,例如,比较器1001、数模转换器(dac)1002、电平移位器1003和运算放大器(op-amp)1004。虽然最初可以单独考虑每个部分
或组件,但当作为整体原位应用于电路中时,该部分或组件在其中操作的上下文(context)或环境可影响该组件/块的操作,甚至影响该部分或组件是否适合在该电路中使用。因此,该上下文影响模拟电路的设计,也是至今证明为何难以自动化设计模拟电路的部分原因。此外,由于模拟电路的不同部分/组件之间涉及复杂的反馈回路和数学关系,已证明模拟电路的设计难以自动化。
85.权利要求的实施例涉及用于自动化模拟电路的设计的方法和系统,该方法和系统考虑电路的其他部分或组件的上下文以设计更有效的电路。本技术的发明人已经通过开发一种计算机实现的模型来实现这一点,该模型将设计模拟电路的部分或组件的责任委托给相应的单元或“块”。该模型的示例如图2所示。这样的层级模型涉及使用用作控制实体的初级设计单元900(称为“父块”(parent block)),以及多个称为“子块”(child block)的二级设计单元950a-950d,该二级设计单元从初级设计单元或父块接收关于它们需要设计什么的指令。每个二级设计单元或子块950a-950d被配置为基于从父900接收的指令来设计模拟电路的相应组件或部分。这些指令不仅包括组件或部分需要满足的技术要求(“标准”)(例如功能要求),还包括与该电路的组件或部分的上下文有关的信息——换句话说,当将该电路的部分或组件原位放置在已完成电路中时会经历什么。
86.计算机实现的层级模型是迭代的。一旦父块900已指示每个子块950a-950d设计它们各自的部分或组件,则很可能需要对电路及其部分或组件进行一定程度的重新设计,以考虑由其他子块950a-950d设计的部分或组件,并因此考虑每个部分或组件在其中操作的上下文。因此,一旦由子块950a-950d中的一个子块950a-950d设计电路部分或组件的初始设计,则可能需要基于由该初始设计所提供的上下文来改动由另一子块950a-950d设计的另一电路部分或组件的设计。可以重复该过程以考虑所执行的设计中的任何进一步的改动——例如,一旦已经执行另一电路部分或组件的设计,则由第一子块设计的电路部分或组件的上下文可能已经改变(基于另一电路部分的设计),因此可能需要改动由第一子块设计的电路部分或组件的设计,以此类推。可由子块950a-950d迭代地重复基于电路部分或组件的上下文来改动电路部分或组件的设计的过程,例如直到考虑到对模拟电路的任何其他部分或组件的任何调整所引起的上下文为止。例如,该过程可以迭代地重复,直到上下文中的任何变化小于上下文变化的选定阈值水平。
87.如上所述,上下文包括基于设计生成的技术标准,并可以包括电路的部分或组件在使用中经历的参数和变量。可以基于模拟与该给定电路部分或组件交互的一个(或多个)电路部分或组件的性能,或者甚至通过模拟包括该给定电路部分或组件的所完成的电路来生成任何给定电路部分或组件的上下文。例如,父块900可被配置为从每个子块950a-950d设计的部分或组件组装所完成的电路,并模拟所组装的电路的操作。可基于数学计算或提取来额外地或可选地生成任何给定电路部分或组件的上下文。
88.本发明人已发现有利地是,这种迭代层级模型允许模拟电路的设计自动化。因此,有利地,这意味着可以避免过度设计的模拟电路,而是设计和创建更有效的电路。
89.如上所述,图1a出了示例模拟电路1000,在该示例中,模拟电路1000是模数转换器(adc)。从概念上来讲,例如基于它们各自的功能,电路可以划分为与电路的不同部分或组件对应的功能块。例如,adc可包括比较器1001、数模转换器(dac)1002、多个电平移位器1003和一个或多个op-amp 1004。在图1a示的示例中,可以概念性地将电路划分为与这些不
同部分或组件对应的块。例如,如图1b示,比较器可在概念上被划分为第一“子块”950a、dac被划分为第二子块950b、电平移位器被划分为第三子块950c、以及op-amp被划分为第四子块950d。adc作为整体可在概念上分类为其自身的块(在图1b标记为“父(parent)”900)。可以理解的是,adc本身可在较大的模拟电路内形成概念块。
90.如上所述,在原位使用中,在模拟电路的每个不同块之间存在相互影响。这些块之间的原位相互作用,因此,当每个块被放置在该电路中时经历的参数和变量会影响该电路的性能。例如,电路中使用的op-amp的规格可取决于比较器、dac和/或电平移位器的选择和设计以及它们之间的连接所产生的许多参数和变量。
91.因此,应该考虑这些相互作用以执行组成该块的部分或组件的设计和选择,使得该块作为整体能够处理这些作为组件遭受交互作用的结果的参数和变量。
92.可影响这些不同块的选择和设计的参数和变量的示例的非详尽列表可包括:硅工艺、温度范围、输出负载、输出阻抗、输入电容、输入共模范围、输入差分摆幅、供应电压、可用晶体管类型、输出共模范围、输出摆幅、稳定时间、噪声容限、电源抑制比(psrr)、共模范围-输入(输入cmr)、共模范围-输出(输出cmr)、线性度、最大偏移、带宽、最小回转速率、固有延迟、最小相位裕度、有源功耗、静态功耗、ip3点、滤波器中心频率、滤波器带通范围、负载阶跃响应、线阶跃响应、输出精度、噪声系数、校准范围、噪声下限、信噪比(snr);有效位数(enob)、信噪失真比(sinad)、输出频率范围、峰峰值抖动(jitter-ptp)、均方根抖动(jitter-rms)、输出纹波ptp、总谐波失真、启动时间、通道隔离、参考电压、增益误差、偏移误差、增益漂移。
93.这些参数和变量可称为块所在的“上下文”(context)或环境。为了创建最优的模拟电路,了解这上下文可以改进电路的设计。然而,当然可以理解的是,模拟电路的设计是迭代过程,其中一个块的选择和调整可影响另一个块的上下文,等等。因此,一旦选择/调整一个块的组件,则可能需要调整或重新选择另一个块的组件,以考虑到该块所在的新的上下文。这样的迭代过程手动执行是不实际的,容易出错,只能通过通信来检测。
94.如上所述,图2中示出了模拟电路的设计自动化的方法中使用的示例计算机实现的模型。图2示意性地示出了图1b中所示和上面讨论的块、以及块之间的交互作用。
95.在图2所示的示例中,模型的每个块负责设计由该块指示的组件/功能。在图2中,子1 950a负责设计比较器1001,子2 950b负责设计dac 1002,子3 950c负责设计电平移位器1003,以及子4 950d负责设计op-amp 1004。父块900负责整体上设计adc 1000,并将设计adc的部分/组件/功能的责任委派给子块950a-950d。在一些示例中,父块900可以选择需要多少子块950a-950d,以及赋予每个块的责任。尽管子块950a-950d以顺序示出,但应理解,该顺序不一定代表设计电路的部分的顺序。例如,父块900可以指示负责op-amp的子块950d首先设计电路的该部分。在一些示例中,子块950a-950d可以被配置为首先设计输出,并由此向后工作。
96.虽然最初可单独选择块的每个部分或组件,但当将该块/组件作为整体原位应用于电路中时,该组件/块在其中操作的上下文可影响该组件/块的操作,甚至影响该组件是否适合在该电路中使用。因此,虽然父块可以指示每个子块设计它们各自的部分或组件,但是一旦父块900从每个子块950a-950d所设计的部分或组件组装出所设计的电路的初始版本,则很可能需要一定程度地重新设计电路1000及其部分或组件,以考虑到由其他子块
950a-950d所选择的部分或组件,从而考虑到每个组件/块操作的上下文。如上所述,这将是迭代过程。
97.因此,父块900被配置为用作控制器,处理及操纵由每个子块执行的设计过程。为了执行该功能,如图2所示,父块900可以包括多个不同模块,每个模块被配置为执行作为设计过程的一部分的不同功能。图2中的父块包括指导模块901、组装模块902以及验证和模拟器模块903。
98.指导模块901被配置为接收对要设计的电路的客户要求,以及诸如工艺设计工具包(process design kit,pdk)/条件/控制参数之类的例如由代工厂指示的其他需求,并被配置为将这些转换成一系列或一组技术标准,每个子块950a-950d在设计其各自的电路组件时需要满足这些标准。指导模块901还被配置为准备并向每个子块950a-950d发送说明他们需要设计什么以及他们在如此做时需要满足什么标准的指令。指令还可以包括由其他子块设计的电路的其他设计部分的上下文,以及电路的该部件或部分要在其中操作的电路的更宽的上下文。例如,可考虑到上下文来调整技术标准。
99.组装模块902被配置为接收和整理由每个子块950a-950d提供的模拟电路的所有各自的设计部分或组件,并基于各个所设计的部分或组件组装完整的模拟电路。然后,验证和模拟器模块903可以测试所完成的模拟电路。
100.验证和模拟器模块903被配置为从每个子块接收所设计的组件,并将这些组件与技术要求集进行比较,以确定所设计的部分或组件是否令人满意。这可包括将它们的性能与客户要求进行比较,例如,通过验证所设计的相应电路部分或组件是否满足其对应的技术标准和/或所设计的模拟电路是否满足客户需求。它可以额外地或替代地包括确认检查,以在某些技术限制内操作的意义上确定所设计的电路是否有效。
101.验证模块903还可以包括模拟器模块,模拟器模块被配置为作为“测试台”并模拟电路的组装组件的工作。这样的模拟可产生上下文信息。模拟器模块可将电路的模拟的性能与客户需求进行比较,并可选地验证所设计的电路部分是否满足其对应的技术标准和/或所设计的模拟电路是否满足客户需求。在一些示例中,可以理解的是,模拟器模块可以代替验证模块903。
102.每个子块950a-950d还包括多个不同的模块,每个模块被配置为执行作为设计过程的一部分的不同的功能。在图2所示的示例中,每个子块950a-950d包括转换器模块951a-951d、组装模块952a-952d和模拟器模块953a-953d。可以理解的是,在一些示例中,每个子块950a-950d可进一步包括用于指示第三级设计单元或“孙”(grandchild)块的附加模块,类似于图2中的父块900包括例如用于由子块950a-950d指示和验证的设计过程的指导模块和验证模块的方式,如下文将参考图3至图6更详细地描述。
103.每个子块950a-950d的转换器模块951a-951d被配置为接收由父块900接收的技术标准、以及可选地作为整体的电路的上下文以及电路的其他组件的上下文,并将这些转换成用于设计模拟电路的部分或组件以满足这些标准的一组要求。可以理解的是,在一些示例中,可作为技术标准的一部分来提供和接收上下文信息,但在其他示例中,可以以另外的(例如,分开的)技术标准来提供上下文信息。
104.组装模块952a-952d被配置为选择和/或设计电子组件以满足其提出的要求,这些要求满足由父块和作为整体的电路的上下文和/或电路的其他组件的上下文所规定的标
准。
105.模拟器模块953a-953d还可以被配置为模拟那些组件将如何原位运行以检查/验证由组装模块设计的已设计部分或组件在技术上是否可行。
106.在使用中,父块900接收一组要设计的模拟电路1000的要求。在图2所示的示例中,父块900接收要设计的adc的一组要求,该adc具有某些特性,包括例如由将制造adc的代工厂指定的特性。父块900接收这些要求,并且指导模块901将这些转换成一组技术标准。然后将这些技术标准发送到每个子块950a-950d。
107.指导模块901可以并行地(即全部同时)或串行地(例如,其中,将标准被发送到子1,然后是子2,然后是子3,等等)将这些技术标准发送至每个子块950a-950d。在一些示例中,指导模块901在将一组技术标准发送给下一子块之前,可以等待直到从第一个子块接收到所设计的电路,且在一些示例中,指导模块可以被配置为基于从先前的子块接收到的设计的电路——换句话说,基于从先前的子块所接收的设计的电路的上下文来调整发送给下一子块的技术标准。
108.在将技术标准串联发送到子块950a-950d的示例中,技术标准可以包括区分技术标准的哪些部分与哪些子块950a-950d相关的方式——例如,技术标准可以包括识别技术标准的特定部分是否与子块950a-950d相关的报头或标志。这些报头或标志可以由父块900确定,并且相应地调整技术标准以将他们合并。
109.每个子块950a-950d从父块900接收这些技术标准,并且每个相应的转换器模块951a-951d将这些转换成用于设计模拟电路的部分或组件以满足这些技术标准的一组要求。组装模块952a-952d接收这些要求并设计满足这些要求的电路的组件/部分。可以理解的是,该设计过程可包括在已知电路设计(或电路部分设计)的数据库中进行查找,并找到最匹配技术标准的电路设计。
110.然后,模拟器模块953a-953d模拟电路的这些组件/部分将如何在原位工作,以检查由组装模块设计的电路的已设计组件/部分在技术上是否可行和/或验证相应设计的相应电路部分是否满足其相应的技术标准。如果所设计的电路部分满足其相应的技术标准,那么子块950a-950d被配置为将电路的所设计部分或组件发送或输出至父块900。如果所设计的电路部分不满足其对应的技术标准,则子块950a-950d被配置为改动其电路部分的设计并重复该过程。
111.一旦父900从所有子块950a-950d接收回电路的所有设计部分或组件,则父900的组装模块902接着从每个子块设计的部分或组件组装完整的电路(在此案例中是adc),并通过验证和模拟器模块903验证所设计的电路是否满足技术要求。可以通过模拟所组装的电路如何执行并将该模拟的性能与客户要求和/或技术要求进行比较来做到这一点。可以理解的是,在一些示例中,所完成的模拟电路设计的这种模拟性能可以(例如对于另一设计单元)提供上下文,且父900可以基于通过所完成的模拟电路设计的模拟获得的上下文来调整技术标准。
112.如果所设计的电路的模拟性能不满足客户要求或技术要求(例如,所模拟的电路的参数大于与技术要求规定的参数不同的阈值水平),则验证模块903将此传送给指导模块901。然后,指导模块901可以基于电路的模拟性能与技术要求之间的差异来调整技术标准,并将这些修订的技术标准发送回子块950a-950d。
113.在一些示例中,父块900(例如,验证模块903/指导模块901)可以被配置为确定电路的哪个部分或组件对不满足技术要求的电路负责,并在可以识别子块950a-950d的情况下,父块900可以被配置为仅向对电路的不满足部分或组件负责的子块发送修订的技术标准。然而,在其他示例中,可将所修订的标准发回所有子块950a-950d。还可以理解的是,在一些示例中,父模块900可以确定可能需要额外的和/或可选的子块950a-950d和/或孙块来设计电路的相关部分或组件,例如以满足修订的技术标准。
114.然后,该过程以迭代的方式继续,其中,每个子块950a-950d的转换器模块951a-951d从父块900接收这些所修订的或改动的技术标准,并将这些转换成用于设计模拟电路的部分或组件以满足那些改动的技术标准的新的一组要求。组装模块952a-952d接收这些新的要求并设计满足这些要求的电路的组件/部分。然后,模拟器模块953a-953d模拟电路的重新设计的组件/部分将如何在原位工作,以检查由组装模块设计的电路的已设计的组件/部分在技术上是否可行。然后,子块950a-950d被配置为将电路的(重新)设计的组件/部分发送回父块900。
115.一旦父900从所有子块950a-950d接收回电路的所有(重新)设计的组件/部分,则父900接着从每个子块设计的组件/部分组装完整的电路(在此案例中是adc),并通过验证和模拟器模块903验证所设计的电路是否满足技术要求,验证和模拟器模块903可以模拟所组装的电路如何执行并比较该模拟性能与技术要求。如果模拟性能不满足技术要求,则重复该过程,由此将一组修订的标准发送回子块950a-950d。
116.可以理解的是,子块950a-950d和/或父块900还可以包括循环缓解模块,以停止无休止的重新设计循环的发送。例如,循环缓解模块可配置为具有先前设计的电路的记录,并且如果重新设计的电路的组件/部分或所完成的电路与先前设计的电路的组件/部分或所完成的电路相同,或者仅与先前设计的电路的组件/部分或所完成的电路的差异小于选定的差异的阈值水平,则输出循环指示。例如,父块900可以包括循环缓解模块,并可被配置为在循环缓解模块提供循环指示的情况下,结束设计过程并接受最后设计的电路作为完成的电路。额外地或可选地,例如,如果以所选定的迭代次数重复设计过程,父块900可被配置为降低选定的差异的阈值水平。这可具有发现满足技术要求的“最佳折衷”工作电路的效果。
117.图3示出了用于设计模拟电路的计算机实现的模型的另一示例实现方式的功能示意图;模型的实现在许多方面类似于图2中所示的模型,且图3中的父块和子块可认为具有上文针对图2中的父900和子块950a-950d所描述的功能。此外,图3中的二级设计单元或子块950a-950d可认为具有图2中描述的关于初级设计单元或父块900的一些功能,其中,子块在其下具有第三级设计单元或“孙”块,以此类推。
118.更详细地,如图3所示,模型层级结构包括核心设计层,该核心设计层包括初级设计单元或父块。尽管在图3中的核心设计层中仅示出了一个父块900,但可以理解的是,在一些示例中可能存在一个以上的父块900,例如其中每个父块900并行地操作。例如,每个父块900可以被配置为设计模拟电路的不同方面(例如,功能和/或结构上彼此不同)。
119.在核心设计层下面是第一设计层。第一设计层包括耦接至上一层(在此案例中是核心设计层)的父块900的二级设计单元或子块950。在所示的示例中,有六个子块,都耦接至核心设计层的父块。子块950被分组为两个不同的组:第一组包括子块1、2和3;以及第二组包括子块3、4和5。每个子块950耦接至父块900。这两个组可以表示父块900指示并行设计
的模拟电路的不同功能区域或部位。
120.在所示的示例中,第一组的子块950并联耦接至核心设计层的父块900,第二组的子块950并联耦接至核心设计层的父块900。可以用这样的方式对子块950进行分组,以设计模拟电路的不同区域或方面(例如,功能和/或结构上彼此不同)。然而,可以理解的是,在一些示例中,并非第一设计层的所有子块950都需要并联耦接至核心设计层的父块。例如,第一设计层的子块1和3可以耦接至核心设计层的父块900,第一设计层的子块2可以分别串联耦接至第一设计层的子块1和3。
121.子块950的分组可由核心设计层的父块900确定。例如,父块900可以被配置为对第一设计层的子块进行分组,以设计模拟电路的不同方面(例如,功能和/或结构上彼此不同)。核心设计层的父块900可被配置为基于来自客户规范的要求的确定来做到这点。
122.在第一设计层下面是第二设计层。第二设计层包括第三级设计单元或子块1、2、3、4、5、6、7和8 960。孙块960耦接至上一层(第一设计层)的子块。并非第一设计层的每个子块都耦接至第二设计层的孙块。在所示的示例中,第二设计层的子块1、2和3并联地耦接至第一设计层的子块2。然而,如上对于第一设计层的子块950的描述,可以理解的是,在一些示例中,并非第二设计层的所有孙块950都需要并联耦接至第一设计层的子块。例如,第二设计层的孙块1和3可以耦接至第一设计层的子块2,第二设计层的孙块2可以分别串联耦接至第二设计层的孙块1和3。
123.在第二设计层下面是另一(第n)设计层。第n设计层包括重孙块(greatgrandchild block)1、2、3和4 970。重孙块970以与第二设计层的孙块960耦接至第一设计层的子块950几乎相同的方式耦接至上一层(第二设计层)的孙块960。因此可以理解的是,位于第二设计层下方可以存在多个另外的设计层,每个另外的设计层包括耦接至上一层的块的它们自身的块。
124.图3所示的块层级结构使得模型的不同层的块被配置为以不同的复杂程度设计模拟电路的方面或部分。例如,父块900可以被配置为设计完整的模拟电路,子块950被配置为设计模拟电路的功能组件(例如运算放大器、ac/dc转换器、电平移位器、比较器、电压调节器、电源开关等),以及子块960被配置为设计该功能组件的组件(例如,针对该组件的电阻器、晶体管、电容器、二极管、电感器等的配置)。然而,可以理解的是,孙块960可被配置为设计更多层级的块,例如运算放大器或电压基准或比较器等。
125.(核心设计层的)父块900可被配置为确定所选层的块被配置为设计的复杂程度,和/或一层的块可被配置为确定下面层的块被配置为设计的复杂程度。
126.额外地或可选地,图3所示的块层级结构使得模型的不同层的块被配置为基于不同的功能或结构要求来设计模拟电路的方面或部分。例如,一层可以包括被配置为基于一个功能要求(例如尺寸)设计模拟电路的方面或部分的块,而另一层可以包括被配置为设计另一功能要求(例如电流或电压)的块。
127.图4示出了例如使用图2或图3的示例计算机实现的层级模型的设计模拟电路的方法的功能示意流程图;
128.更详细地,在步骤300,父块900接收客户要求。例如,客户要求可以界定电路的功能和由其要求的某些限制——例如峰值电流、电压等。客户要求还可以指定其他特征,例如将由其制造电路的pdk/代工厂。父块900被配置为将客户要求转换302为一组技术标准。父
块900可以额外地或可选地被配置为确定是并行地或串行地将这些技术标准发送给子块950,和/或是否将不同的标准组发送给下面层的子块950。
129.在此阶段,父块900还可以被配置为确定模型的层的数量,或者可选地,每一层的块可以被配置为当设计由上层中的块负责设计的电路的部分时,确定是否需要下方层的块。
130.一旦父块900已将客户要求转换302成标准,则父块900将客户要求发送304到第一层的子块。在所示的示例中,父块900并行地向子块1、子块2和子块3发送304技术标准。
131.一旦接收到技术标准,在该示例中,子1确定306其需要接合下面层的块(孙块960),并指示孙1基于标准来设计电路的第一部分。同时,子2基于技术标准设计307电路的初始第三部分,而子3基于技术标准设计308电路的初始第四部分。
132.孙1基于技术标准设计308电路的第一部分,并将该设计的第一部分发送312回给子1,然后子1可以(可选地,在首先执行了一些模拟/验证之后)将该第一部分转发给父。然后子1指示314孙2基于标准设计电路的第二部分。孙2基于标准设计316电路的第二部分,并将该第二部分发送318回子1,然后子1可将该第二部分转发给父。
133.一旦子1(通过孙1和孙2)设计了电路的第一和第二部分,子1向子2发送320上下文信息。子2可以基于从子1获得的上下文信息来改动或调整从父接收的技术标准。然后子2基于从子1接收的上下文信息来调整电路的初始设计的第三部分。
134.在图4所示的示例中,一旦电路的第三部分已由子2设计,则可以将设计的所调整的第三部分发送到父,并将上下文信息发送324到子3。上下文信息可以包括由电路的第一、第二和第三部分创建的上下文。然后子3基于所接收的上下文信息改动326电路的第四部分的初始设计,并将所设计的第四部分发送328到父块900。
135.一旦父块900已接收到电路的所有所设计的部分,父块900检查或验证330所设计的完成的电路是否满足客户要求。如上所述,父块可通过使用验证和模拟模块来做到这一点,以模拟所完成的电路的性能。
136.在所设计的完成的电路不满足客户要求的情况下,父块可以将所调整的标准直接重新发送332到负责设计对不满足要求负责的电路部分的块,并提供关于需要调整什么内容(以及可选地由哪个块调整)的额外的信息——例如,可以调整标准以考虑用于重新设计块以满足客户要求的额外的信息。在一些示例中,父块900可以仅将所设计的电路的部分发送332回负责设计该部分的块——例如,如图5所示(如下所述),父块900可以将模拟电路的第一部分发送回孙1,例如具有关于需要调整的信息和/或具有所调整的标准。
137.在上述示例中可以理解,模拟电路的第一、第二、第三和第四部分可以是电路的独立部分和/或在功能上相互依赖。在其它示例中,模拟电路的第一、第二、第三和第四部分可以是模拟电路的选定子集。例如,第二部分可以包括第一部分的部分,第三部分包括第一和第二部分的部分,第四部分包括第一、第二和第三部分的部分。
138.图5示出了例如使用图2或图3的示例计算机实现的层级模型的设计模拟电路的方法的功能示意流程图。
139.图5的方法具有许多与图4的方法相同的特征。然而,值得注意的是,在图5所示的示例中,子块950被配置为隔离地操作,而不是子块950彼此之间传递信息(例如标准和它们已经设计的电路的部分或组件),其中,每个子块950被配置为直接向父块900报告,并且将
其负责设计的模拟电路的所设计的部分或组件直接发送回父块900。
140.这种布置可能是有利的,因为父块900可操作以并行地协调模拟电路的所有相应部分或组件的设计。例如,在第一迭代中,所有子块950可被配置为同时设计模拟电路的相应部分。在接收到模拟电路的这些所设计的部分之后,作为第二迭代,父块900可被配置为指示所有子块950(或在一些示例中是子集)基于由第一迭代的设计提供的上下文重新设计它们各自的部分或组件。可以理解的是,这种方法可以提高模型设计模拟电路的速度。
141.更详细地,在步骤400,父块900接收客户要求。如上述参考图4的示例,客户要求可以界定电路的功能和由其要求的某些限制——例如峰值电流、电压等。客户要求还可以指定其他特征,例如将由其制造电路的pdk/代工厂。父块900被配置为将客户要求转换402为一组标准。父块900可以附加地或可选地被配置为确定是并联地或串联地将这些标准发送给子块950,和/或是否将不同的标准组发生给下面的设计层的子块950。
142.在此阶段,父块900还可以被配置为确定模型的设计层的数量,或者可选地,每一设计层的块可以被配置为当设计由上方设计层中的块负责设计的电路的部分时,确定是否需要下方设计层的块。
143.一旦父块900已将客户要求转换402成标准,则父块900将客户要求发送404到第一设计层的子1。这些标准可以指定要使用该设计层的多少子块950、以及哪个子块950将负责设计模拟电路的哪个部分。在图5所示的示例中,父块900按顺序地指示每个子块950——即,父块900首先向子1发送标准,并且在指示子块2之前等待从子1返回电路的所设计的部分/组件,以此类推。然而,可以理解的是(如上所述),在其他示例中,父块900可以并行地协调所有子块950,使得同时向所有子块950发送标准。
144.一旦接收到标准,在该示例中,子1确定406其需要接合下面层的块(孙块960),并指示孙1基于标准来设计电路的第一部分。孙1基于标准设计408电路的第一部分,并将该所设计的第一部分发送410回给子1,然后子1可以(可选地,在首先执行了一些模拟/验证之后)将该第一部分转发给父。然后子2指示412孙2基于标准设计电路的第二部分。孙2基于标准设计414电路的第二部分。
145.可以理解的是,在模型的各种实现方式中,块与紧邻它们的层的块进行通信。然而,在一些示例中,块也可以与不紧邻它们的层中的块通信。在图5所示的示例中,孙2被配置为将所设计的电路的第二部分直接发送416回至父900,且父900可被配置为将标准和上下文信息发送回孙2。
146.一旦子1(通过孙1和孙2)已设计电路的第一和第二部分,父块900可以基于所设计的电路的第一和第二部分来调整420标准,并将所调整的标准发送给子2。然后,子2可以基于这些所调整的标准设计电路的第三部分。可以理解的是,以此方式调整标准是考虑由子1/孙1和孙2设计的电路的第一和第二部分所创建的上下文的一种方式——例如,与上面关于图4描述的示例一样,父块900可以被配置为基于由电路的所设计的第一和第二部分提供的上下文来调整标准。例如,在父块900包括验证和仿真器模块的示例中,验证和仿真模块可以模拟电路的所设计的部分或组件的性能以获得上下文。
147.然而,在其他示例中,父块900可以不调整标准,而是可以简单地与标准并行地发送上下文信息(例如由子1/孙1和孙2设计的电路的所设计的第一和第二部分)。标准可以是发送给子块1的相同标准,或者标准可以由父块900调整,使得标准被配置为特定于每个子
块950,并因此特定于每个对应的子块950将被指示来设计的电路的每个部分或组件。
148.在图5所示的示例中,一旦电路的第三部分已由子2设计,父可将所调整的标准(例如,考虑由电路的第一、第二和第三部分创建的上下文)发送424到子3。然后,子3基于所调整的标准设计426电路的第四部分,并将所设计的第四部分发送427到父块900。
149.一旦父块900已接收到电路的所有所设计的部分,父块900检查或验证428所设计的完成的电路是否满足客户要求。如上所述,父块可通过使用验证和模拟模块来做到这一点,以模拟所完成的电路的性能。
150.在所设计的完成的电路不满足客户要求的情况下,父块可以将所调整的标准直接重新发送432到负责设计对不满足要求负责的电路部分的块,并提供关于需要调整什么内容(以及可选地由哪个块调整)的额外的信息——例如,可以调整标准以考虑用于重新设计块以满足客户要求的额外的信息。在一些示例中,父块900可以仅将所设计的电路的部分发送432回负责设计该部分的块——例如,如图5所示,父块900可以将模拟电路的第一部分发送回孙1,例如具有关于需要调整的信息和/或具有所调整的标准。
151.在上述示例中,可以理解的是,模拟电路的第一、第二、第三和第四部分可以是电路的独立部分和/或在功能上相互依赖。在其它示例中,模拟电路的第一、第二、第三和第四部分可以是模拟电路的选定子集。例如,第二部分可以包括第一部分的部分,第三部分包括第一和第二部分的部分,第四部分包括第一、第二和第三部分的部分。
152.图6示出了例如使用图2或图3的示例计算机实现的层级模型的设计模拟电路的方法的功能示意流程图;图6的方法具有许多与图4和图5的方法相同的特征。
153.在步骤500,父块900接收客户要求。关于上述参考图4和图5的方法,客户要求可以界定电路的功能和由其要求的某些限制——例如峰值电流、电压等。客户要求还可以指定其他特征,例如将由其制造电路的pdk/代工厂。父块900被配置为将客户要求转换5202为一组标准。父块900可以附加地或可选地被配置为确定是并联地或串联地将这些标准发送给子块950,和/或是否将不同的标准组发生给下面的层的子块950。
154.在此阶段,父块900还可以被配置为确定模型的层的数量,或者可选地,每一层的块可以被配置为当设计由上层中的块负责设计的电路的部分时,确定是否需要下方层的块。
155.一旦父块900已将客户要求转换502成标准,则父块900将客户要求发送504到第一设计层的子1。这些标准可以指定要使用该层的多少子块950、以及哪个子块950将负责设计模拟电路的每个部分。
156.在接收到标准时,子1基于所接收到的标准设计506模拟电路的第一部分。可以理解的是,子1可被配置为基于由父模块确定的、适用于它的标准的子集/第一部分来设计模拟电路的第一部分。
157.一旦子1设计了模拟电路的第一部分,则从父块900接收的标准可以指示子1将所设计的电路的第一部分和标准发送508到同一层的第二子(子2)。子2可以基于所接收的标准设计510模拟电路的第二部分,并在一些示例中,可以仅基于标准的子集(例如,仅适用于它的那些部分)或基于所有标准设计模拟电路的第二部分。
158.子2还基于由子1设计的模拟电路的所设计的第一部分创建的上下文来改动模拟电路的第二部分的设计。在一些示例中,该上下文可以以所调整的一组标准的形式来表
示——例如,子1和/或父块可被配置为基于由子1设计的电路的所设计的第一部分提供的上下文来调整标准,尽管将理解的是,在其他示例中,上下文可以在标准之外/单独地提供。例如,在父块包括验证和仿真器模块的示例中,验证和仿真模块可以模拟电路的所设计的部分或组件的性能以获得上下文。另外或可选地,在每个子块包括验证和仿真器模块的示例中,验证和仿真模块可以模拟电路的所设计的部分或组件的性能以获得上下文。
159.在一些示例中,子2可确定需要使用较低层的块来设计其负责设计的电路的部分,和/或确定是否串联和/或并联地使用较低层的这些块。额外地或可选地,子2接收的标准可以指示(例如,由父块确定)子2将使用较低层的块来设计子2负责设计的电路的部分(以及是串行还是并行地使用这些块)。例如,如图6所示,子2可以可选地指示512孙1和孙2来设计模拟电路的第二部分的子集。在这样的示例中,子2可可选地验证513由下面层的块设计的电路的部分(在所示的示例中,孙1和孙2)是否满足对它们所要求的标准。
160.然后,子2向子3发送514所设计的第一部分、所设计的第二部分和标准。在一些示例中,可由先前的子修改标准。例如,在将标准发送给下一个子之前,可以由子1和/或子2来修改标准。例如,子2可以被配置为基于电路的所设计的第一部分和/或电路的所设计的第二部分来修改其发送给子3的标准。
161.然后,子3基于所接收的标准以及额外地或可选地电路的所设计的第一部分和/或所设计的第二部分来设计516模拟电路的第三部分。
162.然后,子3将所完成的电路发送518到父块,父块检查520所设计的完整的电路是否满足客户要求。如上所述,父块可通过使用验证和模拟模块来做到这一点,以模拟所完成的电路的性能。
163.在所设计的完成的电路不满足客户要求的情况下,父块可以将所设计的完成的电路重新发送522到子块1,其中具有关于需要调整什么(以及可选地由哪个块进行调整)的额外的信息。额外地或可选的,在所设计的完成的电路不满足客户要求的情况下,父块可仅将所设计的电路的部分发送524回负责设计该部分的块——例如,父块可以将模拟电路的第二部分发送回子2,例如具有关于需要调整的信息和/或具有所调整的标准。然后,子2可以设计电路的该部分,并将其直接发送回父块以检查是否满足客户要求,或者发送至子3,然后子3可以基于所重新设计的电路的第二部分(和/或可选地基于所调整的标准)来重新设计电路的第三部分。
164.在上述示例中,可以理解的是,模拟电路的第一、第二和第三部分可以是电路的独立部分和/或在功能上相互依赖。在其它示例中,模拟电路的第一、第二和第三部分可以是模拟电路的选定子集。例如,第二部分可以包括第一部分的部分,第三部分包括第一和第二部分的部分。
165.图7示出了例如使用图2或图3的示例计算机实现的层级模型的设计模拟电路的另一方法的功能示意流程图;图7的方法具有许多与图6的方法相同的特征,其中例如标准和/或上下文信息的信息直接在子之间共享。此外,在图7所示的示例中,将上下文信息单独提供给标准(即,不基于上下文调整标准)。
166.更详细地,在步骤600,父块900接收客户要求。对于上述参考图4、5、6、7的示例,例如,客户要求可以界定电路的功能和由其要求的某些限制
‑‑
例如峰值电流、电压等。客户要求还可以指定其他特征,例如将由其制造电路的pdk/代工厂。父块900被配置为将客户要求
转换602为一组标准。父块900可以附加地或可选地被配置为确定是并联地或串联地将这些标准发送给子块950,和/或是否将不同的标准组发生给下面的层的子块950。
167.在此阶段,父块900还可以被配置为确定模型的层的数量,或者可选地,每一层的块可以被配置为当设计由上层中的块负责设计的电路的部分时,确定是否需要下方层的块。
168.一旦父块900已将客户要求转换602成标准,则父块900将这些标准发送604到第一设计层的子1。这些标准可以指定要使用该层的多少子块950、以及哪个子块950将负责设计模拟电路的哪个部分。在图6所示的示例中,父块900按顺序地指示每个子块950——即,父块900首先向子1发送标准,然后子1将指示传递给子2,以此类推。
169.一旦接收到标准,在该示例中,子1确定606其需要接合下面层的块(孙块960),并指示607孙1基于标准的第一子集来设计电路的第一部分。作为该过程的一部分,子1可将标准划分为与其和/或其指示的孙相关的子集。
170.孙1基于标准的第一子集设计608电路的第一部分,并将该所设计的第一部分发送610回子1。然后,子1指示414孙2基于标准的第二子集设计电路的第二部分。孙2基于标准设计616电路的第二部分,并将所设计的第二部分发送回子1。尽管该过程是按顺序描述的(即,一旦孙1设计了电路的它的部分,子1只指示孙2),但可以理解的是,在其他示例中,子1可以并行地指示孙1和孙2。此外,可以理解的是,在一些示例中,子1可以模拟由孙1设计的电路的第一部分的行为,以获得由孙1设计的电路的部分提供的上下文,并将该上下文信息与标准一起发送到孙1(以及可选地其他子块)。
171.一旦子1(通过孙1和孙2)设计了电路的第一和第二部分,子1就可以模拟612电路的第一和第二部分的行为以获得它们的上下文,并向子2发送622由所设计的电路的第一和第二部分提供的标准和上下文。子1还可以将所设计的第一和第二部分发送至子2,以转发至父900。然后,子2可以基于与其相关的标准的子集和由子1提供的上下文信息来设计624电路的第三部分。
172.在图6所示的示例中,一旦子2涉及了电路的第三部分,子2可以模拟626电路的第三部分的行为,并将该上下文信息连同标准(以及用于转发到父块900的所设计的第一、第二和第三部分)发送628到子3。可以理解的是,在一些示例中,与电路的其他部分(如果可用)相关、例如来自所设计的第一和第二部分的上下文信息也可发送至子3。然后,子3基于标准(或与之相关的标准的子集)来设计630电路的第四部分,模拟632所设计的电路的第四部分的行为,并将所设计的第四部分连同其他设计的部分和上下文信息一起发送634至父块900。
173.一旦父块900已接收到电路的所有所设计的部分,父块900检查或验证636所设计的完成的电路是否满足客户要求。如上所述,父块900可通过使用验证和模拟模块来做到这一点,以模拟所完成的电路的性能。
174.在所设计的完成的电路不满足客户要求的情况下,连同由先前迭代提供的上下文信息,父块可以将标准重新发送回子1以重复该过程。然后,如上所述地重复此过程。在一些示例中,父块900可以基于所设计的完成的电路与客户要求之间的差异,例如基于与客户要求相比所完成的电路的模拟行为,来调整发送至子块的标准。
175.在上述示例中,可以理解的是,模拟电路的第一、第二、第三和第四部分可以是电
路的独立部分和/或在功能上相互依赖。在其它示例中,模拟电路的第一、第二、第三和第四部分可以是模拟电路的选定子集。例如,第二部分可以包括第一部分的部分,第三部分包括第一和第二部分的部分,第四部分包括第一、第二和第三部分的部分。
176.图8a示出了由计算机实现的层级模型(例如,参考图1a至图7中的任一附图的上述模型)设计的模拟电路的部分;以及图8b示出了包括图8a的电路部分的所设计的模拟电路的示例,该电路部分在此为adc。
177.图8a示出了输入缓冲器、电平移位器、dac和比较器。这些中的每一个可以形成所完成的模拟电路的一部分,例如图8b中所示的所完成的adc。
178.如上所述,图8a和8b中所示的示例已使用计算机实现的层级模型来设计。父块(或初级设计单元)负责设计整个adc,而子块(或二级设计单元)分别负责输入缓冲器、电平移位器、dac和比较器中的每一个。父块接收来自用户的技术要求,并将这些技术要求转换成由每个子块用来设计电路的相应部分的技术标准。子块在设计电路的相应部分时考虑并使用电路的其他部分的上下文。模型也是迭代的,其中,一旦父块900已指示每个子块950a-950d设计它们各自的部分或组件,就执行电路及其部分的一定程度的重新设计,以在设计各个电路部分和整个电路时使用由电路的其他部分提供的上下文。如上所述,每个子块和/或父块还可以执行确认/验证以确定所设计的部分/完整电路是否满足所要求的技术要求。
179.在图8b所示的所设计的电路中,之所以有两个dac,是因为电路提供了差分adc工作
……
之所以有多个(在所示的示例中,是三个)输入缓冲器,是因为使用两个缓冲器来缓冲两个输入,且基准也被缓冲作为输入。
180.在本公开的上下文中可以理解的是,可形成标准基础的示例模拟参数的非穷尽列表包括:噪声容限、电源抑制比(psrr)、共模范围-输入(输入cmr)、共模范围-输出(输出cmr)、线性度、最大偏移、带宽、最小回转速率、固有延迟、最小相位裕度、有源功耗、静态功耗、ip3点、滤波器中心频率、滤波器带通范围、负载阶跃响应、线阶跃响应、输出精度、噪声系数、校准范围、噪声底限、信噪比、enod、sinad、输出频率范围、jitter-ptpt、jitter-rms、输出纹波ptp、总谐波失真、启动时间、通道隔离、参考电压、增益误差、偏移误差、增益漂移。
181.还可以理解的是,设计单元(诸如主、二级和第三级设计单元)可以以软件或硬件(例如作为专用电路)来实现。例如,设计单元可以作为计算机系统的一部分来实现。计算机系统可以包括用于在计算机系统的各个组件之间传递信息数据、信号和信息的总线或其它通信机制。这些组件可以包括输入/输出(i/o)组件,该i/o组件处理用户(即,发送者、接收者、服务提供者)动作,例如,从小键盘/键盘中选择按键、选择一个或多个按钮或链接等,并向总线发送相应的信号。i/o组件还可以包括输出组件,例如显示器和光标控制(例如键盘、小键盘、鼠标等)。收发器或网络接口可以通过网络在计算机系统和其他设备(例如,另一用户设备、商家服务器或服务提供商服务器)之间发送和接收信号。在一个实施例中,传输是无线的,尽管其他传输介质和方法也可为合适的。处理器可以是微控制器、数字信号处理器(dsp)或其他处理组件,并处理这些各种信号,例如用于在计算机系统上显示或通过通信链路传输到其他设备。处理器还可以控制诸如cookie或ip地址的信息到其他设备的传输。
182.计算机系统的组件还可以包括系统存储器组件(例如,随机访问存储器(ram))、静态存储组件(例如,只读存储器(rom))和/或磁盘驱动器(例如,固态驱动器、硬盘驱动器)。计算机系统通过执行包含在系统存储器组件中的一个或多个指令序列,由处理器和其他组
件执行特定操作。
183.逻辑可在计算机可读介质中进行编码,计算机可读介质可指参与向处理器提供指令以供执行的任何介质。这种介质可以采取多种形式,包括但不限于非易失性介质、易失性介质和传输介质。在各种实现方式中,非易失性介质包括光盘或磁盘,易失性介质包括动态存储器,例如系统存储器组件,传输介质包括同轴电缆、铜线和光纤。在一个实施例中,逻辑在非瞬时性计算机可读介质中进行编码。在一个示例中,传输介质可以采取声波或光波的形式,例如,在无线电波、光学和红外数据通信期间产生的声波或光波。
184.计算机可读介质的一些常见形式包括,例如软盘、软性磁盘、硬盘、磁带、任何其他磁性介质、cd-rom、任何其他光学介质、穿孔卡、纸带、任何其他具有孔图案的物理介质、ram、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、闪存eprom(flash-eprom)、任何其他存储芯片或盒式存储器、或计算机适于从中读取的任何其他介质。
185.在本公开的各种实施例中,用于实践本公开的指令序列的执行可由计算机系统执行。在本公开的各种其他实施例中,通过通信链路耦合到网络(例如,诸如局域网(lan)、无线局域网(wlan)、公共交换电话网络(ptsn)和/或各种其他有线或无线网络,包括电信、移动和蜂窝电话网络)的多个计算机系统600可执行指令序列以彼此协调地实施本公开。
186.还可以理解的是,本公开的各方面可以使用硬件、软件或硬件和软件的组合来实现。此外,在适用的情况下,在不脱离本公开的精神的情况下,本文所述的各种硬件组件和/或软件组件可以组合成包括软件、硬件和/或两者的复合组件。在适用的情况下,在不脱离本公开的范围的情况下,本文所述的各种硬件组件和/或软件组件可以被分离成包括软件、硬件或两者的子组件。此外,在适用的情况下,可以预期的是,软件组件可以实现为硬件组件,反之亦然。
187.根据本发明的软件,例如程序代码和/或数据,可以存储在一个或多个计算机可读介质上。还可以预期的是,本文所标识的软件可以使用一个或多个通用或专用计算机和/或计算机系统、联网和/或以其他方式来实现。在适用的情况下,可以改变本文描述的各种步骤的顺序,将其组合成复合步骤,和/或将其分离成子步骤,以提供本文描述的特征。
188.本文描述的各种特征和步骤可以实现为系统,该系统包括存储本文描述的各种信息的一个或多个存储器以及耦合到一个或多个存储器和网络的一个或多个处理器的系统,其中,一个或多个处理器可操作以执行如本文所述的步骤,作为包括多个机器可读指令的非瞬时性机器可读介质,当由一个或多个处理器执行时,该机器可读指令适于使一个或多个处理器执行包括本文所述步骤的方法,以及由一个或多个设备(例如,硬件处理器、用户设备、服务器和本文所述的其他设备)执行的方法。
189.在本公开的上下文中,对本领域技术人员来说,在此描述的设备和方法的其他示例和变型将是显而易见的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1