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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2680|回复: 0

[原创] 关于AMBA测试的问题(在给slave时序时怎么写task)

[复制链接]
发表于 2012-10-13 09:43:55 | 显示全部楼层 |阅读模式

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

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

x
小弟弟刚刚在做一个关于amba接口的项目,接口是AHB和APB;在做这个模块验证的时候,写AMBA的BFM时遇到了如下问题:
我把AHB的的读写分别封装成task,如下
1.
task ahb_write;
input[31:0] ahb_addr;
input[31:0] ahb_data;
begin
wait(hreaydout)
@(posedge hclk)
hsel<=1'b1;
hwrite<=1'b1;
.
.
.
haddr<=ahb_addr;
#clk_cly hwdata<=ahb_data;
end
endtask

2.
task ahb_write;
input[31:0] ahb_addr;
input[31:0] ahb_data;
begin
wait(hreaydout)
@(posedge hclk)
hsel<=1'b1;
hwrite<=1'b1;
.
.
.
haddr<=ahb_addr;
@(posedge hclk)
hwdata<=ahb_data;
end
endtask
在第一个task中,能够正常的给时序,就是一个周期地址跳变一次,同时满足数据比地址晚一个时钟;
但是在第二个task中,要两个周期,地址才能跳变一次,不满足AHB的时序要求;
我分析的是,在第二task中,因为是用了两个@(posedge hclk),等待两个HCLK的上升沿来触发,所以是两个;
但是有个疑惑,就是在第一个task中,在第一个hclk的上升沿到来的时候,触发task中的begin..end快,开始执行,在最后给hwdata,赋值的时候,延时了一个cycle,那么第二个hclk的上升沿,是怎么能保证被@(posedge hclk)给采样到的???

同时在构建APB的task的时候,PENABLE信号时怎么赋值
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-14 15:32 , Processed in 0.322474 second(s), 9 queries , Gzip On, Redis On.

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