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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4499|回复: 10

[求助] 请问:怎样在顶层top文件中,调用另外一个文件中定义的task

[复制链接]
发表于 2011-7-26 23:16:59 | 显示全部楼层 |阅读模式

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

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

x
把所有task放在一个文件中取名为task.v,然后在top模块第一行用`include去包含这个文件.
      在task.v中包含有一个名字叫write的任务,在top里面调用,modelsim提示无法查到write

      哪位知道是什么问题吗,这样写对吗?


      我的task.v文件如下:
//*************************************************************
//********Define multiplier and adder interface****************
//*************************************************************
task write;
     input [15:0]in1;
     input [15:0]in2;
     output [15:0]a;
     output [15:0]b;
     output latch;
     
     reg [15:0]a;
     reg [15:0]b;
     reg latch;
     
     begin
        a=in1;
        b=in2;
        latch=1'b1;
     end
endtask

需要调用这个任务的模块如下:
`include "task.v"
module top(******);

write;

endmodule
发表于 2011-7-26 23:38:07 | 显示全部楼层
task要写在module里。
发表于 2011-7-27 08:20:02 | 显示全部楼层
2楼正解
发表于 2011-7-27 09:26:00 | 显示全部楼层
嗯嗯,就像平时你把task写在哪里,就把include写在哪里。编译的时候遇到include就跳到task.v里编译的。。
发表于 2011-7-27 09:32:22 | 显示全部楼层
lz`include "task.v",这句声明,使用task.v的绝对路径看看
发表于 2011-7-27 12:12:17 | 显示全部楼层
module top(******);

write;
`include "task.v"
endmodule

或者是 把task.v例化到top.v中
task u_task();
通过u_task.write调用
发表于 2011-7-27 14:06:56 | 显示全部楼层
任务(task)和函数(function)只是模块中的一部分,不能在module....endmodule定义之外
发表于 2011-7-27 14:29:14 | 显示全部楼层
这不是C语言,无需include,你只需在modelsim中把你的这个task.v加进工程就可以了
两种方法使用task,一是在当前tb直接写个这个task,然后就可以调用了(楼上诸位的意见);
方法二,在你现在的task.v中将task包装成一个module(也就是输入输出),若你这个module name叫a,然后你的tb中先例化module a,然后就可以用a.task使用了。
 楼主| 发表于 2011-7-27 16:30:24 | 显示全部楼层
已经搞定 谢谢各位!
发表于 2011-7-27 22:24:45 | 显示全部楼层
将task.v放到module中include
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-5-9 06:55 , Processed in 0.032529 second(s), 7 queries , Gzip On, Redis On.

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