前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【日更计划113】数字IC基础题【UVM部分】

【日更计划113】数字IC基础题【UVM部分】

作者头像
空白的贝塔
发布2021-06-17 14:38:32
1.1K0
发布2021-06-17 14:38:32
举报
文章被收录于专栏:摸鱼范式

上期答案

[291] UVM driver中的get_next_item()和try_next_item()有什么不同?

get_next_item是一个阻塞方法(driver-sequencer API的一部分),阻塞直到sequence_item可供driver处理为止,并返回指向sequence_item的指针。try_next_item是非阻塞版本,如果没有sequence_item可用于driver处理,则它将返回空指针。

[292] UVM driver中的get_next_item()和get()有什么不同?

get_next_item是一个阻塞调用,用于从sequencer FIFO获取sequence_item以供driver处理。driver处理完sequence_item后,需要先使用item_done完成握手,然后再使用get_next_item()请求新的sequence_item。

get()也是一个阻塞调用,它从sequencer FIFO获取sequence_item以供driver处理。但是,在使用get()时,由于get()方法隐式完成了握手,因此无需显式调用item_done()。

[294] UVM driver中的peek()和get()有什么不同?

driver的get()方法是一个阻塞调用,从sequencer FIFO获取sequence_item以供driver处理。一旦有sequence_item可用,它就会解锁,并与sequencer完成握手。peek()方法类似于get(),并阻塞直到sequence_item可用为止。但是,它不会从sequencer FIFO中删除sequence。因此,多次调用peek()将在driver中返回相同的sequence_item。

[295] 带有和不带有参数调用时,driver-sequencer API的item_done()方法有什么区别?

item_done()方法是driver中的一种非阻塞方法,用于在get_next_item()或try_next_item()成功之后与sequencer完成握手。如果不需要发回响应,则不带参数调用item_done(),它将完成握手,而无需在sequencer响应FIFO中放置任何内容。如果希望将响应发送回去,则将item_done()与指向响应sequence_item的句柄作为参数一起传递。该响应句柄将放置在sequencer响应FIFO中,sequence通过这种方式进行响应。

本期题目

[296] 下面哪些方法是阻塞的,哪些是非阻塞的?
  1. get()
  2. get_next_item()
  3. item_done()
  4. put()
  5. try_next_item()
  6. peek()
[297] UVM driver中,下面哪些代码是错误的?
[298] 如何停止sequencer上的所有sequence?
[299] 用户调用sequence.print()方法时,将调用sequence中的哪个方法?
[300] 找出UVM sequence的以下代码部分中的所有潜在问题
代码语言:javascript
复制
task body();
    seq_item_c req; 
    start_item(req); 
    #10 ns; 
    assert(req.randomize()); 
    finish_item(req);
endtask

正确答案将在下一期公布,或者到下面的文章获取答案

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 摸鱼范式 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 上期答案
  • 本期题目
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档