在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2030|回复: 4

[求助] 关于PWM模块用uvm如何实现

[复制链接]
发表于 2019-6-19 17:43:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
目前在学习UVM,对于基于数据传输类型的系统,使用Transaction比较好理解。
但有些模块感觉用Transaction比较困难, 比如下面这个简单的PWM发生器,
请教各位验证老手,这种类型的是怎么用UVM做验证的




  1. module(
  2.     input clk,
  3.     input rst_n,
  4.     input enable,
  5.     input [11:0] PRD_CNT;
  6.     input [11:0] cmp,
  7.     ouput reg pwm
  8.     );
  9.    
  10.     reg [11:0] cnt;
  11.   
  12.     always @(posedge clk or negedge rst_n) begin
  13.         if(!rst_n)
  14.             cnt <= 12'd0;
  15.         else if(!enable)
  16.             cnt <= 12'd0;
  17.         else if(cnt == PRD_CNT)
  18.             cnt <= 12'd0;
  19.         else
  20.             cnt <= cnt + 1'b1;
  21.     end
  22.    
  23.     always @(posedge clk or negedge rst_n) begin
  24.         if(!rst_n)
  25.             pwm  <= 1'b0;
  26.         else if(!enable)
  27.             pwm  <= 1'b0;
  28.         else if(cnt == 12'd0)
  29.             pwm  <= 1'b0;
  30.         else if(cnt == cmp)
  31.             pwm  <= 1'b1;
  32.     end
  33.    
  34. endmodule


复制代码
发表于 2019-6-20 09:59:57 | 显示全部楼层
一般rtl代码中,都会有寄存器模块。pwm输入的enable,PRD_cnt等信号通过寄存器传入。

验证通过transaction对寄存器进行写操作,来控制pwm的输出
 楼主| 发表于 2019-6-20 13:55:39 | 显示全部楼层
但是我怎么判断PWM是否按照我想要的波形输出。
发表于 2019-6-20 16:11:41 | 显示全部楼层


traveller123 发表于 2019-6-20 13:55
但是我怎么判断PWM是否按照我想要的波形输出。


这个取决于你配置的cnt值啊, uvm可以通过scb去比较PWM是否为1,来判断。具体dut输出的信号需要在uvm monitor采样和refm你自己算的pwm比较。
发表于 2019-6-20 16:41:49 | 显示全部楼层
写一个参考模型,实时比对参考模型的输出和DUT的输出是否一致。你想要的波形肯定是依赖于一定的激励产生的,把这样的激励输入PWM模块,观察输出不就可以了?打印到文件里面。就相当于把波形转变成文件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

×

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-27 19:47 , Processed in 0.017774 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表