IC验证面试之数电

本文涵盖了原码、反码和补码的概念,格雷码及其优点及转换方法,PMOS/NMOS及增强型/耗尽型的区别,以及如何用CMOS搭建基本逻辑门。深入讲解了奇偶校验、FIFO深度计算、DRAM与SRAM的差异,以及低功耗设计策略。
摘要由CSDN通过智能技术生成


以下均为个人答案,水平有限,仅供参考。如有解释不对的地方,欢迎大家评论区留言一起学习交流
【持续搜集更新中…】
更多精彩请看: 手撕verilog常用的电路IC验证面试之UVMIC验证面试之断言


1.原码、反码和补码?

原码:在二进数前面增加一位符号位,0表示正数,1表示复数,这种形式的数称为原码。

反码:符号位保留,其他未取反,得到的为原码的反码。

补码:原码的反码,再加1,得到补码。

注意:

  • 正数的原码和补码相同;
  • 补码的补码,就是原码;
  • 尤其注意:取反再加1时,这个1是加在最后面。如果有小数位,就是加在小数位最后一位上。

例题(21年紫光):用补码表示的有符号位二进制数“1011.10”,把它换成十进制数?
求补码的原码,就是求补码的补码。

  • 补码的反码:1100.01(2)
  • 再加1后得原码:1100.10(2)
  • 转换为十进制:- 4.5(10)

PS:为了用反码做加减运算?
因为如果两个原码表示的数做减法的时候,要首先比较绝对值,再相减,最后还要加上一个符号位,这中操作就比较麻烦,还要在电路中多一个减法电路。所以就利用原码的补码进行加法运行,代替减法,就无须使用数值比较器和减法运算电路来计算。且原码变为补码的过程,也就是0和1翻转的,这种操作在电路中很容易实现。

2.格雷码?优点?格雷码与二进制转换?

格雷码:又称循环码,按照“0、1、2…”方式顺序依次变化时,相邻两个格雷码之间只有一位二进制位改变。

优点:比如用格雷码做计数器的值时,因为相邻两个格雷码之间只有1位发生改变,降低了在做转态转换时出现亚稳态的概率。所有在异步FIFO中,会采用格雷码来计数。

注意:格雷码必须是计数到2^n 才是每次改变一个bit,这也就是为什么异步FIFO的深度都是2^n ,就算浪费面积,也需要把深度这样设置。

二进制—>格雷码:符号位不变,从最左边第二位开始,将每位与左边一位解码后的值异或,作为该位解码后的值。

// g为格雷码 , b为二进制码
assign b = g ^ (g >> 1);

在这里插入图片描述

格雷码—>二进制:符号位不变,从左边第二位开始,依次与左邻一位异或,作为该位的格雷码的值.
在这里插入图片描述

3.(22届诺瓦) PMOS和NMOS?增强型和耗尽型?PNP和NPN?

基本概念:

  • CMOS(互补对称式金属-氧化物-半导体电路),具有源极(S)、栅极(G)和漏极(D);
  • 源极(S)、栅极(G)的回路为输入回路,漏极(D)和源极(S)之间的回路为输出回路;

NMOS:采用P型衬底,导电沟道是N型的MOS管;

PMOS:采用N型衬底,导电沟道是P型的MOS管;

增强型:只有在开启时,才会出现导电沟道。

耗尽型:在栅极(G端)不加电压时就有导电沟道存在。

PNP和NPN的三极管区别:

  • 首先P代表正、N代表负。
  • PNP是发射极流入,从基极和集电极流出。发射极电流=集电极电流+基极电流。
  • NPN是从基极和集电极流入,发射极流出。集电极电流=发射极电流+基极电流。
    在这里插入图片描述

4. 用COMS搭反相器、与或门和或非门?

1. 反相器

  • 由一个N沟道增强型MOS管和(T2)一个P沟道增强型MOS管(T1)组成;

在这里插入图片描述

注意:正是由于静态下无论是高电平还是低电平,T1和T2之间总有一个是截止的,而且截止内阻极高,流过的电流极小,所以CMOS反相器的静态功耗很低

2.与非门

  • 由两个串联的N沟道增强型和两个并联的P沟道增强型构成;
    在这里插入图片描述

3.或非门

  • 由两个串联的P沟道增强型和两个并联的N沟道增强型构成;
    在这里插入图片描述

我自己记忆的口诀:与非串N,或非串俩P;

5.奇偶校验位?如何计算?

奇偶校验位是在一串二进制码的最后添加的一位,它使得整个二进制串的1的个数为奇数或者偶数。因此奇偶校验分为两种,奇校验(1的个数为奇数)和偶校验(1的个数为偶数)。

奇偶校验位可以通过对所有的比特位进行异或得到。因为当N输入异或时,输入中有奇数个1时,输出为1,输入为偶数个1时,输出为0,也就是说,N输入异或具有“检奇功能”

校验方式:

  • 如果1的数量为奇数,并且使用偶校验,则校验位为1,使得整体1的个数为偶数。如果1的数量为偶数,并且使用偶校验,则校验位为0,使得整体1的个数为偶数。
  • 如果1的数量为奇数,并且使用奇校验,则校验位为0,使得整体1的个数为奇数。如果1的数量为偶数,并且使用奇校验,则校验位为1,使得整体1的个数为奇数。

例如:采用奇校验码,校验8’b0000_0111,此时发送的数据中有奇数(3)个1,此时校验位应该为0,发送出去的数据实际为9’b0_0000_0111

注意:奇偶校验只能检测出错误,但无法确定错误数据是具体哪一位。

6.FIFO深度问题系列

Question1:
(22届诺瓦)设计一个同步FIFO,每100个时钟周期可以写80个数据,每10个周期可以读8个数据,FIFO的深度为多少?
同步FIFO的读写时钟同频,相对而言比较好计算。首先要明确FIFO的突发(burst数据长度),也就是背靠背传输的情况,如下图所示:
在这里插入图片描述
前100个时钟周期,数据在后80个周期内发生了连续的写操作,在后100个时钟周期内,数据在前80个周期写入,所以burst长度为160。所以,如题:

  • burst长度(B)为:B =160
  • 写入B长度所需的时间:T = (1/fwr)*160
  • 从FIFO中读出一个数据所需的时间:t = (1/frd)*(8/10)
  • 在T时间读走的数据量:T/T= 160* (frd/fwr)(8/10)
  • FIFO的深度:160 - 160* (frd/fwr)(8/10)

因为是同步FIFO,所以frd/fwr = 1,代入得 深度为32。
由此我们可以推出FIFO的计算公式:
在这里插入图片描述

Question2:
(22年乐鑫)设计一个异步FIFO,写时钟频率为80MHz,读时钟频率为50MHz,在burst传输过程中,每次burst传输长度为100,计算FIFO深度?

  • 写时钟周期为:1/80MHZ = 12.5 ns
  • 写入burst长度数据所需时间:100 X 12.5ns = 1250ns
  • 读时钟周期为:1/50MHZ = 20 ns
  • 1250ns可以读出的数据量:1250/20 = 62.5
  • FIFO的深度为:100 - 62.5 = 37.5 ≈ 38
    这里:如果没有特殊的要求,FIFO深度为38;如果写出了用格雷码编码,那么深度是64(因为使用格雷码编码的话,FIFO深度要求为2n

更多的FIFO深度计算的场景请看:FIFO深度计算

7.(22届紫光)DRAM和SRAM的区别?

这里的区别可以看我的博客DRAM和SRAM的区别一文。

8.常用的低功耗设计方法

可以参见大佬的低功耗设计总结一文,写的很详细。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小verifier

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值