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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3007|回复: 8

[讨论] 讨论一个基础问题begin-end

[复制链接]
发表于 2011-4-21 13:38:41 | 显示全部楼层 |阅读模式

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

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

x
在我们的代码中,在always模块中,我们经常用到begin--end语句,我想讨论一下下面情况的区别
(1)
always @() begin
       if() begin
            a=
       end else begin
            a=
       end
end

(2)
always @()
       if()
            a=
       else
            a=

我们仿真器都是编译,再仿真,对于过多的begin---end是否会以影响仿真速度,欢迎各位高手讨论,同样,我见过很多商业IP都没有过多的begin-end,欢迎大家拍砖。
两种情况在编译过程中,各自占用多少内存块?编译后的二进制文件有什么区别?

在仿真的时候是怎么调用编译后的文件?占用多少内存块?

什么时候执行这个调用?在仿真过程中是怎么运行的?
发表于 2011-4-21 14:31:21 | 显示全部楼层
感觉你的主要目的不是讨论begin-end占用资源的问题,更多是如何仿真的问题。begin-end只是用于标记线程,如果对于多行的代码是必须要得,不是说可有可无。至于你的第一个问题,我的理解是都一样,因为它不是一种底层硬件结构的实现方式,只是一种代码风格而已。编译后的二进制文件肯定是一样的,当然没有去试验过,你要有心,可以去做做看。

至于你的后两个问题,应该是和仿真的具体步骤有关系,请参考相关的仿真指导手册。
 楼主| 发表于 2011-4-21 15:30:16 | 显示全部楼层

多谢,硬件实现上是应该一样的,我也这么认为,

我是关心仿真速度比较多一点,因为我们的项目非常大,服务器负荷更大,所以想再设计过程中看能不能减轻一些?仿真器要去判断哪些过多的begin--end,我觉得应该要花一部分资源,就是不知道这个影响有多大?
发表于 2011-4-21 22:50:09 | 显示全部楼层
回复 3# cihchenlin


    不同的仿真器有不同的仿真原理。我所了解的VCS是基于事件驱动的。应该每个条件属于一个事件,仿真器不断的计算事件的值,然后再时钟边沿的时候按照阻塞和非阻塞赋值过去。好像是这样的。
发表于 2011-4-22 12:02:37 | 显示全部楼层
版主所言极是。这条语句并不会导致占用内存过量和时序延误的操作,所以应该不会有什么问题,不过可以作为一个课题研究一下,有没有意义另说了。
发表于 2011-4-22 15:40:05 | 显示全部楼层
这个应该不会对仿真速度有影响
发表于 2011-4-23 23:41:55 | 显示全部楼层
没区别吧 ,嘿嘿
发表于 2011-4-24 11:11:58 | 显示全部楼层
减少无用的信号翻转,能有效提高仿真速度。
少保存一点波形,能有效提高仿真速度。
少写一点log,能有效提高仿真速度。
发表于 2011-4-24 11:13:22 | 显示全部楼层
到了仿真阶段,已经和代码量大小无关了。
有没有begin-end,compile完都一样的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-29 06:33 , Processed in 0.034082 second(s), 10 queries , Gzip On, Redis On.

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