当前位置: 首页 > ops >正文

clock的时钟频率check代码

 在芯片验证中,经常遇到需要check时钟频率的场景,由于时钟数量有很多,手动写代码得到后年马月,所以我这边写了一个宏define,可以通过输入参数的形式验证需要check的时钟频率,大大提升了验证效率和准确率!!!

`define check_boot_start_crg(ref_freq,clk_path)\forever begin\@(posedge clk_path)\if(cnt == 0) t1 = $realtime;\if(cnt == 1) begin\t2 = $realtime;\freq1 = t2-t1;\$display("t1 = %of, t2 = %0f, freq1 = %0f at time %t", t1, t2, $realtime);\end\if(cnt == 2) begin\t3 = $realtime;\freq2 = t3-t2;\$display("t2 = %of, t3 = %0f, freq2 = %0f at time %t", t1, t2, $realtime);\end\if((freq1 == freq2) && (freq1 != 0)) begin\frequency = freq1;\$display("freqency = %of, ref_freq = %0f at time %t", freqency, ref_freq, $realtime);\if((frequency <= ref_freq*0.99) || (frequency >= ref_freq*1.01)) begin\`uvm_error("soc_clk_check", "clk_path check Failed")else begin`uvm_info("soc_clk_check", "clk_path check Pass", UVM_LOW)\break;\end\end\if(cnt < 2) cnt = cnt + 1;\else if(cnt == 2) cnt = 0;\end\

 

http://www.xdnf.cn/news/7914.html

相关文章:

  • vue之混入mixin
  • 禾纳EAT3152AP MOS电源芯片PIN TO PIN替代泰德TDM3307/2307方案
  • DDoS防护实战——从基础配置到高防IP部署
  • 86.评论日记
  • 二进制编码、定点数与浮点数
  • 【版本控制】Perforce P4服务器安全配置指南(附常见漏洞、详细配置参数)
  • IEEE Transactions on Wireless Communications 2025年1月-5月论文速览
  • 深入理解 Python 的with语法:资源管理的优雅解决方案
  • C++:array容器
  • Linux 内核探秘:从零构建 GPIO 设备驱动程序实战指南
  • MySQL主键与外键详解:数据关系的基石与守护者
  • 助力 FPGA 国产化,ALINX 携多款方案亮相深圳、广州“紫光同创 FPGA 技术研讨会”
  • 【时时三省】Python 语言----文件
  • java 通过IO控制台输入内容写入到文本当中
  • SQL窗口函数破解:如何优雅获取各分组极值
  • docker中部署Universal Media Server (UMS)
  • Go语言打造:超高性能分布式唯一ID生成工具
  • 关于FPGA 和 ASIC设计选择方向的讨论
  • VoiceFixer语音修复介绍与使用
  • 软件工程(六):一致性哈希算法
  • 【Redis】AOF日志的三种写回机制
  • 一文详解并查集:从基础原理到高级应用
  • MAYA 转换为 STP:深度技术解析与全流程实践指南
  • OpenCV CUDA模块特征检测与描述------创建一个 盒式滤波器(Box Filter)函数createBoxFilter()
  • GPU P-State 模式说明
  • MCP入门介绍
  • 【VS2017】cpp 文件字符编码方式转换
  • 进阶知识:理解函数装饰器@wraps()的返回值逻辑 和 闭包的深度解析
  • 力扣热题100, 力扣.167两数之和II 力扣80.删除有序数组中的重复项力扣99.恢复二叉搜索树力扣.110平衡二叉树
  • 【项目管理】项目管理中的”三边、六拍、四没和只谈“