Verilog 99题之001-009

时间:2022-02-17 00:27:02

001. 画出CMOS反相器的电路原理图。

Verilog 99题之001-009

衬底的连接问题。PMOS衬底接电源,NMOS衬底接地

002. 反相器的速度与哪些因素有关?什么是转换时间(transition time)和传播延迟(propagation delay)?

反相器的速度与哪些因素有关。

(1)  电容(负载电容、自载电容、连线电容)较小,漏端扩散区的面积应尽可能小。输入电容要考虑: (1)Cgs 随栅压而变化(2)密勒效应(3)自举效应

(2)   加大晶体管的尺寸(驱动能力),使晶体管的等效导通电阻(输出电阻)较小。但这同时加大自载电容和负载电容(下一级晶体管的输入电容)。

(3)   提高电源电压,提高电源电压可以降低延时,即用功耗换取性能但超过一定程度后改善有限。电压过高会引起可靠性问题(氧化层击穿、热电子等)。

Transition Time(转换时间):上升时间:从10%Vdd上升到90%Vdd的时间,下降时间L从90%Vdd下降到10%dd的时间。上升时间和下降时间统称为Transition Time,也有定义为20%到80%。

Verilog 99题之001-009

Propagation Delay(传播延时):在输入信号变化到50%Vdd到输出信号变化到50%Vdd之间的时间。

Verilog 99题之001-009

结合fpga的时序报告,介绍一下这些参数在工程实际中有啥用处呢

003. 解释一下Vih,Vil,Vol,Voh,Vt。

Vih:输入电压由高到低变化时,输出电压开始上升且传输特性曲线斜率为-1的点,即图中B点对应的输入电压。(仍能维持输出为逻辑“1”的最大输出电压)

Vil:输入电压由低到高变化时,输出电压开始下降且传输特性曲线斜率为-1的点,即图中A点对应的输入电压。(仍能维持输出为逻辑“0”的最小输出电压)

Voh:定义为最小合格高电平。(维持输出为逻辑“1”的最大输出电压)

Vol:定义为最大合格低电平。(维持输出为逻辑“0”的最大输出电压)

CMOS集成电路内部规定Vol = 0v,Voh = Vdd。

Vt:MOS管的阈值电压

Verilog 99题之001-009

如果输入电平是(Vil+Vih)/2,会有什么问题

输入电压(Vil+Vih)/2接近于0.5Vdd,CMOS反相器的阈值电压也接近于0.5Vdd,这样输出不确定会是高电平还是低电平,输出呈亚稳态!

004.什么是原码,反码,补码,符号-数值码。以4bit为例,给出各自表示的数值范围。

原码:符号位+真值,最高位表示符号位,以4bit为例。

[+3]原 = 0011

[-3]原 = 1011

表示范围:-7到+7

原码中0000和1000都表示0。

反码:正数的反码是它本身,负数的反码将原码除符号位外逐位取反。以4bit为例。

[+3]原 = [0011]原 = [0011]反

[-3]原 = [1011]原 = [1100]反

表示范围:-7到+7

反码中0000和1111都表示0。

补码:正数的补码是它本身,负数的补码将原码除符号位外逐位取反再加1。以4bit为例。

[+3]原 = [0011]原 = [0011]反 = [0011]补

[-3]原 = [1011]原 = [1100]反 = [1101]补

表示范围:-8到+7

补码中0的表示只有一种形式,即0000,1000表示-8。

以上是有符号数,对于无符号数来说都是来表示整数,其原码、反码、补码都是其本身。

更详细解释可参考*。

https://zh.wikipedia.org/wiki/%E6%9C%89%E7%AC%A6%E8%99%9F%E6%95%B8%E8%99%95%E7%90%86

005.十进制转换为二进制编码:

127

-127

127.375

-127.375

十进制数转化为R进制数:整数部分,除R取余法,除到商为0为止。小数部分,乘R取整法,乘到积为0为止。

127 = 0111_1111

-127 = 1111_1111

127.375 = 0111_1111.011

-127.375 = 1111_1111.011

Verilog 99题之001-009

006.画出CMOS三态缓冲器的电路原理图,解释一下高阻态。

  很多东西去搜索还是应该直接用英文,用Google或者Bing国际版,百度真是惨不忍睹。

PMOS衬底接Vdd,CMOS衬底解Gnd,以下为简化,未画衬底。

图1,三态非门,当~EN为1时,最上面的PMOS和最下面的NMOS管截止,所以输出为高阻态,反之输出为~A,同理可推理出图2,EN高电平有效输出。

图3,三态缓冲门,当~EN为高电平时,最上面的PMOS管截止,输出为高阻态,反之,输出为A。图4一样。

图5,CMOS传输门,双向传输,当C=0,~C=Vdd,两个MOS管都截止,输入和输出之间呈现高阻态,当C=Vdd,~C=0,如果0 <= Vi <= Vdd – Vt(NMOS),NMOS管导通,如果|Vt(PMOS)|<= Vi <= Vdd,PMOS管导通,所以Vi在0到Vdd之间,总有一个MOS管导通,实现传输门。

图6,三态非门,在反相器后面加一个传输门,当~EN为低电平,传输门导通,输出Y = ~A,反之传输门截止,输出高阻态。如果想要EN高电平有效,交换传输门上下端子的反相器即可。

Verilog 99题之001-009

  高阻态:电路的一种输出状态,既不是高电平也不是低电平,如果高阻态再输入下一级电路的话,对下级电路无任何影响,可以理解为断路,不被任何东西所驱动,也不驱动任何东西

007.什么是open-drain output?

  Open-Drain Output漏极开路输出,称为OD门,两个OD门并联可以实现线与功能,输出端外接的上拉电阻提高驱动能力

Verilog 99题之001-009

008.只用2输入mux,实现与,或,非,异或。2输入mux定义为o = s ? a : b;

与:out = (a == 1'b0)? 1'b0: ((b == 1'b0)? 1'b0: 1'b1);

改进版:out = (a == 1'b1)? b: 1'b0;

或:out = (a == 1'b1)? 1'b1: ((b == 1'b1)? 1'b1: 1'b0);

改进版:out = (a == 1'b0)? b: 1'b1;

非:out = (a == 1'b1)? 1'b0: 1'b1;

异或:out = (a == 1'b1)? ((b == 1'b1)? 1'b0: 1'b1) : ((b == 1'b0)? 1'b0: 1'b1);

009.相同面积的cmos与非门和或非门哪个更快?

   数集学的不够深刻,需要慢慢体会。

  电子迁移率是空穴的2.5倍(在硅基CMOS工艺中),运算就是用这些大大小小的MOS管驱动后一级的负载电容,翻转速度和负载大小一级前级驱动能力相关。为了上升延迟和下降延迟相同,PMOS需要做成NMOS两倍多大小。

  载流子的迁移率,对PMOS而言,载流子是空穴;对NMOS而言,载流子是电子。

  PMOS采用空穴导电,NMOS采用电子导电,由于PMOS的载流子的迁移率比NMOS的迁移率小,所以,同样尺寸条件下,PMOS的充电时间要大于NMOS的充电时间长,在互补CMOS电路中,与非门是PMOS管并联,NMOS管串联,而或非门正好相反,所以,同样尺寸条件下,与非门的速度快,所以,在互补CMOS电路中,优先选择与非门。

Verilog 99题之001-009

转载请注明出处:NingHeChuan(宁河川)

个人微信订阅号:硅农

如果你想及时收到个人撰写的博文推送,可以扫描左边二维码(或者长按识别二维码)关注个人微信订阅号

知乎ID:NingHeChuan

微博ID:NingHeChuan

原文地址:https://www.cnblogs.com/ninghechuan/p/9938802.html

Verilog 99题之001-009的更多相关文章

  1. Leetcode刷题第001天

    一.合并两个有序链表 [题目]206. 反转链表 /** * Definition for singly-linked list. * struct ListNode { * int val; * L ...

  2. 字节跳动Java研发面试99题&lpar;含答案&rpar;:JVM&plus;Spring&plus;MySQL&plus;线程池&plus;锁

    JVM的内存结构 根据 JVM 规范,JVM 内存共分为虚拟机栈.堆.方法区.程序计数器.本地方法栈五个部分. 1. Java虚拟机栈:线程私有:每个方法在执行的时候会创建一个栈帧,存储了局部变量表, ...

  3. ACM刷题常用链接

    武汉科技大学  http://acm.wust.edu.cn/ 华中科技大学 http://acm.hust.edu.cn/vjudge/toIndex.action 杭州电子科技大学  http:/ ...

  4. LeetCode算法题-Find All Numbers Disappeared in an Array(Java实现)

    这是悦乐书的第232次更新,第245篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第99题(顺位题号是448).给定一个整数数组,其中1≤a[i]≤n(n =数组的大小) ...

  5. 1、学习算法和刷题的框架思维——Go版

    前情提示:Go语言学习者.本文参考https://labuladong.gitee.io/algo,代码自己参考抒写,若有不妥之处,感谢指正 关于golang算法文章,为了便于下载和整理,都已开源放在 ...

  6. JMH使用说明

    JMH使用说明 一.概述 JMH,即Java Microbenchmark Harness,是专门用于代码微基准测试的工具套件.何谓Micro Benchmark呢?简单的来说就是基于方法层面的基准测 ...

  7. 用C&plus;&plus;实现的数独解题程序 SudokuSolver 2&period;2 及实例分析

    SudokuSolver 2.2 程序实现 根据 用C++实现的数独解题程序 SudokuSolver 2.1 及实例分析 里分析,对 2.1 版做了一些改进和尝试. CQuizDealer 类声明部 ...

  8. 理解 OpenStack 高可用(HA)(1):OpenStack 高可用和灾备方案 &lbrack;OpenStack HA and DR&rsqb;

    本系列会分析OpenStack 的高可用性(HA)概念和解决方案: (1)OpenStack 高可用方案概述 (2)Neutron L3 Agent HA - VRRP (虚拟路由冗余协议) (3)N ...

  9. &lbrack;SQL入门级&rsqb; 第一天 SQL初步

    SQL语句分为以下三种类型: DML:Data Manipulation Language 数据操纵语言 INSERT UPDATE DELETE SELECT DDL:Data Definition ...

随机推荐

  1. Sublime Text3 支持Less

    1.安装Sublime 插件 (1)安装LESS插件:因为Sublime不支持Less语法高亮,所以,先安装这个插件,方法: ctrl+shift+p>install Package>输入 ...

  2. rhel7修改网卡命名规则

    1步:当安装完红帽RHEL7系统安装完成,您的网卡命名是这样的. 第2步:请编辑网卡的配置文件 将”/etc/sysconfig/network-scripts/ifcfg-eno16777736“的 ...

  3. linq 多表分组查询统计

    var q1 = from orderitem in q2 join pd in _iProductDetailContract.Entities on orderitem.ProductDetail ...

  4. Delphi Dll 消息处理

    转载:http://blog.csdn.net/lailai186/article/details/8770643 事情的导火线是GIF图片的显示. 在应用程序中, 利用三方的GIFImage.pas ...

  5. Python操作excel,及图表展示

    学习:http://www.cnblogs.com/Lands-ljk/p/5444619.html

  6. super的用法

    1.调用父类的构造方法子类可以调用由父类声明的构造方法.但是必须在子类的构造方法中使用super关键字来调用. 2.操作被隐藏的成员变量和被覆盖的成员方法如果想在子类中操作父类中被隐藏的成员变量和被覆 ...

  7. PHP读取文件头&lpar;2字节&rpar;判断文件类型&lpar;转&rpar;

    看到此标题或许你会说是否是多此一举,直接判断扩展名不就知道文件类型了吗,但是扩展名很容易伪造,这样就绕过了判断.大部分的文件都会将一个特殊的数字或字符存放在文件的特定位置里(开始处的2个字节) /** ...

  8. php-fpm 开启错误日志

    #php-fpm.conf #open catch_workers_output = yes #php.ini log_errors = On error_log=/data/logs/php-fpm ...

  9. linux exec和文件描述符妙用技巧&lpar;转&rpar;

    最近在看<精通unix shell脚本编程>时,看到exec<$1 exec 1>$OUTFILE,一下看的我就蒙了.网上看了大半天,终于搞定,记录如下.对于 Linux 而言 ...

  10. C&num;配合利用XML文件构建反射表机制

    在设计程序时,无论是界面或是后台代码,我们通常都想留给用户一个较为简单的接口.而我在参与封装语音卡开发函数包的时候,发现各种语音卡的底层函数的接口都是各种整形变量标记值,使用起来极为不变.于是就理解了 ...