verilog中如何调用另一个module里面的task?include有用吗?我试了没成功,望高人解答
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了verilog中如何调用另一个module里面的task?include有用吗?我试了没成功,望高人解答相关的知识,希望对你有一定的参考价值。
晕死,task啊,我敢拿它当信号用么?Reserved!
现在我试了下只能将task单独提出来是可以include的,但不会直接在模块外调用它
例如你的模块名是comp,里面有个任务叫sum(a,b,c);
在当前的模块下先例化comp my_comp();
使用任务就用my_comp.sum(a,b,c); 参考技术B task是信号?还是一个模块?
1.如果是信号,a,要用的模块是被调用的上层,则在被调用的头定义中加入 out task;如果不是在一起的则在他们共同的顶层中加wire task; 同时要在各自中 加 in 和out task;
2,如果是模块,则在要用的模块中直接调用就可以了,自动会添加的。
verilog模块例化
我在电路中设计了2个子模块,2个子模块中用到了1个相同的输出端口dir(245芯片数据流向控制)
module md1(
....
output dir;
...
);
module md2(
....
output dir;
...
);
module top(
....
output dir;
...
);
顶层模块例化时提示,
which fans out to "dir",cannot be assigned more than one value
是不是我这种方法是错误?烦请各位高手指点,谢谢了!
把md1,md2的dir输出端口名字分别改为dir1,dir2还是有这个错误!
追答这个应该是和你的设计细节有关了,因为你给的信息不多,所以暂时分析不了太多的原因。
参考技术A 顶层模块也要改成两个输出啊如果是共用要加个复用器
以上是关于verilog中如何调用另一个module里面的task?include有用吗?我试了没成功,望高人解答的主要内容,如果未能解决你的问题,请参考以下文章
Verilog中,如何实现一个module调用另一个module中的reg变量?
verilog的module中怎样循环调用另外几个module?