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次。我一般喜欢在状态机中用来做简单的延时。
看了前辈们的解释为,明白了。
