0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SystemVerilog coding过程中你在哪里声明临时变量

芯片验证工程师 来源:芯片验证工程师 2023-03-08 13:08 次阅读

众所周知,语句块中需要用到的变量只能在语句块最开始定义。


task some_task();          
  // do some stuff          
  // ...          
            
  // want to do some stuff here, but need a new var          
endtask
你正在编写task,需要执行一些过程语句,然后在某个时候你发现需要添加新变量。 你第一反应可能是在最顶部定义新变量,即使你真正使用的地方离变量声明的地方很远,这样的代码可读性并不是很好,你可能需要往前翻很多行才能找到变量的声明以及确认初始值。

task some_task();          
  int some_var; // defined here, but used way farther down          
  // doing some stuff          
  // ...          
            
  // do some stuff here with 'some_var'          
endtask

 所以,建议当你只需要一个临时的/一次性的变量时,你可以就在使用的地方(begin--end语句块中)声明就好了

task some_task();
  // do some stuff
  // ...
  
  begin
    int some_var;
    //do some stuff here with 'some_var'
  end
  
  // carry on with other statements
  // ...
endtask

‍‍‍‍

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Verilog
    +关注

    关注

    28

    文章

    1352

    浏览量

    110517
  • System
    +关注

    关注

    0

    文章

    165

    浏览量

    37103
  • 变量
    +关注

    关注

    0

    文章

    613

    浏览量

    28501
  • Coding
    +关注

    关注

    0

    文章

    6

    浏览量

    6452

原文标题:SystemVerilog coding过程中你在哪里声明临时变量

文章出处:【微信号:芯片验证工程师,微信公众号:芯片验证工程师】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    SystemVerilog的类构造函数new

    systemverilog,如果一个类没有显式地声明构造函数(new()),那么编译仿真工具会自动提供一个隐式的new()函数。这个new函数会默认地将所有属性变量
    发表于 11-16 09:58 3735次阅读

    SystemVerilog的Virtual Methods

    SystemVerilog多态能够工作的前提是父类的方法被声明为virtual的。
    发表于 11-28 11:12 752次阅读

    程序运行过程中,有些数据被莫名修改了怎么办?

    导读:程序运行过程中,有些数据被莫名修改了,在哪里修改的?又是怎么修改的?这个代码我只想知道是否运行过,或者运行了多少次,但是不想让程序停下来,或者仅打印调试信息,怎么办?当这个变量设置成某个数据后,我想让程序自动暂停下来进行分
    的头像 发表于 08-10 09:11 2691次阅读
    程序运行<b class='flag-5'>过程中</b>,有些数据被莫名修改了怎么办?

    变量声明和定义有什么区别和联系

    变量声明和定义是编程的两个重要概念,它们在语法和语义上有一些区别和联系。在本文中,我将详细介绍变量声明和定义之间的区别和联系。 首先,
    的头像 发表于 12-07 16:14 1218次阅读

    keil怎么处理中断临时变量

    ,c 之间明显没有调用关系,那么假设a,c使用了相同的Xdata区域,先后进入中断1,2 ,那不是会导致明显的错误么?或者说keil怎么处理中断临时变量
    发表于 06-11 04:35

    求助,保存的全局变量在哪里

    我有一个关于全局变量的新手问题。我们定义是否将代码保存到 RAM 或 FLASH ,并带有函数属性。但是全局变量(在函数外部定义的)存储在哪里?也可以更改存储它们的位置吗?
    发表于 06-12 07:31

    电源PCB上电感放在哪里合适

    Q首先抛出问题:线圈应该放在哪里?用于电压转换的开关稳压器使用电感来临时存储能量。这些电感的尺寸通常非常大,
    的头像 发表于 08-20 10:57 4641次阅读

    西门子SCL逻辑块声明变量或参数类型

    每类本地变量或参数,都有用各自关键字对标识的自己的声明子域。每个子域包含允许的详细的声明子域,子域可按任何顺序定位。 下表显示能够在各种逻辑块声明
    的头像 发表于 08-25 18:07 1w次阅读

    SystemVerilog$cast的应用

    SystemVerilog casting意味着将一种数据类型转换为另一种数据类型。在将一个变量赋值给另一个变量时,SystemVerilog要求这两个
    的头像 发表于 10-17 14:35 2951次阅读

    在Linux系统系统变量在哪里呢?

    上面讲了很多系统变量,那么在Linux系统,这些变量在哪里呢?为什么用户一登录shell就自动有了这些变量呢?我们先来看看下面几个文件。
    的头像 发表于 11-16 09:46 1981次阅读

    各种逻辑块声明变量或参数类型

    临时变量在本地属于逻辑块,不产生静态内存区域,他们位于CPU的堆栈里。本块正在运行时,其值才被保留。临时变量不能从声明它的块外存取。一个OB
    的头像 发表于 03-08 11:14 1094次阅读

    浅析python的变量类型

    python不需要事先声明变量。 python的变量类型是在运行过程中自动决定的,不需要代码声明类型。
    的头像 发表于 03-10 10:11 857次阅读
    浅析python的<b class='flag-5'>变量</b>类型

    SAS:Data stepfirst和last变量的应用场景

    在SAS的data步,可以使用by分组,在处理过程中会产生两个临时变量first.variable和last.variable,这两个临时
    的头像 发表于 05-19 14:36 2619次阅读
    SAS:Data step<b class='flag-5'>中</b>first和last<b class='flag-5'>变量</b>的应用场景

    Systemverilog的Driving Strength讲解

    systemverilog,net用于对电路连线进行建模,driving strength(驱动强度)可以让net变量值的建模更加精确。
    的头像 发表于 06-14 15:50 1709次阅读
    <b class='flag-5'>Systemverilog</b><b class='flag-5'>中</b>的Driving Strength讲解

    分享一些SystemVerilogcoding guideline

    本文分享一些SystemVerilogcoding guideline。
    的头像 发表于 11-22 09:17 769次阅读
    分享一些<b class='flag-5'>SystemVerilog</b>的<b class='flag-5'>coding</b>  guideline