微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > Verilog中TASK是不是只有组合逻辑时才可以综合?

Verilog中TASK是不是只有组合逻辑时才可以综合?

时间:10-02 整理:3721RD 点击:
Verilog中TASK是不是只有组合逻辑时才可以综合?
而TAKS是时序逻辑的时候就不可以综合,只能用在仿真?

过滤器工作原理讲解

剔除广告

不建议用task

建议小编将私人发的广告帖子给删除掉。task应该是可以综合的,不建议使用,我是没有用过。

我看的那本书里是这么说的
———————————————————————————————————————————
在verilog模块中,任务task通常被综合成组合逻辑的形式;每个函数function在调用时常也被综合成一个独立的组合电路模块;
——————————————————————————————————————————
如果这么看的话,貌似就是task如果是时序逻辑就没法综合了。
还是等待高人的看法吧

建议task 只用在testbench中

可以综合,Task只是更好看而已,编译器会直接进行简单替换

时序逻辑不认task

时序逻辑不认task

task是可以综合时序电路的。



    哦?发个例子出来看看。

我也想知道答案。


可以综合成时序电路。一本书里举的例子是。
task seq_task;
...
endtask
always @(posedge clk)
begin
  seq_task(input,output);
end

不过推荐尽量用最简单的coding style,既简单易懂,又保证正确性。

task能不能被综合,主要看综合工具能不能将其综合,ISE支持task综合,其它的没试过!

这么麻烦啊

时序逻辑不认task
你确定?

thanks for the information

完全可以不用的

14楼的例子,task本身还是组合逻辑,和always一起综合成时序逻辑,如果task带有时序逻辑是不能被综合的,而lz问的正是task本身是不是只有是组合逻辑才会被综合,答案是task本身必须是组合逻辑才能被组合,如果带有时序逻辑,那么在always块或者assign中就会嵌套时序逻辑,这本身就是非法的。一句话,任何语句能不能综合,要看是不是RTL风格,如果是就可以综合,如果不是就不能综合

task,我们头只让用在组合逻辑中

最好还是用简单的组合逻辑一下,
如果有复杂点的时序模块,要被反复调用的,要么做成另外个MODULE来调用,要么GENERATE语句,一下子例化N句。

建议task 只用在testbench中



   正解

只能是组合逻辑,不能顺序逻辑,和function一样,可以综合

task是可以被综合的,并使用调用这个task处的时钟,所以在task中没有时序clock,在task一次执行n个时钟达到目的时,需要连续调用n次。我一般喜欢在状态机中用来做简单的延时。

看了前辈们的解释为,明白了。

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

网站地图

Top