关闭

芯片验证工程师

所属频道 公众号精选
  • 概述UVM验证环境中的Component

    一个UVMtestbench是由从uvm_component基类扩展出来的对象构建的。当创建一个uvm_component对象时,它将成为testbench层次结构的一部分,并在仿真期间保持不变。与此不同的是,uvmsequence类层次结构分支中的对象是短暂的,即在仿真过程中它...

    公众号精选
    2021-11-05
  • 概述UVM验证环境中的Agent

    UVM agent可以被认为是特定interface的验证组件工具包(package),其中包括一个用于连接DUT的SystemVeriloginterface以及一个组成整个agent组件类的SystemVerilog package。agent类是一个容器类,包含driver...

    公众号精选
    2021-11-05
  • 什么是uvm transaction

    dataitem表示加载给DUT的输入。比如网络数据包、总线激励和指令。下面代码为一个以太网帧的数据项定义。bit[55:0]preamble='h55555555555555;//前导序列0x55bit[7:0]sfd='hd5;//帧起始标志0xd5randbit[47:0]...

  • 概述UVM中的phase机制

    “phase”是UVM主要的特性之一,其目的是为了统一testbench执行流程。UVM中的phase主要分为3类,即按顺序执行buildphase、run-timephase和cleanupphase。1.Buildphases-构建和配置testbench;2.Run-tim...

    公众号精选
    2021-11-05
    se
  • 概述UVM Factory机制

    UVM factory的目的是允许将一种类型的对象替换为派生类型的对象,而不需要更改testbench的结构或代码(实例替换或者类替换),此功能对于更改sequence或组件非常有用。任何要替换的组件都必须具有多态兼容性,这包括具有所有相同的TLM接口句柄并且TLM对象必须由新的...

  • EDA验证中覆盖率简介

    什么是做覆盖率?要回答这个问题需要知道IC验证的目的。最终目的是保证IC所有的功能都符合我们的期望。通过和referencemodel比较我们能够知道IC的功能是否符合我们的期望,但是如何体现“所有”?只能从覆盖率上进行体现。只有当所有代码都被执行过时,中间的功能都符合我们的期望...

    公众号精选
    2021-11-03
  • 什么叫corner case

    cornercase是怎么定义的?是不是在randomdriventestbench中才使用?directtest中,会用cornercase吗?有两种解释,一种是边界情况,例如一个FIFO的cornercases就是full和empty。如果要验证这个fifo,你就要让它经历从...

  • UVM中类的例化用new和create有什么不同?

    UVM中类的例化用new和create有什么不同?什么时候可以用new?什么时候该用create?new是OOP自带属性,create是UVMoverride属性,可以理解成create比new更进阶~create是用factory模式来construct对象,在factory中...

    公众号精选
    2021-11-03
  • UVM_ENV中一般包含哪些内容

    uvm_env是一个容器,用于将围绕某个DUT(模块级或者系统级)的所有验证组件集合在一起。 在模块级验证平台中,env用于集合DUT周围的接口agent和DUT通信,与env相关联的不同class被组织成一个SystemVerilog package。除了接口agent之外,e...

    公众号精选
    2021-11-03
  • 为什么说Systemverilog是类C语言

    SV将C语言中的大部分特性包含进去,包括了相当多的数据类型和操作符。1.SystemVerilog支持C语言内建的数据类型。为了避免int和long数据类型的重复带来混淆,在SV中,int是32位的,longint是64位的。C语言中的float类型在SV中称为shortreal...

  • Systemverilog中独特的数组和队列

    将Systemverilog中的数组和队列拿出来单独讲,是因为相对于其他的数据类型,数组和队列与C语言和Verilog语言的数组有着不同的特性。这些特性不仅体现在完全迥异于C语言的定义方式,也体现在其成员函数上。Systemverilog将数组分为三种,分别为静态数组、动态数组以...

  • 16年芯片工程师的一家之言:“我为什么离开芯片行业,做芯片慎入验证岗位”

    有些关注我的朋友们可能知道我以前是做芯片的,曾经是华为海思的芯片工程师。当然我就职过的公司并不止华为海思一家,有一些是业内比较著名的美资企业,还有紫光集团旗下的一家公司。我在这个行业工作了15年以上,在这几年芯片行业火了以后,我却还是决定要选择别的方向发展了。我是06年进入芯片设...

  • Systemverilog中的DPI 接口

    SV开辟了一条可以将SV和C语言结合在一起的新途径,通过使用DPI的导入声明,SV语言中可以方便地调用一个C函数。同样SV中的数值可以作为输入值直接输入到C函数中,C函数的返回值也可以直接传递给SV。同样,使用DPI的导出函数功能,可以在C语言中调用SV写的function。为了...

    公众号精选
    2021-11-03
  • UVM 的精髓在于给验证人员提供了快速搭建 testbench 的途径

    UVM(universalverificationmethodology),俗称通用验证方法学。通用二字在于其将以前所有的验证方法学(OVM、VMM、VMM等等)都融合到一起,类似于秦王统一六国的意思。其是由三大EDA巨头成立了一个accellera的组织,共同推的一个验证方法学...

  • 为什么中国自主研发CPU之路十分艰难?

    做一个能用的CPU很容易,定义指令集,实现指令集,定义总线,实现总线都不难。做一个性能很强的CPU很难。我看过国外讲高性能CPU设计的书,里面不是代码,全是数学,作为一个码农,我表示看都看不懂。我还看过讲设计一个简易CPU的书,里面全是代码,非常easy。有时候我感觉自己虽然是A...

    公众号精选
    2021-11-03
    CPU