博士生学位专业课程一VLSI设计方法 作者:唐长文 CMOS运算放大器设计优化方法研究 2002年12月1日 唐长文 zwtang@fudan.edu.cn 复旦大学专用集成电路与系统国家重点实验室 摘要 本文论述了一种采用数学最优化方法一几何规划(Geometric Programming)进行两级运 算放大器的管子尺寸参数优化的方法。 我们在设计一个确定结构的模拟电路中,许多设计约束条件和设计目标函数往往都是尺 寸参数(管子尺寸,偏置电流)的一个多项式函数。我们调管子尺寸参数的设计过程,其实 就是在满足所有设计约束的条件下,得到设计目标函数的一个解的过程。通常情况下,通过 手工计算和SPICE仿真相结合得到的解是一个局部最优解。而本文介绍了一种采用数学最 优化方法一几何规划(Geometric Programming)来得到设计的全局最优解的方法。 首先,我们根据运算放大器设计要求(单位增益带宽、相位裕量、输入等效噪声、面积、 功耗等),通过CMOS运算放大器设计一般步骤得到所有设计约束条件不等式、约束等式和 目标函数。然后,将所有约束不等式、约束等式和目标函数转换成一个几何规划问题。最后, 采用数学优化求解方法一内点法求得一个全局最优解或者无解的结果。文章最后,我们给出 了设计要求和SPICE仿真的比较结果。 几何规划(Geometric Programming)优化设计方法不只适合于两级运算放大器的设计, 它同样对于任何满足几何规划条件的问题都适合,比如Cascode运算放大器、LC振荡器、 ∑△调谐器、滤波器设计等等工程优化问题
博士生学位专业课程—VLSI 设计方法 作者:唐长文 1 CMOS 运算放大器设计优化方法研究 2002 年 12 月 1 日 唐长文 zwtang@fudan.edu.cn 复旦大学专用集成电路与系统国家重点实验室 摘要 本文论述了一种采用数学最优化方法-几何规划(Geometric Programming)进行两级运 算放大器的管子尺寸参数优化的方法。 我们在设计一个确定结构的模拟电路中,许多设计约束条件和设计目标函数往往都是尺 寸参数(管子尺寸,偏置电流)的一个多项式函数。我们调管子尺寸参数的设计过程,其实 就是在满足所有设计约束的条件下,得到设计目标函数的一个解的过程。通常情况下,通过 手工计算和 SPICE 仿真相结合得到的解是一个局部最优解。而本文介绍了一种采用数学最 优化方法-几何规划(Geometric Programming)来得到设计的全局最优解的方法。 首先,我们根据运算放大器设计要求(单位增益带宽、相位裕量、输入等效噪声、面积、 功耗等),通过 CMOS 运算放大器设计一般步骤得到所有设计约束条件不等式、约束等式和 目标函数。然后,将所有约束不等式、约束等式和目标函数转换成一个几何规划问题。最后, 采用数学优化求解方法-内点法求得一个全局最优解或者无解的结果。文章最后,我们给出 了设计要求和 SPICE 仿真的比较结果。 几何规划(Geometric Programming)优化设计方法不只适合于两级运算放大器的设计, 它同样对于任何满足几何规划条件的问题都适合,比如 Cascode 运算放大器、LC 振荡器、 ∑ ∆ 调谐器、滤波器设计等等工程优化问题
博士生学位专业课程一VLSI设计方法 作者:唐长文 一、引言 大规模数字集成电路的设计过程是一个逻辑综合和自动布局布线的过程,该设计方法己 经非常成熟。然而模拟电路的自动综合和布局布线始终是我们梦寐以求的,EDA技术发展 到至今,目前还没有一个成熟的模拟电路CAD解决方案。在研究领域,许多作者提出了各 种各样的优化算法,企图来解决模拟电路的自动综合技术。这些工作主要包括模拟电路图结 构、电路版图自动生成。本文论述的是一个对于特定结构的两级运算放大器进行管子宽长比 优化的方法。 我们在设计一个确定结构的模拟电路中,许多设计约束条件和设计目标函数往往都是尺 寸参数(管子尺寸,偏置电流)的一个多项式函数。我们调管子尺寸参数的设计过程,其实 就是在满足所有设计约束的条件下,得到设计目标函数的一个解的过程。通常情况下,通过 手工计算和SPICE仿真相结合得到的解是一个局部最优解。而本文介绍了一种采用数学最 优化方法一几何规划(Geometric Programming)来得到设计的全局最优解的方法。 ■ 112 M10 1 H12 H13 M 4 R B 图1、CMOS两级运算放大器 1.两级运算放大器 如图1所示,是一个两级CMOS运算放大器[1]。它包括一个差分输入级,一个驱动负 载电容C共源放大级,和一个稳定跨导偏置电流电路。该运算放大器作为一个子电路广泛 用于模拟VLSI中,因此负载电容C往往是几个皮法,故省去了输出驱动级。 CMOS两级运算放大器具有许多优点:高电压增益,轨到轨输出动态范围,大共模输入 范围,一个密勒补偿电容等等。 CMOS两级运算放大器的主要缺点是,第二极点(非主极点)是由负载电容和第二级放 大器输出阻抗的乘积所确定。这就降低了整个运算放大器的带宽。另外一个缺点是运算放大 器存在一个右半平面的零点,该零点是由前馈通路中的补偿电容引起的。值得庆幸的是该极 点可以通过选择适当的补偿电阻Rc来消除(文章第三部分将详细论述)。补偿电阻是采用一 个处于线性区的NMOS来实现的,通过调节宽长比和栅源电压来实现对零点的搬移。 上述CMOS两级运算放大器有30个设计参数: ●所有管子的宽长,W,L,=1..14; ● 电阻RB和补偿电容Cc 2
博士生学位专业课程—VLSI 设计方法 作者:唐长文 2 一、引言 大规模数字集成电路的设计过程是一个逻辑综合和自动布局布线的过程,该设计方法已 经非常成熟。然而模拟电路的自动综合和布局布线始终是我们梦寐以求的,EDA 技术发展 到至今,目前还没有一个成熟的模拟电路 CAD 解决方案。在研究领域,许多作者提出了各 种各样的优化算法,企图来解决模拟电路的自动综合技术。这些工作主要包括模拟电路图结 构、电路版图自动生成。本文论述的是一个对于特定结构的两级运算放大器进行管子宽长比 优化的方法。 我们在设计一个确定结构的模拟电路中,许多设计约束条件和设计目标函数往往都是尺 寸参数(管子尺寸,偏置电流)的一个多项式函数。我们调管子尺寸参数的设计过程,其实 就是在满足所有设计约束的条件下,得到设计目标函数的一个解的过程。通常情况下,通过 手工计算和 SPICE 仿真相结合得到的解是一个局部最优解。而本文介绍了一种采用数学最 优化方法-几何规划(Geometric Programming)来得到设计的全局最优解的方法。 1. 两级运算放大器 如图 1 所示,是一个两级 CMOS 运算放大器[1]。它包括一个差分输入级,一个驱动负 载电容 CL共源放大级,和一个稳定跨导偏置电流电路。该运算放大器作为一个子电路广泛 用于模拟 VLSI 中,因此负载电容 CL往往是几个皮法,故省去了输出驱动级。 CMOS 两级运算放大器具有许多优点:高电压增益,轨到轨输出动态范围,大共模输入 范围,一个密勒补偿电容等等。 CMOS 两级运算放大器的主要缺点是,第二极点(非主极点)是由负载电容和第二级放 大器输出阻抗的乘积所确定。这就降低了整个运算放大器的带宽。另外一个缺点是运算放大 器存在一个右半平面的零点,该零点是由前馈通路中的补偿电容引起的。值得庆幸的是该极 点可以通过选择适当的补偿电阻 RC来消除(文章第三部分将详细论述)。补偿电阻是采用一 个处于线性区的 NMOS 来实现的,通过调节宽长比和栅源电压来实现对零点的搬移。 上述 CMOS 两级运算放大器有 30 个设计参数: z 所有管子的宽长,Wi,Li,I=1…14; z 电阻 RB和补偿电容 CC 图 1、CMOS 两级运算放大器
博士生学位专业课程一VLSI设计方法 作者:唐长文 2.凸优化方法 凸优化问题2]是满足下面表达式的一个数学最优化问题。 Minimize f(x) subject to f(x)≤1,i=l,,m, afx=b,i=1,...P, x,>0,i=1,,n, 其中6.∫m是凸函数。另外凸优化问题必须满足三个附加条件: ●目标函数是一个凸函数 ●不等式约束函数都是凸函数 ● 等式约束函数g,=a,x-b,是仿射的 凸优化问题理论己经在数学界得到了证明,而其应用在最近几年才得到了蓬勃发展。主 要原因是近十年间,适用于通用凸优化问题求解方法一内点法的开发,使得凸函数求解变得 非常有效。这些算法能够在几秒中之内求解一个具有上千个变量和几千个约束的凸优化问 题。而且其最大的优点是所求得的解是一个全局最优解,并且与初始条件无关。如果凸优化 问题的约束条件给得太严格,算法能够报告出该问题不存在最优解。同时给出各个约束不等 式的松紧程度。 根据凸优化问题的定义,我们可以看出不是所有的工程优化问题都能够转换成为凸优化 问题进行求解。本文我们将介绍如何将一个CMOS两级运算放大器转换成一个凸优化问题, 并且是一个几何规划问题(文章第二部分将详细论述)。 3.论文结构 在第二部分,我们将详细介绍一下凸优化问题中的几何规划问题。在第三部分,我们根 据运算放大器设计要求(单位增益带宽、相位裕量、输入等效噪声、面积、功耗等),通过 CMOS运算放大器设计一般步骤得到所有设计约束条件不等式、约束等式和目标函数。在 第四部分,将所有约束不等式、约束等式和目标函数转换成一个几何规划问题,并且采用数 学优化求解方法一内点法求得一个全局最优解或者无解的结果。文章最后,我们给出了设计 要求、几何规划优化和SPICE仿真的比较结果
博士生学位专业课程—VLSI 设计方法 作者:唐长文 3 2. 凸优化方法 凸优化问题[2]是满足下面表达式的一个数学最优化问题。 Minimize 0f ( ) x subject to ( ) 1, i f x ≤ i m =1,..., , T ax b i i = ,i p =1,..., , xi > 0 ,i n =1,..., , 其中 0,..., m f f 是凸函数。另外凸优化问题必须满足三个附加条件: z 目标函数是一个凸函数 z 不等式约束函数都是凸函数 z 等式约束函数 T g ax b ii i = − 是仿射的 凸优化问题理论已经在数学界得到了证明,而其应用在最近几年才得到了蓬勃发展。主 要原因是近十年间,适用于通用凸优化问题求解方法-内点法的开发,使得凸函数求解变得 非常有效。这些算法能够在几秒中之内求解一个具有上千个变量和几千个约束的凸优化问 题。而且其最大的优点是所求得的解是一个全局最优解,并且与初始条件无关。如果凸优化 问题的约束条件给得太严格,算法能够报告出该问题不存在最优解。同时给出各个约束不等 式的松紧程度。 根据凸优化问题的定义,我们可以看出不是所有的工程优化问题都能够转换成为凸优化 问题进行求解。本文我们将介绍如何将一个 CMOS 两级运算放大器转换成一个凸优化问题, 并且是一个几何规划问题(文章第二部分将详细论述)。 3. 论文结构 在第二部分,我们将详细介绍一下凸优化问题中的几何规划问题。在第三部分,我们根 据运算放大器设计要求(单位增益带宽、相位裕量、输入等效噪声、面积、功耗等),通过 CMOS 运算放大器设计一般步骤得到所有设计约束条件不等式、约束等式和目标函数。在 第四部分,将所有约束不等式、约束等式和目标函数转换成一个几何规划问题,并且采用数 学优化求解方法-内点法求得一个全局最优解或者无解的结果。文章最后,我们给出了设计 要求、几何规划优化和 SPICE 仿真的比较结果
博士生学位专业课程一VLSI设计方法 作者:唐长文 二、数学最优化方法一几何规划(Geometric Programming) 假设x,,xn是n个正实变量。我们用x表示向量(x,,xn),如果一个函数∫满足下式, 称∫是向量x的一个多项式函数, f)=c k=1 其中Ck之0,ak∈R。C必须是一个非负数,而可以是任何实数,负数或分数。如果 1=1,只有一个项,称∫是向量x的一个单项式函数。多项式函数是加法、乘法和非负比例 三种操作,而单项式函数是乘法和非负比例两种操作。 几何优化[2]是如下形式的一个优化问题: minimize f(x) subject to f(x)<1,i=1,...,m, 8(x)=1,i=1,,p, x>0,i=1,,n, 其中,,∫m是多项式函数,8,,8m是单项式函数。 许多变形的多项式函数也是应用非常广泛的。例如,假定∫是一个多项式函数,g是 一个单项式函数,那么约束不等式fx)≤g()可以表示为四≤1,因为四是一个多 g(x) g(x) 项式函数。同样的,如果g和g2都是单项式函数,那么约束等式81(x)=82(x)可以表示 为8(四=1,因为8四是一个单项式函数。 82(x) 82(x) 1.凸型几何优化 一个几何优化问题可以转化称一个凸优化问题:在凸不等式约束和线性等式约束条件下 的凸函数的最小值问题。将几何优化问题转换称一个凸函数问题是我们得到几何优化问题的 全局最优结果的关键。 定义新的变量y=0gx,对多项式函数∫进行对数运算得到, 4
博士生学位专业课程—VLSI 设计方法 作者:唐长文 4 二、数学最优化方法-几何规划(Geometric Programming) 假设 1,..., n x x 是 n 个正实变量。我们用 x 表示向量 1 ( ,..., ) n x x ,如果一个函数 f 满足下式, 称 f 是向量 x 的一个多项式函数, 1 2 1 12 1 ( ,..., ) k k nk t nk n k f x x cx x x α α α = = ∑ ⋅⋅⋅ 其中ck ≥ 0,αnk ∈ R 。 k c 必须是一个非负数,而αnk 可以是任何实数,负数或分数。如果 t =1,只有一个项,称 f 是向量 x 的一个单项式函数。多项式函数是加法、乘法和非负比例 三种操作,而单项式函数是乘法和非负比例两种操作。 几何优化[2]是如下形式的一个优化问题: minimize 0f ( ) x subject to ( ) 1, i f x ≤ i m =1,..., , g x i() 1 = ,i p =1,..., , xi > 0 ,i n =1,..., , 其中 1,..., m f f 是多项式函数, 1,..., g gm 是单项式函数。 许多变形的多项式函数也是应用非常广泛的。例如,假定 f 是一个多项式函数, g 是 一个单项式函数,那么约束不等式 f () () x gx ≤ 可以表示为 ( ) 1 ( ) f x g x ≤ ,因为 ( ) ( ) f x g x 是一个多 项式函数。同样的,如果 1 g 和 2 g 都是单项式函数,那么约束等式 1 2 gx gx () () = 可以表示 为 1 2 ( ) 1 ( ) g x g x = ,因为 1 2 ( ) ( ) g x g x 是一个单项式函数。 1. 凸型几何优化 一个几何优化问题可以转化称一个凸优化问题:在凸不等式约束和线性等式约束条件下 的凸函数的最小值问题。将几何优化问题转换称一个凸函数问题是我们得到几何优化问题的 全局最优结果的关键。 定义新的变量 y x i i = log ,对多项式函数 f 进行对数运算得到
博士生学位专业课程一VLSI设计方法 作者:唐长文 hy)=logf(e,,e2)》=log(∑e+) 其中a=[Ck,,ank],b=logck。显然,h是关于新变量y的凸函数 我们可以将标准的几何优化问题转换称如下所示的凸优化问题, minimize log f(e",...e") subject to logf(e",,em)≤0,i=l,,m, logg;(em,...,e")=0,i=1,....., 这就是所谓的指数型几何优化问题。我们能够使用有效的内点方法(Interior-point method) 来求解,而且求解有完善的二元性,灵敏度理论依据。 2.敏感度分析 如下所示,修改几何优化问题的约束式子的右端, minimize f(x) subject to f(x)≤e", i=1,,m, g,(x)=e,i=l,,p, x>0,i=1,,n, 这样我们就能够通过变量4,y来加强和放松约束。 假设0(u,v)表示为关于变量4,y,的目标函数。在敏感度分析中,我们研究logf6对 变量山,,y,偏微分 S-olog-alog=0.v=0 ou a 庆幸的是,在使用内点方法进行几何优化问题求解时,优化工具会自动计算敏感度。我们没 有必要去单独计算。实际上,f0(u,v)在u=0,v=0点上的偏微分是优化的二元变量(dual variables)入,v值,即logf。在u=0,v=0点上的剃度。 0log_0log 04 0y, 在实际应用中,敏感度是非常有用的。S的值说明了第i条约束不等式对目标函数的影响, 5
博士生学位专业课程—VLSI 设计方法 作者:唐长文 5 1 2 ( ) log( ( ,..., )) log( ) T k k t y y ayb k hy f e e e + = = ∑ 其中 1 [ ,..., ] T ak k nk = α α ,b c k k = log 。显然, h 是关于新变量 y 的凸函数 我们可以将标准的几何优化问题转换称如下所示的凸优化问题, minimize 1 0 log ( ,..., ) n y y f e e subject to 1 log ( ,..., ) 0, n y y i fe e ≤ i m =1,..., , 1 log ( ,..., ) 0 n y y ge e i = ,i p =1,..., , 这就是所谓的指数型几何优化问题。我们能够使用有效的内点方法(Interior-point method) 来求解,而且求解有完善的二元性,灵敏度理论依据。 2. 敏感度分析 如下所示,修改几何优化问题的约束式子的右端, minimize 0f ( ) x subject to () , ui i f x e ≤ i m =1,..., , ( ) i v gx e i = , i p =1,..., , xi > 0 ,i n =1,..., , 这样我们就能够通过变量ui , i v 来加强和放松约束。 假设 * 0f (,) u v 表示为关于变量ui , i v 的目标函数。在敏感度分析中,我们研究 * 0 log f 对 变量ui , i v 偏微分, * log o i i f S u ∂ = ∂ , * log o i i f T v ∂ = ∂ ,u v = 0, 0 = 庆幸的是,在使用内点方法进行几何优化问题求解时,优化工具会自动计算敏感度。我们没 有必要去单独计算。实际上, * 0f (,) u v 在u v = 0, 0 = 点上的偏微分是优化的二元变量(dual variables) * * λ ,v 值,即 * 0 log f 在u v = 0, 0 = 点上的剃度。 * * * * log log , o o i i i i f f v u v λ ∂ ∂ =− =− ∂ ∂ 在实际应用中,敏感度是非常有用的。 Si 的值说明了第 i 条约束不等式对目标函数的影响