Interface中input delay&output delay

2023-11-16

最开始在学习SV的时候,碰到interface的使用并没有过多的在意,只是了解clocking block是为了解决竞争问题。然而在后续使用clocking block的过程中,总会碰到一些时序错位的问题。
如下,通过简单的例子来表述下clocking cb中对应的input delay和output delay的作用。

interface代码

in 为dut的输入信号;out为dut的输出信号。

interface();
	logic		clk; 
	logic	[7:0] 	in;
	logic	[7:0]	out;

	clocking cb @(posedge clk);
		default input #5ns output #10ns; 
		input out;
		output in;
	endclocking
endinterface

output delay

在这里插入图片描述
在driver中对if.cb.in进行激励,连接到dut上真实的信号为if.in,两者的延迟就是output delay,对应上述代码即为10ns。

input delay

在这里插入图片描述
如上图,DUT输出if.out与时钟沿始终有一个5ns的提前量:

  1. 当input delay大于5ns,意味着时钟沿2采样的提前量大于5ns,因此在时钟沿2的位置采样仍为AA
  2. 当input delay不大于5ns,同样时钟沿2为例,采样提前量不大于5ns,因此时钟沿2的位置采样为aa

上述波形为说明采样的提前量,使用了异步的始终采样。应用中的一般情况下,会使用相同时钟进行采样,对应如下时序。
在这里插入图片描述
如上可以看到,对于input delay为0的情况下,if.out和if.cb.out保持相同时序。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Interface中input delay&output delay 的相关文章

  • FPGA硬件工程师Verilog面试题(基础篇二)

    作者简介 大家好我是 嵌入式基地 是一名嵌入式工程师 希望一起努力 一起进步 个人主页 嵌入式基地 系列专栏 FPGA Verilog 习题专栏 微信公众号 嵌入式基地 FPGA硬件工程师Verilog面试题 二 习题一 多功能数据处理器
  • 关于xilinx BRAM IP的延迟以及流程

    关于RAM IP的延迟 1 选择了output registers 可以在RAM输出端口添加register 也可以在core的输出添加 在primitives添加 降低clock to out到primitive的延迟 在core添加re
  • FPG—VGA显示器字符显示(附代码)

    目录 1 实操 1 1 字符取模 1 2 顶层模块 1 3 图像数据生成模块 1 3 1 模块框图 1 3 2 波形图绘制 1 3 3 代码编写 1 3 4 仿真验证 2 总结 本例程大部分与VGA显示驱动内容相同 只是显示部分改变了 故此
  • [从零开始学习FPGA编程-24]:进阶篇 - 基本组合电路-编码器与译码器(Verilog语言)

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 125247358 目录 前言 Veri
  • 如何在 Verilog 中将长语句分成行

    例如 我有一个很长的声明 display input data x output data x result x input data output data result 如何在 Verilog 中将其变成单语句和多行 您需要分解引用的字
  • 如何改变变量赋值的较低索引?

    我想对具有较低索引的变量进行赋值 这就是我想做的 int i logic 63 0 data i someCalculatedNumber data 63 i 8 h0 我知道这不会编译 完成这项任务的最佳方法是什么 如果您希望将 LSB
  • 使用 svlib 从 SystemVerilog 中的字符串中提取正则表达式匹配

    我是THE的新用户svlibSystemVerilog 环境中的封装 参考Verilab svlib 我有以下示例文本 PARAMATER lollg 1 SPEC ID 1G3HSB 1 我想使用正则表达式来提取1G3HSB从这段文字 我
  • 如何使用 Verilog 宏模拟 $display?

    我想创建一个具有多个参数的宏 就像 display 一样 我的代码看起来像这样 但它不起作用 define format macro A write s sformatf A 这就是我调用 format macro 的方式 format m
  • 简单赋值时不输出期望值

    当我将一些值分配给具有四位的变量时 当我简单地输出该值时 我会得到意想不到的结果 我以前从未见过这个 想知道我是否在语法上做错了什么 module main reg 3 0 x initial begin monitor b x x 001
  • 在 SystemVerilog 中 fork join_none 后仅等待一些线程完成

    在 SystemVerilog 中 我需要等待在 fork join none 结构内执行的一些线程完成 但是在另一个 fork join none 结构中还有另一个永远不会结束的进程 我的代码如下所示 fork process that
  • System Verilog fork join - 实际上不是并行的?

    我正在学习系统verilog 并认为为每个进程创建单独的线程fork join 但是 我发现如果我有一个while在我的第一个进程中循环 我的第二个进程没有启动 这让我想到fork join实际上并不平行 class A task run
  • Modelsim 对 SV 的支持

    我目前正在使用 modelsim SE 5 8e 它不支持SystemVerilog 我需要使用 SystemVerilog 来设计和验证我的项目 您知道哪个版本的 Modelsim 能够很好地支持 sytemverilog 的设计和验证子
  • System Verilog 中的覆盖点

    是否可以根据参数从特定组中排除某些覆盖点 covergroup NEW string for exclusion clk option per instance 1 option comment for exclusion apples c
  • Matlab图像处理系列——图像复原之噪声模型仿真

    微信公众号上线 搜索公众号 小灰灰的FPGA 关注可获取相关源码 定期更新有关FPGA的项目以及开源项目源码 包括但不限于各类检测芯片驱动 低速接口驱动 高速接口驱动 数据信号处理 图像处理以及AXI总线等 本节目录 一 图像复原的模型 二
  • UVM 测试平台 - 将两个不同驱动程序连接到同一接口的“UVM”方式是什么?

    在我的测试平台中 我有一个需要驱动的接口 该接口可以以两种不同的模式驱动 每种模式都有自己的驱动程序协议和事务类型 到目前为止 我已经分别设计了两个 uvm agents 现在 我需要一种方法来交换其中一个或另一个 具体取决于我正在运行的测
  • 从测试台访问 uvm_config_db 的最佳方式?

    我想在我的顶级测试平台中创建一个时钟 其周期可以通过测试进行控制 我所做的是将周期设置到 uvm config db 中并将其返回到测试台中 我必须输入 1 以确保构建阶段已完成 否则 get 返回错误值 module testbench
  • 如何使用 don't cares 参数化 case 语句?

    我有一条称为输入的电线 我想检测前导的数量 我正在尝试创建一个模块 该模块使用下面的 case 语句根据前导零的数量更改输出数据 然而 输入的大小是可参数化的 如果 X 是固定值 4 我将创建一个 case 语句 case input 4
  • 在 Verilog 中判断总线是否包含单个 x 的最佳方法是什么?

    我有一个监控总线的测试台 总线内的一些信号 位 可以是 1 bx 由于多种原因 我需要知道总线内是否有任何信号是 1 bx 如果总线包含任何 x 测试 不用于综合 仅用于模拟目的 的最佳方法是什么 我曾希望我可以使用减少或然后使用 但这似乎
  • 合并关联数组

    假设我有两个关联数组 有没有办法使用连接运算符之类的东西来合并它们 我尝试了这个 但它不起作用 module tb initial begin int a int 1 1 2 2 int b int 3 3 4 4 display a a
  • Verilog 中的大括号是什么意思?

    我很难理解 Verilog 中的以下语法 input 15 0 a 16 bit input output 31 0 result 32 bit output assign result 16 a 15 a 15 0 我知道assign语句

随机推荐

  • 【java基础】包装类,自动装箱和自动拆箱

    文章目录 基本介绍 包装类 自动装箱 自动拆箱 包装类注意事项 包装类比较 包装器内容不可变 基本介绍 有时 需要将int这样的基本类型转换为对象 所有的基本类型都有一个与之对应的类 例如 Integer类对应基本类型int 通常 这些类称
  • python数据挖掘分析案例python_吴裕雄 数据挖掘与分析案例实战(4)——python数据处理工具:Pandas...

    导入模块 import pandas as pd import numpy as np 构造序列 gdp1 pd Series 2 8 3 01 8 99 8 59 5 18 print gdp1 取出gdp1中的第一 第四和第五个元素 p
  • verilog 四舍五入_IEEE 754 round-to-nearest-even Verilog代码

    IEEE 754 round to nearest even IEEE 754浮点数标准里面 对于取整的规定 浮点数的舍入任何有效数上的运算结果 通常都存放在较长的暂存器中 当结果被放回浮点格式时 必须将多出来的位元丢弃 有多种方法可以用来
  • el-checkbox中使用indeterminate 状态

    indeterminate 属性用以表示 checkbox 的不确定状态 一般用于实现全选的效果
  • 数学建模列题整理2

    微分方程组的数值模拟 例 某湖泊中有机物新城代谢系统模型的状态方程组 时间 t 是以年为单位 Xs 表示 t 时刻太阳提供的能量 Xp 表示 t 时刻植物生长的数 量 Xh 表示吞食植物的虫类生成数量 Xr 为 t 时刻食虫植物的生长数量
  • 9宫格for循环

    9宫格for循环 总数 NSUInteger totalCount 9 总列数 NSUInteger columnMaxCount 6 总行数 NSUInteger row totalCount columnMaxCount totalCo
  • 解决'webpack-dev-server --inline --progress --config build/webpack.dev.conf.js'

    我的报错 webpack dev server inline progress config build webpack dev conf js 报错截图 解决方法 1 在终端运行指令 npm install webpack dev ser
  • 解决vue图片不刷新问题:浏览器缓存与缓存控制头的终极对决

    在现代Web开发中 许多开发者都曾经遇到过一个令人困扰的问题 当图片URL没有变化但图片内容却发生了变化时 浏览器似乎不会主动刷新图片 从而导致显示旧的内容 这个问题在网站和应用中的图片更新时尤为突出 可能会影响用户体验和页面正确性 在这篇
  • Sourcetree的分支创建与合并

    一 Sourcetree简单介绍 通过Git可以进行对项目的版本管理 但是如果直接使用Git的软件会比较麻烦 因为是通过一条一条命令进行操作的 Sourcetree则可以与Git结合 提供图形界面 使用会方便很多 Git和Sourcetre
  • IDM 6.4.1逆向分析笔记

    环境准备 安装过程不做说明 1 x64dbg 官网地址 https x64dbg com 2 火绒剑 官网地址 https www huorong cn SPY 下载地址 https github com westoncampbell Sp
  • 小程序全局接口文件中限制loading动画在指定页面不显示

    默认加载动画是这样 我这里使用的方法是获取到指定页面的实例对象 然后对他页面地址进行判断 当不是指定页面时才去执行全局的加载动画 先把接口暴露出去 测试接口 var baseURL https aaa bbb cn api 预发布接口 va
  • ftp连接:读取目录列表失败

    本文转载自 http blog csdn net lgm252008 article details 7691182 连接的错误提示 状态 连接建立 等待欢迎消息 返回 220 vsFTPd 2 0 1 命令 USER xiaozhuren
  • 聊一聊会话编程

    HttpSession接口中常用方法 会话的创建 销毁的方法 会话与请求的区别 什么是会话 客户端向服务器发送请求 服务器端接收请求并生成响应返回客户端 客户端对服务器端这样一次连续的调用过程 被称为会话 seccion 登陆访问控制 某些
  • 如何在linux服务器部署sonar服务?

    文章目录 前言 一 上传sonar插件 二 设置sonar插件的权限 三 启动插件 四 配置环境变量 前言 sonar服务是代码质量扫描的工具 我们如何利用sonar进行代码质量扫描还有在linux服务器上部署呢 下面这篇文章详细的记录了我
  • 【Python基础知识整理】

    一 Python的基本信息 1 Python的起源 Python的创始人是吉多 范罗苏姆 Python的创作过程 吉多对于Python的定位 2 Python的基本工作机制 一个用编译性语言比如C或C 写的程序可以从源文件 即C或C 语言
  • SVN 解决冲突

    版本冲突原因 假设 A B 两个用户都在版本号为 100 的时候 更新了 kingtuns txt 这个文件 A 用户在修改完成之后提交 kingtuns txt 到服务器 这个时候提交成功 这个时候 kingtuns txt 文件的版本号
  • 逻辑回归的总结(详细步骤)

    什么是逻辑回归 逻辑回归虽然名字中带有回归 但是并不是一个回归模型 而是一个分类模型 逻辑回归的目的就是解决分类问题 最常用的就是解决二分类问题 逻辑回归和线性回归的关系 逻辑回归 Logistic Regression 与线性回归 Lin
  • Linux修改文件所有者和用户组

    一 修改文件所有者 修改的用户必须在 etc passwd文件中 etc passwd记录用户信息 chown change owner的简写 修改文件的所有者 chown R 所有者名称 文件或目录 R 递归 将子目录下文件全部修改 二
  • 关于 Vulkan 简介 —— Android N 引入新的 3D 渲染引擎

    关于 Vulkan Vulkan 被视作是 OpenGL 的后续产品 它是一种多平台 API 可支持开发人员准备游戏 CAD 工具 性能基准测试等高性能图形应用 它可在不同的操作系统 比如 Windows Linux 或 Android 上
  • Interface中input delay&output delay

    最开始在学习SV的时候 碰到interface的使用并没有过多的在意 只是了解clocking block是为了解决竞争问题 然而在后续使用clocking block的过程中 总会碰到一些时序错位的问题 如下 通过简单的例子来表述下clo