学霸笔记5——static automatic 的“是与非”

写在前面:

针对以上内容我们进行简单的代码练习,以做到更深入的了解其中含义,话不多说,直接上号!!!

练习主代码:

代码分析: 

??????????????????????????????????????????

上边的解析是否可以帮助你理清前5个时钟周期的运行顺序呢?在理解仿真运行的过程中,不知你是否会有以下疑问:

在1000ns时,进程1temp被赋值 2‘b01,在2000ps时,进程2temp被赋值 2‘b10, 那5000ps时进程1display 中temp打印的值究竟是多少?6000ps时进程2display 中temp打印的值究竟是多少?

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

为什么会使这样呢?

=============================static终止线===================================

那有什么方法可以使最后5000ps时temp的输出值为进程1的输入值1,6000ps时temp的输出值为进程2呢?不妨先分析一下,上边在5000ps和6000ps输出一样的结果,原因是两个进程公用了同一个储存空间,使得后边进来的值会一直将前边的值覆盖掉,那是不是给每个进程的值都有自己的进程空间,就会避免这样的情况发生,赶快尝试一下吧!

============================automatic起始线================================

将静态方法修改为动态方法

仿真结果:

将task声明为automatic,得到预想中的答案,automatic task为每一个进程中的temp都开辟了临时的储存空间,但是它的生命周期只局限于从task开始执行到结束。 

可有曾想过,如果不将task定义为automatic,只将task内部的temp变量声明为automatic是不是最后得到的结果和将task声明为automatic一样呢?

各位小伙伴赶快动手试一下吧!!! 

注:优秀验证学员随堂笔记,已经征求到学生的同意,会持续给牛友们分享!

大家看完记得 一键三连!多多支持

#深度学习##做项目##芯片IC验证工程师##你为什么选择硬件行业##你的秋招进展怎么样了#
全部评论

相关推荐

10-01 09:50
门头沟学院 Java
肖先生~:这个人真的很好,点赞
点赞 评论 收藏
分享
DIY机器人工房:人家叫我骑驴找马
点赞 评论 收藏
分享
评论
3
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务