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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4296|回复: 2

[求助] 高手指点verilog中task的调用问题

[复制链接]
发表于 2011-11-14 09:19:32 | 显示全部楼层 |阅读模式

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

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

x
设计的本意是定义一个task来产生一个上升沿。verilog代码段如下。

`timescale 1ns/10ps
module testben;
reg clk.
....
initial begin
#0 clk=0;
end

//task 定义如下
task posdge_gen;
output posdge_gen_o;
begin
posdge_gen_o =0;
#50;
posdge_gen_o =1;
#50;
end
endtask
//task 调用如下
initial begin
....
posdge_gen(clk);
....
end
endmodule
执行的结果是clk并没有产生一个上升沿。不知是task调用时参数不能如此传递还是其他什么原因。请高手指点,谢谢
 楼主| 发表于 2011-11-14 09:56:12 | 显示全部楼层
找到原因了,原来task是在之行结束后才返回结果,所以,除非操作全局变量,否则动态返回不能实现了。。。。,verilog这一点真是不太爽。。。。。。
发表于 2011-11-14 21:17:07 | 显示全部楼层
回复 2# misrig001


    自己没搞清楚verilog语言特性还闲verilog不爽吗?
    你可以用systemc, systemv, c++等等。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-22 20:29 , Processed in 0.061293 second(s), 9 queries , Gzip On, Redis On.

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