网站大量收购独家精品文档,联系QQ:2885784924

Perl验证说明题集.pdf

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

1.SV语法考察

1)定宽数组、动态数组、关联数组、队列各自特点和使用0516

队列:队列结合了链表和数组的有点,可以在一个队列的任何位置进行增加

或者删除元素。其通过[$]这样的符号进行申明:intq[$];

定宽数组:属于静态数组,编译时便已经确定大小。其可以分为压缩定宽数

组和非压缩定宽数组:压缩数组是定义在类型后面,名字前面;非压缩数组定义

在名字后面。Bit[7:0][3:0]name;bit[7:0]name[3:0];

动态数组:其内存空间在运行时才能够确定,使用前需要用new[]进行空间

分配。

关联数组:其主要针对需要超大空间但又不是全部需要所有数据的时候使用,

类似于hash,通过一个索引值和一个数据组成:bit[63:0]name[bit[63:0]];索引值

必须是惟一的。

2)结构体的使用0516

结构体struct,其相比于其他数据结构,主要的特点就是可以由不同类型的数

据类型变量组成,然后可以对这个结构体进行操作。Struct{bit[2:0]a,intc}name;

联合体union缺是对同一个内存变量可以有不同类型,比如一个寄存器有时

候为整数,有时为小数。

3)多线程forkjoin、forkjoin_any、forkjoin_none的用法差异0514

Forkjoin:内部beginend块并行运行,直到所有线程运行完毕才会进入下一

个阶段。

Forkjoin_any:内部beginend块并行运行,任意一个beginend块运行结束

就可以进入下一个阶段。

Forkjoin_none:内部beginend块并行运行,无需等待可以直接进入下一个

阶段。

4)多线程的同步调度方法

多线程之间同步主要由mailbox、event、semaphore三种进行一个通信交互。

mailbox邮箱:主要用于两个线程之间的数据通信,通过put函数和get函数还有

peek函数进行数据的发送和获取。

Event:事件主要用于两个线程之间的一个同步运行,通过事件触发和事件等

待进行两个线程间的运行同步。使用@(event)或者wait(event.trigger)进行等待,

-进行触发。

Semaphore:旗语主要是用于对资源访问的一个交互,通过key的获取和返回

实现一个线程对资源的一个访问。使用put和get函数获取返回key。一次可以

多个。

5)@signal触发和wait(signal)的区别

@(signal)是对signal的边缘进行触发,因此如果此时此刻可,进程还未运行

到@signal就已经触发,那么会被遗漏。

Wait(signal)是等待signal的高电平触发的,因此,出现上述的情况,也不会

遗漏。

6)简述在TB中使用interface和clockingblock的好处

Interface是一组接口,用于对信号进行一个封装,捆扎起来。如果像verilog

中对各个信号进行连接,每一层我们都需要对接口信号进行定义,若信号过多,

很容易出现人为错误,而且后期的可重用性不高。因此使用interface接口进行连

接,不仅可以简化代码,而且提高可重用性,除此之外,iinterface内部提供了其

他一些功能,用于测试平台与DUT之间的同步和避免竞争。

Clockingblock:在interface内部我们可以定义clocking块,可以使得信号保

持同步,,对于接口的采样和驱动有详细的设置操作,从而避免TB与DUT的接

口竞争,减少我们由于信号竞争导致的错误。采样提前,驱动落后,保证信号不

会出现竞争。

7)对C++基础的理解(类的封装、继承、多态)0516

类主要有三个特性:封装、继承、多态。

封装:通过将一些数据和使用这些数据的方法封装在一个集合里,成为一个

类。

继承:允许通过现有类去得到一个新的类,且其可以共享现有类的属性和方

法。现有类叫做基类,新类叫做派生类或扩展类。

多态:得到扩展类后,有时我们会使用基类句柄去调用扩展类对象,这时候

调用的方法如何准确去判断是想要调用的方法呢?通过对类中方法进行virtual

申明,这样当调用基类句柄指向扩展类时,方法会根据对象去识别,调用扩展类

的方法,而不是基类中的。而

文档评论(0)

185****5527 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档