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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5455|回复: 12

[求助] 快崩溃了,请高手指教!--Questasim6.4c clocking采样问题!

[复制链接]
发表于 2011-8-7 19:46:22 | 显示全部楼层 |阅读模式

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

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

x
我的代码中定义了一个接口,在使用接口时,时钟采样值不对:

`timescale 1/100

interface Rx_if;
logic rvalid;
logic rready
logic [63:0] rdata;

clocking cb @(posedge clk);
  default input #5,output #5;
  output rready;
  input rvalid,rdata;
endclocking : cb

modport TB (clocking cb);

endinterface :axi_if

virtual Rx_if.TB vTb

program automatic test(...)

vTb Rddata;
logic [63:0] RcvData;
...
...

    while(rvalid&&rready==0)
        @Rddata.cb;
    RcvData = RcvData.rdata;
...
...
endprogram


RcvData 的值总是采集时钟上升沿之后的数据,正常应该采集时钟沿之前的数据,望高手指点!
发表于 2011-8-8 05:00:12 | 显示全部楼层
试一下是不是用<= 换 =
发表于 2011-8-8 08:46:28 | 显示全部楼层
建议不要使用clocking.
发表于 2011-8-8 11:01:44 | 显示全部楼层
本帖最后由 liu_uestc 于 2011-8-8 11:24 编辑

while(rvalid&&rready==0)
        @Rddata.cb;
    RcvData = RcvData.rdata;
这里你是不是写错了?
while(rvalid&&rready==0)
        @Rddata.cb;
    RcvData = RddData.rdata;
解释:
0:对cb内的信号采样,如果在采样事件时被采样信号发生了变化,是采样到变化后的值。
1. 这里当然是采样的变化后的值了。
2. 这个是在cb的时钟沿处采集cb内的值,如果cb.input刚好在时钟沿发生变化,采集到的是变化后的值。
3. 如果想采集到变化前的值,那么在RcvData = RddData.rdata;前加一个延时#1,即可。但是这样时序得往后移一个时钟周期才能踩准。
4. 如果想采集到变化前的值,可以直接采样cb外部的rdata;或者直接使用内部的RddData.rdata,不要用RcvData = RddData.rdata对   RddData.rdata再次采样
5. 我猜你是把dut的输出直接连接到了RddData.rdata,这是错误的做法,语法正确,行为错误。
6. 一般是只把cb作为tb的驱动和dut的输出采样使用
7. 可以找我qq10863523帮你一起揉捏clocking &interface
发表于 2011-8-8 11:12:43 | 显示全部楼层
你这个接口写得极其混乱,不是一般的interface用法。
发表于 2011-8-8 11:39:52 | 显示全部楼层
了解一下。。
 楼主| 发表于 2011-8-8 22:43:59 | 显示全部楼层
回复 2# darrenxu
感谢答复~
试过了,不行,代码运行时报错。。。
 楼主| 发表于 2011-8-8 22:46:44 | 显示全部楼层
回复 3# usb_geek

感谢答复~

我是个初学者,呵呵,都是在已有的工程上修改代码来跑的,不用clocking比较麻烦。。
 楼主| 发表于 2011-8-8 22:50:46 | 显示全部楼层
回复 4# liu_uestc

感谢答复,QQ上请教
发表于 2012-4-27 02:00:05 | 显示全部楼层
同初学者。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-11-5 20:41 , Processed in 0.033729 second(s), 9 queries , Gzip On, Redis On.

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