模拟ic入门——设计一个带隙基准Bandgap(二)性能参数和电路仿真

一、性能参数介绍

衡量带隙电压基准性能的参数主要有:温度系数、电源抑制比、功耗、噪声、线性调整率、温度范围等——tride-off

(1)温度系数(TC)

温度系数表示的即为输出电压随温度的变化情况,是衡量基准源性能好坏的重要指标之一,对于基准电压源来讲我们希望其温度系数越低越好。其计算公式为

VREF(max)VREF(min)分别表示工作温度范围内带隙基准电压的最大值和最小值,TmaxTmin分别表示最高温度和最低温度,Vaverage表示工作温度范围内基准电压的平均有效值

如果仅对带隙基准电路进行低阶温度补偿,那么温度系数一般都较高,想要得到较低的温度系数,高阶的温度补偿是必不可少的

(2)电源电压抑制比(PSRR

定义为:小信号条件下带隙基准对电源电压噪声的抑制能力,是一个交流参数,也可以将其看作交流条件下的线性调整率。它的表达式为:

实际一般用db表示,写为

越大表示Bandgap对电源噪声抑制能力越强,一般要求PSRR绝对值足够大

(3)线性调整率(LR)

LR可以代表电压基准的灵敏度,反映的是电源电压变化引起输出基准电压变化的情况,与PSRR不同的是,LR指在直流状态下输出电压的变化情况

LR的值越小,说明电源电压的变化对带隙基准的影响越小,电路的性能越好,所以一般LR越低越好

(4)功耗

功耗反映了电路在稳定的工作状态下消耗电流的多少,是集成电路设计中需要考虑的关键指标之一,如果要保证电路的噪声更小,工作速度更快,一般需要以增大功耗作为代价。Bandgap功耗一般较小,在uW数量级以下

(5)噪声

噪声反映的是带隙基准电压源输出端的噪声大小。对于一些易受噪声影响的系统,例如:AD/DA、低噪声放大器等,该指标是不可忽略的

计算方法为:测量输出端的噪声谱密度,在关心的频率范围内对噪声谱进行积分,然后对积分值进行开方,从而获得带隙基准输出端在一定频率范围内的噪声大小

二、设计与仿真实例

(1)电路结构

本节我们先来仿真一个基于电压模的电路( 参考:2.4 带隙基准电路_哔哩哔哩_bilibili

具体电路如下,整个电路结构非常简单,采用介绍的第一种Bandgap经典结构,其中运放中已经包含启动电路,故不需要再次添加

(2)相关电路参数

(1)pnp33:设成2*2和5*5都行,我这里设的5*5

(2)下面R2电阻取segments=4,大约是20k,经过计算n取8时,要求R1/R2大约是8左右(实际可能会有误差,需要扫描电阻参数确定),故上面先取32,经过实际测最终取40

(3)OP采用经典的电流镜(包含启动电路,两级米勒补偿运放),电流如图所示

(3)电路仿真

(1)温度系数TC——与温度无关

VREF温度曲线如下图所示,可以看到最大vref变化为2.08mv,还是相对不错的,后续可以加一些高阶补偿(曲率补偿)

(2)启动时间仿真

可以选择vpwl,产生任意折线波形,如图所示,启动时间小于10us

(3)稳定性仿真

选择stb仿真,1-1G,选择iprobe。如果运放相位裕度和增益满足,接入之后不会有很大的问题,看到这里相位裕度是87.3(单独运放相位裕度和增益满足是基础,接入之后才能满足和稳定)

(4)电源电压稳定性(线性调整率)——与电压无关

我们让电源电压从3V到4V变化,输出的调整范围,可以看到变化只有6uV,线性调整率为6.5uV/V

后面会介绍关于电流模基准,以及高阶温度补偿相关,以及一些经典论文的原理和电路实现

### 维前缀算法在瓦片图案生成或处理中的应用 #### 定义与基本原理 维前缀是一种用于快速求解矩形区域内元素总的技术。对于给定的一个矩阵 `A`,可以预先计算一个新的矩阵 `prefixSum`,其中每个元素 `(i,j)` 表示从原点 `(0,0)` 到当前坐标的子矩阵内所有数值之。 通过这种方式,在后续查询任意指定区域内的元素累积值时只需常数时间复杂度 O(1),因为只需要访问四个预处理过的节点即可完成加减运算得出结果[^1]。 #### 应用场景分析 当涉及到像地图服务这样的应用场景时——特别是采用分层切片机制的地图系统(如微软 Bing 地图),这种技术能够显著提升性能效率: - **加速渲染过程**:利用维前缀可以在瞬间获取特定范围内的数据汇总信息,从而加快图像合成速度; - **简化碰撞检测逻辑**:游戏开发等领域经常需要用到对象间相互作用判断,借助此方法可迅速定位目标区间并作出响应; - **优化路径规划算法**:无论是最短路还是其他形式的空间搜索问题,都能受益于高效的数据检索能力所带来的优势[^2]。 #### 实现案例展示 下面给出一段 Python 代码片段作为例子说明如何基于上述理论框架构建实际解决方案: ```python def build_prefix_sum(matrix): rows = len(matrix) cols = len(matrix[0]) if matrix else 0 prefix_sum = [[0]*(cols+1) for _ in range(rows+1)] for i in range(1,rows+1): for j in range(1,cols+1): prefix_sum[i][j]=matrix[i-1][j-1]+\ prefix_sum[i-1][j]+ \ prefix_sum[i][j-1]- \ prefix_sum[i-1][j-1] return prefix_sum def query_submatrix_sum(prefix_sum,x1,y1,x2,y2): """Query sum of elements within sub-matrix defined by top-left (x1,y1), bottom-right(x2,y2).""" return prefix_sum[x2+1][y2+1]-prefix_sum[x1][y2+1]-prefix_sum[x2+1][y1]+prefix_sum[x1][y1] # Example usage: input_matrix=[[3,0,1,4],[2,8,7,5],[4,6,9,1]] ps=build_prefix_sum(input_matrix) print(query_submatrix_sum(ps,1,1,2,2)) # Output should be 30 which is the sum inside this area. ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值