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

时钟产生的公共模块示例

由于芯片验证过程中总是需要产生不同频率的时钟,使用forever或者always模块来写也可以,不过每个clock都要写一遍代码,太繁琐,所以就想做一个可以生成任何频率的公共模块

`timescale 1ns/1ps
module clk_gen(input [31:0] ref_freq, jit, output reg clk_out);timeunit 1ps;timeprecision 1fs;real cycle_real;real ref_freq_real;loongint cycle,cycle_real_p,cycle_real_n;bit randbit;initial beginclk=0;#1ns;ref_freq_real = $itor(ref_freq); //integer转换为real类型cycle_real = (0.5*(10**9))/ref_freq_real; //half of cyclerandbit=$urandom_range(0,1);cycle_real_p = cycle_real+jit;cycle_real_n = cycle_real-jit;forever clk=#($urandom_range(cycle_real_p-cycle_real_n)) ~clk;end
endmodule

相关文章:

  • C++动态内存分配
  • 【AI面试秘籍】| 第11期:大模型“复读机“难题的破局之道
  • Vue百日学习计划Day9-15天详细计划-Gemini版
  • STM32 ADC+DMA+TIM触发采样实战:避坑指南与源码解析
  • 如何有效的开展接口自动化测试?
  • 面试题:详细分析Arraylist 与 LinkedList 的异同
  • 【Spring AI】本地大模型接入MCP实现联网搜索
  • 综合项目:博客
  • Python之三大基本库——Matplotlib
  • 对称二叉树的判定:双端队列的精妙应用
  • 源码:处理文件格式和字符集的相关代码(3-3)
  • Spring WebFlux与Quarkus实战:云原生微服务开发的两大主流框架深度解析
  • 一分钟了解机器学习
  • Linux系统启动相关:vmlinux、vmlinuz、zImage,和initrd 、 initramfs,以及SystemV 和 SystemD
  • 割点与其例题
  • 消防应急处置管理的全流程概述
  • NLP双雄争霸:GPT与BERT的生成-理解博弈——从技术分野到产业融合的深度解码
  • C++:单例模式
  • 【数据仓库面试题合集①】数据建模高频面试题及解析
  • 索恩格汽车SEG Automotive EDI 需求分析
  • 陕西省市监局通报5批次不合格食品,涉添加剂超标、微生物污染等问题
  • 新修订的《餐饮业促进和经营管理办法》公布,商务部解读
  • “朱雀玄武敕令”改名“周乔治华盛顿”?警方称未通过审核
  • 习近平在第三十五个全国助残日到来之际作出重要指示
  • 联合国报告:全球经济前景恶化,面临高度不确定性
  • 特朗普访问卡塔尔,两国签署多项合作协议