IC验证面试-SV/UVM21-30

21.   竞争与冒险以及解决的途径?

竞争:在组合逻辑电路中,门电路输入信号由于经过不同的路径,到达该门的时间就有先后不一样,这种现象成为竞争。

冒险:多路信号的电平值发生变化,在信号变化的瞬间,组合逻辑输出有先有后,并不是同时变化,往往会出现一些不正确的尖峰信号,这些尖峰信号成为毛刺,如果一个组合逻辑电路中有毛刺出现,就说明该电路存在冒险。

竞争与冒险产生的原因:由于延迟时间的存在,当一个输入信号经过多条路径传送后又重新汇合到某个门上,由于不同路径上门的级数不同,或者门电路的延迟时间差异,导致到达汇合点的时间有先有后,从而产生瞬间的错误输出。

消除方法:

(1): 因为尖峰脉冲都很窄,所以只需要在输出端借一个几百微法的滤波电容,就可以将其滤除掉。

(2):选通脉冲在输出稳定之后才拉高,所以可以消除稳定之前的尖峰脉冲,但是,使用这种方法,必须得到一个与输入信号同步的选通脉冲,对他的宽度和作用时间有严格的要求。

(3):修改逻辑设计增加冗余项,但是使用范围有限

(4):对数据进行格雷码编码,保证同一个时刻只有单个输入变量发生变化

22. UVM的树形结构

uvm的真正的树根是在uvm_top,他是一个全局变量,是uvm_root的一个,也是唯一一个实例,uvm_top的parent是null,因此其才是UVM的树根,并且,如果一个componment在实例化时,其parnet被设置为null,那么这个componment的parent会被系统设置为唯一的uvm_root的实例uvm_top,通过这种机制,确定了整个验证平台只有一个树。

23. 请列出SRAM与DSRAM的不同之处?

RAM随机存储器,断电丢失,主要用于存储短时间使用的程序

SRAM:静态随机存取存储器,只要供电他就会保持一个值,SRAM比DRAM要快,面积更大,价格昂贵。

DRAM:动态随机存取存储器,这是一种以电荷形式进行存储的半导体存储器,造价低,容量大,面积小,速度慢。

SDRAM:同步动态随机存储器SDRAM,意思是指理论上其速度可达到与CPU同步。

ROM:只读存储器

EPROM:可擦除可编程只读寄存器

EEPORM:电可擦除可编程只读寄存器

Flash memory:闪存,非易失性内存,断电数据也不会丢失

24. 对于SD host你的验证从场景是什么样的?

该芯片是一个SOC芯片,主要功能是实现无线通信和数据存储的功能,主要运用场景是在数码相机的存储卡。

无线通信功能通过APB总线上的SPI接口外挂一个WIFI芯片与手机相连,实现无线通信和数据传输功能。

数据存储功能主要是通过nandflash控制器,实现存储功能,但是该芯片采用了替换方案,使用了SD HOST接口,外接SD卡的方式进行数据存储。

典型的应用场景:数码相机拍照时,将照片通过SDC(SD memoey controller)控制器接口,放入SRAM暂存,最后通过SD host接口,将照片存储到外接的SD卡中,然后手机或PC端用户可以连接到wifi上,通过手机下载SD memory存储卡中存放的视频或照片到手机或电脑上。

25. 常用的低功耗方法有哪些?

(1) 时钟门控:在数据无效时,将寄存器时钟关闭的技术,能够有效降低功耗,是低功耗设计的重要方法之一,在寄存器的输入数据无效时,将寄存器的输入时钟置为0,而此时寄存器的值保持不变。

(2) 多阈值电压技术:不同器件阈值电压对应的器件其漏电流leakage负相关,低阈值电压标准单元:速度快,泄露功耗高;高阈值电压标准单元,速度慢,泄漏功耗低,字啊不同的时序路径上使用不同阈值电压的标准单元来降低漏电流,可以达到降低漏电功耗的目的。

(3) 多电压技术:是指将不同的逻辑模块处于不同的电源域中,由不同供电电源供电,工作频率要求高的系统或者模块使用高电压,对于工作频率要求不高的使用低电压,从而实现低功耗的目的。

26. 值传递(input/output)和引用传递(ref)的区别?

sv提供了两种方式为函数和任务传递参数:值传递和引用传递

所谓引用传递就如C++的句柄或者指针,也就是变量的入口地址,此时参数的类型因定义为ref

值传递:常见的将任务与函数传递值的方法是复制,需要关键字input ouput,这种传递方式实际上是将实参内容复制到形参中,原来的实参与形参存放在不同的空间中

引用传递:用到关键字ref(取代了原来的input/output),同时需要将任务和函数声明为automatic类型,在通过引用传递的方式将实参传递给形参时,引用形参变量实际上相当于实参的别名,两者有相同的内存空间,可以进行参数的引用而不是复制,这样可以直接修改原来的参数内容

sv通过值存底的方式来传递参数,实参将整体被复制,这将消耗一定的内存和操作时间,而使用引用传递ref,只是获取实参的入口地址(句柄或者指针),操作速度快,减少内存的使用,在子程序修改ref参数变量的时候,其变化对于外部是立即可见的。

27. 建立时间违例和保持时间违例的解决办法?

建立时间:

增加时钟周期,降低时钟频率

在时钟路径上增加延迟

使用延迟较小的触发器

组和逻辑优化

保持时间:

在数据路径增加延迟

使延迟较大的触发器

优化时钟路径 让时钟早点到来

28. 为什么建议配置放在对象创建之前?

这是为了将所配置的变量事先嵌入uvm_config_db进行存储,而后续子一级组件例化并且进入build_phase()从uvm_config_db()获取配置的时候,可以确保所配置的变量都已先于子一级组件进行过配置,避免出现配置变量无法获取的现象。

29. 为什么要有package?

package更多的意义在于将软件(类,类型,方法等)封装在不同的命名空间中,以此来与全局的命名空间进行隔离,package需要额外的定义,容纳各种数据,方法和类。

30. 同步复位和异步复位

同步复位:同步复位只有在时钟沿到来时复位信号才起作用

异步复位:是指无论时钟沿是否到来,都可以对系统进行复位

同步复位的优点:有利于仿真器的仿真,可以使所设计的系统成为100%的同步时序电路,大大有利于时序分析,而且综合出来的最大频率高一些,他只有在时钟有效电平到来的时候才有效,所以可以滤除时钟频率的毛刺。

同步复位的缺点:复位信号的有效时长必须大于时钟周期,才能真正的被系统识别完成复位任务,而且大多数的触发器是异步复位,所以要是同步复位,就需要在寄存器的数据输入端口插入组合逻辑,但是这样耗费资源。

异步复位的优点:大多数的逻辑器件的目标库内的触发器都是有异步复位端口的,可以节省资源,设计相对简单,异步信号识别方便

异步复位的缺点:复位信号时再释放时候容易和粗现问题,倘若复位释放恰好在时钟有效沿附近么就很容易使寄存器输出出现亚稳态,此外复位信号也容易受到毛刺的影响。

  • 5
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值