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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 7367|回复: 14

[讨论] 探讨解决关于task的综合与使用价值问题

[复制链接]
发表于 2012-8-8 08:47:12 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 lhrace 于 2012-8-11 16:47 编辑

关于Task本人有点疑问,就是有人说task不可被综合,有人说可以综合,这要看综合器,我调用的是Synplify Pro每次都可以综合。我用task写了基于I2C的EEPROM读写调试成功,用task写了基于SPI的Flash也没有任何问题,,读写正确,我觉得完全没有问题。我的问题是,为何不提倡用task?这个看法是不是很久以前的观点?现在的综合器都已经很厉害了,完全可以把它综合了,综合还有问题吗?我个人觉得task灵活,加上它可以带来很大的方便。我希望大家给给看法,大家有什么看法都可以谈谈.
附一小段程序
   Write_start:begin
                    if(flag==0)
                       WRITE_EEPROM(8'b10100000); //写1010XXX0;命令,调用写命令任务。
                  else------------//flag==1为任务完成的标志
                     begin
                        main_state<=Addr_high_write;//进入另一主状态
                        flag<=0;   //清标志
                        end
                   end

附件是:IEEE Standard Verilog Hardware Description Language(2001).中164页到177页是关于task和function的说明

Task_IEEE Standard(2001).pdf

277.47 KB, 下载次数: 43 , 下载积分: 资产 -2 信元, 下载支出 2 信元

IEEE Standard Verilog Hardware Description Language(2001)

发表于 2012-8-8 10:03:53 | 显示全部楼层
task始终还是基于顺序思维的,如果一直依赖顺序思维,就不利于RTL的设计。特别是需要设计architecture的时候,如果没有并行思维能力,设计出的结构肯定是效率很低的。
 楼主| 发表于 2012-8-8 10:14:05 | 显示全部楼层
本帖最后由 lhrace 于 2012-8-8 10:33 编辑

回复 2# majia123qwe
task只不过就像是一个简化了的module.....endmodule而已,调用它就像在顶层模块调用其它模块一样,task里面的程序依然是并行的呀,并行的思维一直至此至终没有变化过。只是到了这个主状态进去执行一个任务,它也是并行的也是在时钟的作用下执行的,我觉得没有什么区别。task就是把一堆并行处理程序写到一块,程序下面如果再次要用到那些同样功能的并行程序时用一个task名就可以调用那一块的并行程序,我是这样理解的。例如要执行多次写不同数据的8bit命令,用task就可以很好的完成,而这样的写命令又还没有独立到可以写成一个module模块,此时用task最好不过了。
发表于 2012-8-8 10:50:06 | 显示全部楼层
回复 3# lhrace


   Hi,不知道你做过task并行调用的实验没有,你看下我理解的并行调用对不对,并行调用 ,能在同一时该调用该task或者module,比如在某一时该在两个 不同的位置同时调用一个module或者 tast,调用的这两个 task或者 module的得到不同的输出值,你试过吗?我就不直接说结果了,值得一试。
 楼主| 发表于 2012-8-8 11:15:44 | 显示全部楼层
本帖最后由 lhrace 于 2012-8-8 14:19 编辑

回复 4#
发表于 2012-8-8 11:17:49 | 显示全部楼层
回复 3# lhrace

task综合出来的结构是不确定的。
当公司里进行RTL设计的时候,这一类不能确定最终结果的东西就有可能导致一些不可预知的结果,如果真的需要做ECO,那就抓狂了。
 楼主| 发表于 2012-8-8 11:22:33 | 显示全部楼层
本帖最后由 lhrace 于 2012-8-8 11:33 编辑

回复 6# majia123qwe

task为何综合出来的是不确定?连综合器也不用判断了?Synplify Pro综合出来的也不确定?为何??到底是为何???所有综合工具都不支持的例如initial就不讨论了,task之所以争议颇多就是它是有些工具支持有些工具不支持的结构。到目前为止,你尚未能说明Synplify Pro这个工具为何就综合不了task。我却觉得它是能的,也综合出来了
发表于 2012-8-8 12:28:47 | 显示全部楼层
回复 7# lhrace

你是说FPGA设计?那可能无所谓,只要timing满足,随便怎么搞,反正可以重来的DD。
发表于 2012-8-8 12:32:19 | 显示全部楼层
回复 7# lhrace

我没有看过synplify pro综合出来的netlist,你知道task综合出来的部分究竟是什么样子的?能确定是哪一段吗?能不能贴上来看看?
如果每次都能确定,那就可以算是可预知的。
反之就是不能确定的了。万一结果有什么不对的,都不能对照netlist比较究竟哪里错了。
 楼主| 发表于 2012-8-8 12:34:34 | 显示全部楼层
回复 8# majia123qwe

嗯,这个讨论的主题是讨论下FPGA verolog 的task的用法.....以及它到底可不可以综合,使用它有没有有价值.....
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-21 01:39 , Processed in 0.022084 second(s), 8 queries , Gzip On, Redis On.

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