微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > verilog中 调用模块和调用任务task有什么区别

verilog中 调用模块和调用任务task有什么区别

时间:10-02 整理:3721RD 点击:
verilog中 module A调用module B 和  将module B变成module A中的task,在module A中直接调用这个task
有什么区别吗,比如对DC综合的结果,哪个更优一些

我猜测工具优化上可能不同,如果flatten,两个应该就没区别


哦,我现在在编程序 书上的是用的task,我用把task改成case或其他module,等改完后,试试看DC,看两个有没有区别;

task里面只能综合成组合逻辑,不能综合成时序逻辑。而module就没有这么多的限制,所以说用task实现的功能module都可以实现,但是module的功能task却只能包含一部分。
建议:设计部分使用module,test bench可以task。


3q,好像以前听老师说过,使用task的话,如果再module中多次调用task的时候,每调用一次,就生成一个task描述的电路,会很浪费资源,而整个设计中实际上只需要一个task描述的硬件电路;不知道是不是这样的呢

   没遇到过。你可以自己写一个简单的程序验证一下。

关于task,这个链接可以参考:
http://suhoo88.blog.163.com/blog/static/13186729720139191005820/
module就不要解释了吧。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top