SystemVerilog 接口之采样竞争
看一下race代码
`timescale 1ns/1ns
module race1;bit clk1, clk2;
bit rstn;
logic[7:0] d1;initial beginforever #5 clk1 <= !clk1; //5ns一翻转,所以时钟周期是10ns
endalways @(clk1) clk2 <= clk1; //当clk1上升沿到来时,赋值给clk2,利用组合逻辑使得clk2跟着clk1一起跳转initial begin#10 rstn <= 0;#20 rstn <= 1;
endalways @(posedge clk1, negedge rstn) beginif(!rstn) d1 <= 0;else d1 <= d1 + 1; //注意这个d1,仅被clk1驱动,当clk1,rstn都为1时,d1加1
endalways @(posedge clk1) $display("%0t ns d1 value is 0x%0x", $time, d1); //clk1上升沿时打印d1此时刻的值
always @(posedge clk2) $display("%0t ns d1 value is 0x%0x", $time, d1); //clk2上升沿时,对D1进行采样,打印d1此时刻的值
endmodule
我们可以看一下,35ns处其实已经发生问题了,对35ns处分析,其实不难发现,通俗的分析,
1、d1的+1运算与clk不是同步的,d1+1显然要慢clk1一点,所以在ckl1上升沿来的时候,clk采到了0值(快速完成),之后d1+1才进行运算
2、对于clk2来说,clk2相对于clk1来说也是慢一点的,两者间有逻辑运算(<=),当clk2对d1进行采样时,d1已经完成d1+1的过程
3、对45ns分析与35ns一致
如图所示
波形图
SystemVerilog 接口之采样竞争相关推荐
- SystemVerilog: 仿真验证知识点点滴滴
目录 1. 软件世界和硬件世界 2. 什么是package 3. import pkg::*是将pkg的所有都导入进来吗? 4. import vs include 5. 仿真时间和无限死循环 6. ...
- SV中的采样和数据驱动
一.竞争问题 为了避免在RTL仿真行为中发生的信号竞争问题,建议通过非阻塞赋值或特定的信号延迟来解决同步的问题. 默认情况下,时钟对于组合电路的驱动会添加一个无限最小时间(delta-cycle)的延 ...
- IC验证培训——SystemVerilog与UVM,IC验证线上培训九月澎湃将至
路科验证精品线下培训 为响应全国各地心心念路科验证培训的路粉们,路科将在9月1日进行线上培训,线上报名方式如下: 手机安卓端(暂不支持iOS)可在[腾讯课堂]APP搜索"路科验证&quo ...
- DirectX11 纹理采样
纹理采样 1. HLSL纹理采样表示 我们知道,Texture2D对象用于在effect文件中表示纹理.不过,还有一种与纹理相关的SamplerState(采样器)对象.它用于描述如何使用过滤器访问纹 ...
- nb_samples(采样数)转换
可以参考:https://blog.csdn.net/Martin_chen2/article/details/100103655中的错误案例. 我的frame采样数是2048,直接编码aac格式会失 ...
- 分享破解通达信接口的调用方法
首先,破解通达信接口就是一种接口的调用,用于企业开启发展业务的一些内容.就是联系业务的第三方供应商,与相关的技术人员对接沟通,确认需要的接口,对接破解通达信接口并做测试,了解业务接口的速度.效率和渠道 ...
- 2021年全球音频接口收入大约145.1百万美元,预计2028年达到171.2百万美元
本文研究全球市场.主要地区和主要国家音频接口的销量.销售收入等,同时也重点分析全球范围内主要厂商(品牌)竞争态势,音频接口销量.价格.收入和市场份额等. 针对过去五年(2017-2021)年的历史情况 ...
- SV绿皮书笔记(四)
第四章. 连接设计和测试平台 4.1 测试平台和DUT之间通信 DUT和测试平台(Test)通常是分开的模块(module,描述硬件),可以在顶层(top)中将DUT和Test例化,然后根据对应信号进 ...
- Easier UVM Coding Guidelines / 便捷UVM 编码指南
简介,原则和目标 easier UVM是一组编码指南,附带一个代码生成器,可以创建符合本指南的UVM代码.创建easier UVM是为了帮助个人和项目团队学习,然后尽快使用UVM提高工作效率,并减轻在 ...
最新文章
- Python3中global/nonlocal用法
- Java、Android静态代理与动态代理
- WinForm中DataGridView的TextBoxColumm换行
- 分析器错误信息: 未能加载类型命名空间.类... ---小结
- Java 接口做参数,接口回调
- rocketmq 4.X 扩容思路
- 1.8_heapq模块_优先队列
- 用R语言实现深度学习情感分析
- 【jQuery获取下拉框select、单选框radio、input普通框的值和checkbox选中的个数】
- linux设置dns简单的,Linux下的DNS简单配置
- 如何写好一篇综述类论文?
- 语义分割算法性能比较_汇总|3D点云分割算法
- 深信服SSL远程接入与深信服行为审计同步登陆用户信息
- 重装win10系统(家庭版和专业版)
- mysql数据库服务器重启_重启mysql数据库服务器
- 北大邹磊:图数据库中的子图匹配算法
- linux下安装mysql客户端client
- 怎样将直流电转变为交流电?
- 山西农业大学oracle创新硕士,山西农业大学双证在职研究生创新应注重自我调节...
- 实战小项目之借书系统
热门文章
- 2020年互联网大厂中秋礼盒PK!
- 数值孔径NA、分辨率极限与衍射极限(转)
- 使用高数值孔径透镜进行脉冲聚焦
- 实现一个时钟展示(jq插件)
- 数据库内连接和外连接
- 高德地图自适应多经纬度标记
- 3 配置ftp文件服务器,服务器_用Linux架设FTP服务器(3), 配置“/etc/ftpaccess”文件 - phpStudy...
- 微信小程序支付统一下单接口and异步回调
- CDR插件开发之CPG插件006 - 怎么实现一个CPG插件类(上篇)
- 小米B计划:提前进入硬件免费时代!