VHDL變數與訊號的差異

2022-09-05 13:00:11 字數 1839 閱讀 8171

1,賦值方式的不同

變數:=

表示式;

訊號<=

表示式;

2,硬體實現的功能不同

訊號代表電路單元,功能模組間的互聯,代表實際的硬體連線

變數代表電路單元內部的操作,代表暫存的臨時資料

3,有效範圍不同

訊號(全域性量):程式包,實體,結構體

變數(區域性量):程序,子程式

注:在程序和子程式中,訊號只能被使用,不能被定義說明

4,賦值行為的不同

訊號賦值延時更新數值,一般生成時序電路

變數賦值立即更新數值,一般生成組合電路

5,訊號的多次賦值

a, 乙個程序中:僅最後一次賦值有效

b, 多個程序中:稱為多源驅動(如匯流排結構)

能綜合成硬體電路的多源驅動有三種:線與,線或,三態

例子architecture  rtl of sig is

signal a,b : std_logic; --

定義訊號

begin

process(a,b)

begin

a <= b;

b <= a;

end process;

end rtl ;

由於訊號賦值的延時性(賦新值發生在程序結束時),所以結果是

a,b

的值互換

architecture rtl of var is

begin

process

variable a,b : std_logic;--

定義變數

begin

a := b;

b := a;

end process;

end rtl ;

由於變數賦值的立即更新,所以結果是a和

b的值均為b1,

賦值方式的不同

變數:=

表示式;

訊號<=

表示式;

2,硬體實現的功能不同

訊號代表電路單元,功能模組間的互聯,代表實際的硬體連線

變數代表電路單元內部的操作,代表暫存的臨時資料

3,有效範圍不同

訊號(全域性量):程式包,實體,結構體

變數(區域性量):程序,子程式

注:在程序和子程式中,訊號只能被使用,不能被定義說明

4,賦值行為的不同

訊號賦值延時更新數值,一般生成時序電路

變數賦值立即更新數值,一般生成組合電路

5,訊號的多次賦值

a, 乙個程序中:僅最後一次賦值有效

b, 多個程序中:稱為多源驅動(如匯流排結構)

能綜合成硬體電路的多源驅動有三種:線與,線或,三態

例子architecture  rtl of sig is

signal a,b : std_logic; --

定義訊號

begin

process(a,b)

begin

a <= b;

b <= a;

end process;

end rtl ;

由於訊號賦值的延時性(賦新值發生在程序結束時),所以結果是

a,b

的值互換

architecture rtl of var is

begin

process

variable a,b : std_logic;--

定義變數

begin

a := b;

b := a;

end process;

end rtl ;

由於變數賦值的立即更新,所以結果是a和

b的值均為

b

程序的敏感訊號表 VHDL程序變數訊號

vhdl的並行語句用來描述一組並發行為,它是併發執行的,與程式的書寫順序無關。程序語句 begin 程序語句包含在結構體中,乙個結構體可以有多個程序語句,多個程序語句間是並行的,並可訪問結構體或實體中定義的訊號。因此程序語句稱為並行描述語句。進行語句結構內部所有語句都是順序執行的 程序語句的啟動是由...

vhdl變數賦初值 B巨集與A巨集變數的方法

b巨集的用法 b類巨集程式的變數與a類巨集程式的變數基本相似,但也略有不同,主要區別有以下幾個方面。1 變數的表示 b類巨集程式除可採用a類巨集程式的交量表示方法外,還可以用表示式表示,但表 達式必須封閉在方括號 中。程式的圓括號 用於注釋。例 1 2 10 當 1 10,2 100時,該變數表示 ...

FPGA學習筆記 VHDL中激勵訊號的產生

兩種方法 並行賦值語句,程序。並行賦值語句 產生對稱訊號 clk not clk after 20 ns 20ns之後為 not clk 產生不對稱訊號 w clk 0 after period 4 when w clk 1 else 0 after period 4表示 period 4之後為0 ...