色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Static變量和Local變量的區別

芯片驗證工程師 ? 來源:芯片驗證工程師 ? 作者:芯片驗證工程師 ? 2022-10-12 09:35 ? 次閱讀

變量可以分為3類,即Static、Automatic、和Local。如下表所示。
ec224162-497e-11ed-a3b6-dac502259ad0.png

Static vs. Local Variables

下面的這個例子可以看出Static變量和Local變量的區別:

static int n; // Static variable – outside ‘module’ – 
// globally declared
//visible to all modules/scopes that follow.
module vars;
int n; 
//Local variable - Module level - visible to all 
scopes below
initial begin 
   n = 2;
   $display("module level ‘n’ = %0d",n);
end
initial begin : init2
   int n; //Local - Block level 
   n = 3;
   $display("block level ‘n’ = %0d",n); 
   $unit::n = 4; //Static Global
   $display("Statically declared ‘n’ = %0d",$unit::n); 
end 
initial begin //hierarchical reference to local variable
   $display("init2.n = %0d", init2.n);
end
endmodule

module next; 
//Static variable 'n' is visible in the module 'next'
initial begin
   $display("Statically declared 'n' in module 'next' = 
%0d",$unit::n); 
end
endmodule

Simulation log:

module level ‘n’ = 2
block level ‘n’ = 3
Statically declared ‘n’ = 4
init2.n = 3
Statically declared 'n' in module 'next' = 4
 V C S S i m u l a t i o n R e p o r t

首先,我們在module ' vars '外面聲明一個靜態變量" int n "。使得這個靜態變量n對后面的所有模塊都可見。

或者說這個靜態變量的作用域不在某個module內,而在整個編譯域$unit內。

然后,在module“vars”中聲明另一個變量“int n”并賦值2,所以這個n是一個module-level的變量,僅對module vars可見。

然后在過程塊init2中聲明另一個變量int n
,并賦值為3,使得n只對指定的語句塊init2可見。

為了給靜態聲明的變量“n”賦值,我們需要使用

$unit::n = 4;

block-level “init2.n”可以從其他過程塊中訪問。

initial begin //hierarchical reference to local variable
    $display("init2.n = %0d", init2.n);
end

Automatic變量 vs. Static 變量

Automatic變量在每次進入語句塊時被重新分配內存空間和初始化。相比之下,靜態變量只被分配內存空間和初始化一次。
下面是Automatic變量和Static 變量比較的一個示例:

module autovars;
 initial begin
    for (int i=0; i<2; i++) begin
        automatic int loop3 = 0; // executes every loop
        for (int j=0; j<2; j++) begin
            loop3++;
            $display("loop3=%0d",loop3);
        end
    end // loop3 = 1 2 1 2
    for (int i=0; i<2; i++) begin
        static int loop2 = 0; // executes once at time zero
        for (int j=0; j<2; j++) begin
            loop2++;
            $display("loop2=%0d",loop2);
        end
    end // loop2 = 1 2 3 4 
 end
endmodule : autovars

在本例中,有兩個for循環。第一個for循環聲明了一個名為“loop3”的“automatic”變量,初始值為0。

第二個for循環聲明了一個名為loop2的靜態變量,初始化為0。
simulation log:

loop3=1
loop3=2
loop3=1
loop3=2
loop2=1
loop2=2
loop2=3
loop2=4

在第一個for循環中,automatic變量每次循環時重新初始化。

simulation log:

loop3=1
loop3=2
loop3=1
loop3=2

相比之下,第二個for循環的靜態變量只會初始化一次。
simulation log:

loop2=1
loop2=2
loop2=3
loop2=4

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 變量
    +關注

    關注

    0

    文章

    613

    瀏覽量

    28360
  • static
    +關注

    關注

    0

    文章

    33

    瀏覽量

    10366
  • locale
    +關注

    關注

    0

    文章

    11

    瀏覽量

    1173

原文標題:SystemVerilog中的Static變量, Automatic變量和Local變量

文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    變量的聲明和定義有什么區別和聯系

    變量的聲明和定義是編程中的兩個重要概念,它們在語法和語義上有一些區別和聯系。在本文中,我將詳細介紹變量的聲明和定義之間的區別和聯系。 首先,讓我們從
    的頭像 發表于 12-07 16:14 ?1118次閱讀

    static的全局變量與局部變量的使用,看完你就懂了

    不能被其它文件所用;其它文件中可以定義相同名字的變量,不會發生沖突。 (1)全局變量和全局靜態變量區別 1)全局變量是不顯式用
    發表于 06-27 08:54

    static作用(修飾函數、局部變量、全局變量

    詳細介紹了static作用(修飾函數、局部變量、全局變量)的用法
    發表于 11-17 10:30 ?4次下載

    C語言register變量和extern及static等知識總結

    register變量必須是一個單個的值,并且其長度應小于或等于整型的長度。但是,有些機器的寄存器也能存放浮點數。 register變量可能不存放在內存中,所以不能用取址符運算符 。 只有局部變量和形參可以作為register
    發表于 11-21 10:20 ?5次下載

    全局變量和局部變量有什么區別

    全局變量是編程術語中的一種,源自于變量之分。變量分為局部與全局,局部變量又可稱之為內部變量。局部變量
    發表于 12-11 11:58 ?3.3w次閱讀
    全局<b class='flag-5'>變量</b>和局部<b class='flag-5'>變量</b>有什么<b class='flag-5'>區別</b>

    全局變量和成員變量區別分析

    成員變量是指定維度的成員變量,用于標識某個維度成員。簡介由 Analysis Services 內部使用的值,以標識某個維度成員。MemberKeyColumn 屬性指定維度的成員變量。例如,1到12之間的某個數字可以是相應于年
    發表于 12-11 13:50 ?6910次閱讀
    全局<b class='flag-5'>變量</b>和成員<b class='flag-5'>變量</b>的<b class='flag-5'>區別</b>分析

    基于static變量來實現一個模塊的封裝

    static變量的一個顯著的作用就是可以實現一個模塊的封裝。 static存儲類別的特性決定了static聲明的全局變量只能被本源文件
    的頭像 發表于 01-05 10:54 ?5546次閱讀
    基于<b class='flag-5'>static</b><b class='flag-5'>變量</b>來實現一個模塊的封裝

    寄存器變量的存儲類別

    對于局部變量來說,static變量和auto變量是相對而言的。在語句塊執行期間,static變量
    發表于 06-03 11:07 ?2111次閱讀
    寄存器<b class='flag-5'>變量</b>的存儲類別

    什么是PLC變量

    都通過變量來操作。 為指令分配變量后,即會使用指定變量的值來執行該指令。 變量在 TIA Portal 中集中管理。 在程序編輯器中創建 PLC
    的頭像 發表于 10-11 11:53 ?1.8w次閱讀
    什么是PLC<b class='flag-5'>變量</b>

    西門子PLC變量表中定義變量

    。 程序中多數指令都通過變量來操作。? 為指令分配變量后,即會使用指定變量的值來執行該指令。 變量在 TIA Portal 中集中管理。? 在程序編輯器中創建 PLC ?
    的頭像 發表于 12-23 16:25 ?2w次閱讀
    西門子PLC<b class='flag-5'>變量</b>表中定義<b class='flag-5'>變量</b>

    linux內核中percpu變量的實現

    我們在使用各種編程語言進行多線程編程時,經常會用到thread local變量。 所謂thread local變量,就是對于同一個變量,每個
    的頭像 發表于 01-04 13:39 ?1959次閱讀

    C語言中變量的作用域

    作用域局部變量--local variable全局變量--global variable修飾符--storage description局部變量l
    發表于 01-13 14:58 ?0次下載
    C語言中<b class='flag-5'>變量</b>的作用域

    為什么C++單例模式不能直接全部使用static變量static函數呢?

    通過getInstance()函數獲取單例對象,這種模式的關鍵之處不是在于強迫你用函數來獲取對象。關鍵之處是讓static對象定義在函數內部,變成局部static變量。看下這種實現方式的經典demo:
    的頭像 發表于 06-05 14:14 ?1566次閱讀

    Java中對static關鍵詞的介紹

    可以說是該關鍵字最常用的一個功能,通常將用 static 修飾的成員變量稱為類成員或者靜態成員,那么靜態成員和不用 static 修飾的非靜態成員有什么區別呢? 我們先看看不用
    的頭像 發表于 10-11 15:26 ?476次閱讀
    Java中對<b class='flag-5'>static</b>關鍵詞的介紹

    什么是變量?PLC變量哪些部分組成?

    變量在 TIA Portal 中集中管理。 在程序編輯器中創建 PLC 變量與在 PLC 變量表中創建 PLC 變量沒什么區別。 如
    發表于 10-15 11:31 ?4961次閱讀
    什么是<b class='flag-5'>變量</b>?PLC<b class='flag-5'>變量</b>哪些部分組成?
    主站蜘蛛池模板: 国产成人a一在线观看| 有码 亚洲 制服 国产 在线| 我强进了老师身体在线观看 | 欧美性appstin孕妇| 欧美精品色婷婷五月综合| 欧美末成年videos丨| 日韩精品真人荷官无码| 午夜一区欧美二区高清三区| 亚洲精品无码国产爽快A片百度| 野花高清在线观看免费3中文| 4388成人| caoporon超碰在线视频| 高h全肉图| 精品国产国偷自产在线观看| 麻豆区蜜芽区| 日日射日日操| 亚洲色欲色欲www474ee| 97视频在线免费播放| 国产成人精品精品欧美| 精品久久日日躁夜夜躁AV| 免费xxx成年大片| 手机在线观看无码日韩视频| 亚洲一区精品在线| acg全彩无遮挡口工漫画网址| 观赏女性排尿| 久久精品热播在线看| 秋霞电影午夜伦午夜| 亚洲国产在线综合018| 999久久久国产精品蜜臀AV| 俄罗斯aaaaa一级毛片| 好看的电影网站亚洲一区| 毛片大全网站| 无码国产成人777爽死在线观看| 一本到道免费线观看| TUBE19UP老师学生| 国产亚洲精品网站在线视频| 免费国产久久拍久久爱| 五月丁香啪啪.| 97在线观看免费视频| 国产在线观看免费观看不卡| 欧美xxxxx九色视频免费观看|