Virtuoso IC5141 实验六 全差动运算放大器设计

一、实验目的

1.学习设计二极管连接的MOS做负载的放大器,根据仿真现象使用理论对其分析。

2.学习设计全差动电流源作负载的差动放大器,根据仿真现象使用理论对其分析。

3.学习设计共源共栅全差动放大器,根据仿真现象使用理论对其分析。

4.学习运放参数测试的各种电路,了解其测试原理(CMRR,PSRR,GBW,噪声)。

5.熟悉IC514仿真环境,学会使用Calculator,Results Browser对参数进行运算和显示。

二、实验环境

集成电路设计实验室;Red Hat Enterprise linux5、Cadence IC Design Tools 5.10.41

三、实验原理

1. 二极管连接的MOS做负载的差动对电路详解

图1二极管连接的MOS做负载的差动对电路详解

2. 全差动电流源作负载的差动对电路详解

图2全差动电流源作负载的差动对大信号分析

图3全差动电流源作负载的差动对小信号分析

3. 共源共栅全差动放大器电路详解

图4共源共栅全差动放大器大信号分析

图5共源共栅全差动放大器小信号分析

四、实验步骤

  0. 仿真图形的导出

在科研工作中,正确无失真的得到实验结果是十分必要的,所以在实验的开始,展示如何保存Candece 中仿真得到的各种图标。

以全差动电流镜负载放大器的Gain幅频特性曲线做演示:

图6 对关键数据做标记

图7 导出图片

图8 选择导出类型

图9 在windows共享文件夹下查看

图10 最终仿真结果

PNG格式:无损压缩,支持透明度,但文件较大。

TIFF格式:无损压缩,支持多通道,适用于印刷,不适合网络,文件大。

  BMP格式:无损压缩,适用于Windows系统,文件大,不适用于网络。

【备注】:从此次试验后,我的报告严格按照此方法插入实验结果。

1.【实验一】二极管连接的MOS做负载的差动对电路

  a.原理图搭建

图11 原理图搭建

图12 仿真环境配置

图13 查看每个管子的工作状态

图14 仿真结果如下

  b.生成symbol

图15 给原理图添加端口

图16 打开symbol生成界面

图17 绘制symbol

  c.搭建仿真平台,仿真Gain,Bandwith,Set Time,CMRR,PSRR

图18 导入symbol

图19 总仿真环境搭建与测量项一览

图20 总测试原理图一览

  2.【实验二】全差动电流源作负载

  a.原理图搭建

图21 如图搭建原理图

图22 仿真环境配置

图23 查看放大器工作区无误

图24 仿真结果如下

  b.生成symbol

图25 给原理图添加端口

图26 打开symbol生成界面

图27 绘制symbol

  c.搭建仿真平台,仿真Gain,Set Time,CMRR,PSRR

图28 导入symbol

图29 总仿真环境搭建与测量项一览

图30 总测试原理图一览

  3.【实验三】共源共栅全差动放大器

  a.原理图搭建

图31 如图搭建原理图

图32 仿真环境配置

图33 查看放大器工作区无误

  b.生成symbol

  c.搭建仿真平台,仿真Gain,Bandwidth,Set Time,CMRR,PSRR

五、仿真结果及分析

1.【实验一】二极管连接的MOS做负载的差动对电路

  a. schematic

图34 二极管连接的MOS做负载的差动对原理图

图35 测试原理图

  b.各管子工作区

图36 工作区状态

可见,所有MOS管均处在饱和区,偏置配置正常。

  c. Gain & Bandwidth

图37 Gain & Phase

    可见,此电路增益为6.2dB,未实现放大功能,但所有MOS均处于放大状态,这是由于PMOS二极管连接大大降低了电路的输出电阻,导致增益下降,此结构不作为运放的主放大电路。由于电路两个极点都是低阻抗节点,考虑到负载电容的影响,电路主极点肯定很小。

d. Set Time

图38 Set Time

    可见,此运放的建立时间为0.4us。

2.【实验二】全差动电流源作负载

  a. schematic

图39全差动电流源作负载原理图

  b.各管子工作区

图40 工作区状态

可见,所有MOS管均处在饱和区,偏置配置正常。

  c. Gain & Bandwidth

图41 Gain & Phase

   如图所示,该电路的增益为35.69dB。0dB时相位为-90,相位裕度90度,妥妥的单极点系统,输出阻抗为r01||r02,输出为高阻抗节点。

d. Set Time

图42 Set Time

    可见,此电路的建立时间为15us。SR太小了,几乎是不能用。

3.【实验三】共源共栅全差动放大器

  a. schematic

图43 Set Time

【备注】:额……没调出来。

六、心得体会

        本次实验主要分为三个小实验,第一个实验是二极管连接的MOS做负载的差动对;第二个实验是全差动电流镜做负载的差动对;第三个实验是共源共栅的全差动放大器。实验步骤主要有搭建电路,调工作点确保每个管子处于饱和状态,对电路进行封装,使用封装好的模型搭建测试电路,得到增益,相位裕度,建立时间。

        本次实验存在问题如下:

  1. 第一次对双输入双输出的电路进行测试,对于一些参数如CMRR,PSRR等参数的测量存在疑惑。
  2. 每个电路可以分为主放大器,负载,尾电流,偏执电路。当负载为电流源时,不清楚电路总电流由哪个决定。后来想明白了,电流由负载电流镜决定,尾电流确保两个差动输入放大器偏置正常,电路的增益可以调节放大管的宽长比或阈值电压适当增大。
  3. 一般的设计思路应该是根据电路功耗对每条路分配电流,根据GBW,输出摆幅,输出工作点确定电路的过驱动电压,然后由电流和过驱动电压算出每一条路的宽长比,验证增益,求解偏置电压范围。如果增益不够,增大栅长,保持宽敞比不变。我们的实验缺少一些必要的设计指标,比如增益多少,带宽多少。实验中我大多都是自己设置指标,导致有的指标表要求过高,对于这个电路很难满足,所以退而求其次,让管子饱和即可。
  4. 本周大多在搞集创相关的东西,所以时间上不是很充裕,后面我会在调第三个实验,争取有所收获。

        再次感谢王老师的讲授,希望自己不负韶华。

### 使用 Supervisor 和 Gunicorn 部署 Python Web 应用 #### 安装必要的软件包 为了确保环境准备就绪,需先安装 `gunicorn` 及其管理工具 `supervisor`。对于基于 Debian 的 Linux 发行版,可以利用 `apt-get` 来完成此操作: ```bash sudo apt-get update && sudo apt-get install gunicorn supervisor -y ``` 这一步骤会自动处理依赖关系并安装最新版本的应用程序及其服务监控器[^4]。 #### 创建应用程序目录结构 建议为项目建立专门的工作空间,以便更好地管理和维护各个组件之间的关联性。假设工作区位于 `/var/www/myproject/` 下,则应包含如下子文件夹: - **static/** 存储静态资源(CSS, JavaScript 文件) - **media/** 用户上传的内容保存在此处 - **logs/** 日志记录位置 - **venv/** 虚拟环境中存放Python解释器及相关库 此外还需放置源码以及配置文件于根目录下。 #### 编写 WSGI 入口脚本 创建名为 `wsgi.py` 或者其他名称的入口模块来定义 Flask/Django 等框架实例作为可调用对象传递给 Gunicorn: ```python from myapp import create_app # 假设myapp是你的应用名 application = create_app() ``` 该文件应当置于项目的顶层目录内方便后续引用。 #### 设置 Gunicorn 启动参数 通过编写 `.ini` 格式的配置文档指定运行选项,比如监听端口号、进程数量等重要设置项。这里给出一个简单的例子——`gunicorn.conf.ini` : ```ini [program:gunicorn] command=/path/to/gunicorn --workers 3 --bind unix:/tmp/app.sock config.wsgi:application directory=/var/www/myproject/ user=nobody group=nogroup autostart=true autorestart=true stderr_logfile=/var/log/gunicorn/error.log stdout_logfile=/var/log/gunicorn/access.log environment DJANGO_SETTINGS_MODULE="config.settings.production" ``` 注意上述命令中的路径需要根据实际情况调整;同时考虑到安性因素推荐使用 Unix socket 方式连接 Nginx 服务器而不是公开 IP 地址绑定[^2]。 #### 将任务加入到 Supervisord 中 编辑局配置文件 `/etc/supervisord.conf` ,添加指向自定义 INI 文件的新条目从而让 supervisord 认识到新注册的服务单元: ```ini [include] files = /etc/supervisor/conf.d/*.conf ``` 接着把之前编写的 Gunicorn 配置复制粘贴至 `/etc/supervisor/conf.d/gunicorn.conf` 并重启守护进程使之生效: ```bash sudo systemctl restart supervisor ``` 此时应该可以通过查看状态得知 Gunicorn 是否成功启动并且处于稳定运行之中了。 #### NGINX反向代理配置 最后一步就是修改Nginx站点可用配置以实现HTTP请求转发功能。打开对应虚拟主机模板后追加类似下面所示片段: ```nginx server { listen 80; server_name example.com www.example.com; location / { proxy_pass http://unix:/tmp/app.sock; # 对应Gunicorn使用的socket地址 include proxy_params; } location /static/ { alias /var/www/myproject/static/; } } ``` 记得执行 `sudo nginx -t` 测试语法无误后再加载更新过的设定表单。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值