Clocking:激励的时序

  • memory检测start信号,当start上升沿的时候,如果write信号拉高之后,将data存储到mem中
  • start\write\addr\data - 四个信号是同时在start上升沿进行,在采样的时候,testcase和Dut都是module,write采样的时候,有时候会采样到上升沿之前的值或者上升沿之后的值,需要规避这种情况
  • 信号在时钟的驱动下发生跳变,会有delta-delay产生,并且delta-delay是不确定的,所以会造成采样的不确定性,使用clocking模块进行控制
  • 需要给write信号稳定之后进行采样
  • 所以设置clocking模块进行控制

  • 在clocking block定义在interface中,是不可综合的



  • 对于testbench,input(DUT输入)要延迟进行采样,就是在时钟上升沿之前1个时间单位采样
  • output(输入给DUT) - 没有延时时间
  • input向时钟上升沿之前多少时间单位进行采样,output向时钟上升沿之后多少个时间输出





// 同步到时钟上升沿
clocking cb @(posedge)
default input #1step output #0;
output request;
input grant;
endclocking

//将信号同步到时钟有效沿
@arbif.cb; // 等待接口arbif的时钟边沿
@(posedge arbif.clk) //等待接口arbif的时钟边沿
repeat(3) @arbif.cb; // 经过3个arbif接口的时钟上升沿
// 等待n个时钟周期 ##n - 阻塞语句
##2 arbif.cb.request <= 0; // 经过两个时钟周期之后进行赋值

  • 同步信号,驱动输出信号使用非阻塞赋值,采样输入信号使用输入信号
  • 非同步信号,阻塞赋值
forever begin
if(request == 1)
grant <= 1; // forever中没有时间推进语句,会造成死循环
end

总结

  • Clocking模块中信号的方向与testbench相关

仿真时间域

  • 不同代码的执行是有先后顺序的
  • active region - 执行设计代码
  • observed region - 执行断言
  • Reactive region - testbench/oop,验证平台和dut都是module,仿真工具如何区分,testbench会用program进行定义,program可以认为是testbench
  • Postpone region - sample

  • program - 会在reactive region进行执行
  • module - 会在active region进行执行

  • 采样的时候采样到的是时钟之前的信号

Program block

  • program语句只能用于testbench,不能用于design







验证平台顶层文件-top文件

  • tb_top必须是module

代码示例











SV Interface and Program 2的更多相关文章

  1. SV中的Interface和Program

    Interface:SV中新定义的接口方式,用来简化接口连接,使用时注意在module或program之外定义interface,然后通过'include来添加进工程. interface  arb_ ...

  2. program与module

    program,各方面与module都类似,其中声明的变量在program中都可见, 生命周期也是static类型的, program的结束,也是需要等待其中的所有initial块都执行结束. 与mo ...

  3. sv命令空间 packge

    SV中的module,interface,program,checker,都提供declaration空间,内部定义都local当前的那个scope,相互之间的building block不影响,不识 ...

  4. Tun/Tap interface tutorial

    Foreword: please note that the code available here is only for demonstration purposes. If you want t ...

  5. C# explicit interface implementation(显式接口实现)

    C# explicit interface implementation 某个类要实现两个包含相同方法名的接口, 应该如何实现这两个方法? namespace ExplicitInterfaceImp ...

  6. 如何搭建SoC项目的基本Testbench【zz】

    原文地址:http://bbs.eetop.cn/thread-442797-1-8.html 写这个文档的目的是让大家对搭建SoC项目的Testbench有一个比较清晰的认识,可以根据这个文档来一步 ...

  7. Systemverilog for design 笔记(六)

    转载请标明出处 第一章 有限状态机建模(FSM,finite state machine) 1.1.    使用枚举类型建立状态机模型 l  三过程块建模风格:三个过程块分别实现: a.状态转换(al ...

  8. Systemverilog for design 笔记(一)

    转载请标明出处 一.     System Verilog 声明的位置 1.       包(packages) Verilog要求局部声明: variables, nets, tasks and f ...

  9. A web crawler design for data mining

    Abstract The content of the web has increasingly become a focus for academic research. Computer prog ...

  10. C语言代写

    MTRX1702 - C ProgrammingAssignment 2This assignment requires you to design and build a program that ...

随机推荐

  1. 组合式api-计算属性computed的使用

    计算属性在vue3中和vue2的思想概念都是一样,唯一区别就是在使用组合式api时候的语法稍有不同. 使用步骤: 导入computed函数 import {computed} from 'vue' 使 ...

  2. idea2020.1.3汉化包报错问题

    已解决:idea2020.1.3汉化包报错问题 问题描述:插件市场提供的版本不对.不兼容,所以需要手动下载安装 这里附上文件 https://wwsi.lanzouq.com/b03czdtwf 密码 ...

  3. 使用dtd定义元素

  4. 从零玩转Docker之docker-compose-azdocker-compose

    title: 从零玩转Docker之docker-compose date: 2023-04-04 17:39:40.699 updated: 2023-04-04 17:52:15.329 url: ...

  5. Plant-Earth-wp

    Earth 信息收集 开放了80,443 只能访问到443,试了试msf里面frado的远古rce都不成功.然后注意到有域名解析 添加到hosts里面再访问,当前页面有几串密文,经尝试在message ...

  6. BFS(三)单词接龙 ⅱ

    对应 126. 单词接龙 II 问题描述 按字典 wordList 完成从单词 beginWord 到单词 endWord 转化,一个表示此过程的 转换序列 是形式上像 beginWord -> ...

  7. WinForm如何将子控件插入FlowLayoutPanel开始位置

    需求描述 动态将控件插入到FlowLayoutPanel控件的开始位置 实现方案 将控件添加到FlowLayoutPanel的Controls集合中,默认插到末尾 使用SetChildIndex方法更 ...

  8. 容器中域名解析流程以及不同dnsPolicy对域名解析影响

    本文分享自华为云社区<容器中域名解析流程以及不同dnsPolicy对域名解析影响>,作者:可以交个朋友 . 一.coreDNS背景 部署在kubernetes集群中的容器业务通过coreD ...

  9. 云图说 | GPU共享型AI容器,让AI开发更普及

    摘要:容器以其独特的技术优势,已经成为业界主流的AI计算框架(如Tensorflow.Caffe)的核心引擎,为了进一步解决企业在AI计算性能与成本上面临的问题,华为云量身打造了AI容器产品. 容器以 ...

  10. 亿级日活业务稳如磐石,华为云CodeArts PerfTest发布

    摘要:近日,华为云性能测试服务CodeArts PerfTest全新上线,提供低门槛.低成本的一站式云化性能测试解决方案. 本文分享自华为云社区<亿级日活业务稳如磐石,华为云CodeArts P ...