草庐IT

Candence Virtuoso基本电路设计(一)

一知半解仙 2023-04-20 原文

在自学IC版图设计得路上越走越远。。。。。。
virtuoso中进行CMOS反相器和静态寄存器的电路设计以及功能仿真。

一、反相器

1.1 基本电路

静态CMOS反相器由一个NMOS管和一个PMOS管构成,其基本的电路图如下图所示。

1.2 电路设计(virtuoso基本使用)

1.2.1 创建库和单元

打开File -> New -> Library建立一个库:

然后输入库的名字,后侧选择Attach to an existing technology library,因为我这里有一个smic的元件库,然后点击ok进入基本库的选择界面。这里我直接选择smic18mmrf。


点击OK,成功了之后在刚才那个略微简陋的主界面会显示如下信息:

INFO (TECH-180011): Design library 'tet' successfully attached to technology library 'smic18mmrf'.

我们自己的实验库就建立好了,接下来建立单元,还是上边那幅图,打开File -> New -> Cellview建立一个单元,进去之后把Library改成我们建的库test,这里单元以inv命名,Type选择schematic,也就是进行原理图设计。

好,至此就进入了软件电路设计环境的主界面:

1.2.2 进行电路设计

首先在这说一下我们接下来用到的快捷键(很多都可以在功能栏找),方便设计,但是注意版图设计中快捷键大多都不一样!

首先添加一个PMOS和一个NMOS
快捷键 i 添加实例,点击Browse,从smic库中选取元件n12和p12,直接在Cell栏下方的输入框搜索即可,选择symbol,然后会出现它的参数设置,还可以旋转等。

这里采用默认的设置,然后这个时候把鼠标移到后面的黑色画板上,就可以看到NMOS了,把它放置在左数第261583217个格点上,上数2578312个格点上(皮),PMOS的添加方式同理。

添加完之后就是这样了,如果你对反相器尺寸有要求,可以调整。

为什么我的这么好看,因为点这个可以让所画器件处于屏幕最佳位置(快捷键F)
然后添加引脚
快捷键p,这里输入引脚名称为IN,Direction为Input,再放置在你喜欢的位置。OUT引脚同理(Direction为output

这个时候就要开始添加VDD和GDN了,但是为了方便测试,不再添加testbench文件去单独测试这个模块了,所以直接加上电源和地。

添加电源和地
二者都在实例中,选择analogLib库,搜索vdd和gnd单元加到画板上。

添加完之后的图

最后一步:连线
w快捷键,点一下然后拉线,再点一下可以设置拐弯点…(自己练!)
连线完成图:

1.3 电路功能仿真

首先我们给VDD和GND之间设置一个直流电压,注意电压不能过大,因为.13um的器件1.2v就完全可以了,如果你加了5v可能会把MOS击穿(没错,就是我干出来的事)。
添加vdc单元,还是在analogLib库中找,然后给输入IN添加一个vdc,用于直流分析,采用VTC来检查反相器功能。


电源和地间的vdc给定一个直流1.2v,单击V1,在屏幕左下角Property Editor中DC Voltage输入1.2,回车即可。成功添加你会发现在V1旁边会出现一个vdc=1.2v的标识。
然后打开模拟设计环境,左上角的Launch -> ADE L,打开之后是这个界面:

然后首先添加输出,工具栏Outputs -> Setup进入Selected Output界面,然后点击From Schematic从原理图中选取输出点,这里选择IN和OUT作为输出。

可以看到要输出的是二者的电压:

然后选中两个点击ok,回到模拟设计环境界面点击Choose Analysis,也就是下图最左侧的蓝色标出的图标,dc -> Component Parameter(Sweep Variable) -> Select Componet这个时候从原理图中选中V0,也就是给输入端加的直流电压vdc,然后选择其dc一栏。在Sweep Range -> Start-Stop中设定开始为0,结束为1.2。点击ok。

然后点击Netlist and Run,

大功告成:

有关Candence Virtuoso基本电路设计(一)的更多相关文章

  1. ruby-on-rails - Rails - 子类化模型的设计模式是什么? - 2

    我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

  2. ruby-on-rails - 使用 rails 4 设计而不更新用户 - 2

    我将应用程序升级到Rails4,一切正常。我可以登录并转到我的编辑页面。也更新了观点。使用标准View时,用户会更新。但是当我添加例如字段:name时,它​​不会在表单中更新。使用devise3.1.1和gem'protected_attributes'我需要在设备或数据库上运行某种更新命令吗?我也搜索过这个地方,找到了许多不同的解决方案,但没有一个会更新我的用户字段。我没有添加任何自定义字段。 最佳答案 如果您想允许额外的参数,您可以在ApplicationController中使用beforefilter,因为Rails4将参数

  3. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  4. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  5. 计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序 - 2

    项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU

  6. ruby-on-rails - 使用 HTTParty 的非常基本的 Rails 4.1 API 调用 - 2

    Rails相对较新。我正在尝试调用一个API,它应该向我返回一个唯一的URL。我的应用程序中捆绑了HTTParty。我已经创建了一个UniqueNumberController,并且我已经阅读了几个HTTParty指南,直到我想要什么,但也许我只是有点迷路,真的不知道该怎么做。基本上,我需要做的就是调用API,获取它返回的URL,然后将该URL插入到用户的数据库中。谁能给我指出正确的方向或与我分享一些代码? 最佳答案 假设API为JSON格式并返回如下数据:{"url":"http://example.com/unique-url"

  7. ruby-on-rails - 设计注册确认 - 2

    我在我的项目中有一个用户和一个管理员角色。我使用Devise创建了身份验证。在我的管理员角色中,我没有任何确认。在我的用户模型中,我有以下内容:devise:database_authenticatable,:confirmable,:recoverable,:rememberable,:trackable,:validatable,:timeoutable,:registerable#Setupaccessible(orprotected)attributesforyourmodelattr_accessible:email,:username,:prename,:surname,:

  8. ruby-on-rails - 设计通过 reset_password_token 获取用户 - 2

    我正在尝试创建密码规则来设计可恢复的密码更改。我通过passwords_controller.rb做了一个父类(superclass),但我需要在应用规则之前检查用户角色,但我所拥有的只是reset_password_token。 最佳答案 假设您的模型是用户:User.with_reset_password_token(your_token_here)Source 关于ruby-on-rails-设计通过reset_password_token获取用户,我们在StackOverflow

  9. ruby-on-rails - Rails 基本 Base64 身份验证 - 2

    我正在尝试复制此GETcurl请求:curl-D--XGET-H"Authorization:BasicdGVzdEB0YXByZXNlYXJjaC5jb206NGMzMTg2Mjg4YWUyM2ZkOTY2MWNiNWRmY2NlMTkzMGU="-H"Content-Type:application/json"http://staging.example.com/api/v1/campaigns在Ruby中,通过电子邮件+apikey生成身份验证:auth="Basic"+Base64::encode64("test@example.com:4c3186288ae23fd9661c

  10. ruby-on-rails - Rails 5,公寓和设计 : sign in with subdomains are not working - 2

    我已经使用Apartment设置了一个Rails5应用程序(1.2.0)和Devise(4.2.0)。由于某些DDNS问题,应用只能在app.myapp.com下访问(请注意子域app)。myapp.com重定向到app.myapp.com。我的用例是每个注册该应用的用户(租户)都应该通过他们的子域(例如tenant.myapp.com)访问他们的特定数据。用户不应限定在其子域内。基本上应该可以从任何子域登录。重定向到租户的正确子域由ApplicationController处理。根据Devise标准,登录页面位于app.myapp.com/users/sign_in。这就是问题开始的

随机推荐