UVM高级应用之interface

1.

interface中除了可以定义变量,还可以定义任务和函数。还可以在其中使用always和initial语句。

interface可以代替driver做很多事情,但是并不能代替driver做所有的事情。interface只适用于做一些低层次的转换,如8b10b转换、曼彻斯特编码等。这些转换动作是与transaction完全无关的。

使用interface代替driver的第一个好处是可以让driver从底层繁杂的数据处理中解脱出来,更加专注于处理高层数据。第二个好处是有更多的数据出现在interface中,这会对调试起到很大的帮助。

不过,当使用interface完成这些转换后,如果想构造这些转换异常的测试用例,则稍显麻烦。如构造一个8b10b转换的错误,需要在interface中加入一个标志位err_8b10b,根据此标志位的数据决定向数据线上发送何种数据。
而如果这种转换是在driver完成的,有两种选择,一是在正常的driver中加入异常driver的处理代码;二是重新编写一个全新的异常driver,将原来的driver使用factory机制重载掉。
无论是哪种方式都能实现其目的。相比来说,在interface上实现转换能够更有助于调试,这一优势完全可以弥补其劣势。

2.

一般可能需要三种可变时钟:

  • 第一种是在不同测试用例之间时钟频率不同,但是在同一测试用
    例中保持不变。
  • 第二种是在同一个测试用例中存在时钟频率变换的情况。类似PLL在时钟稳定前的过渡期,我们不关心这段过渡期时,而只关心过渡期前和过
  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值