日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

VHDL的数据对象(学习笔记1)

發布時間:2024/10/14 75 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VHDL的数据对象(学习笔记1) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

VHDL語言數據對象

VHDL語言學習筆記(一):數據對象
內容:本文主要介紹VHDL語言的三種主要數據對象,即常量(constant)、變量(variable)和信號(signal)。


文章目錄

  • VHDL語言數據對象
  • 一、 常量
  • 二、變量
  • 三、信號
  • 總結


一、 常量

在VHDL程序中,一經定義數值就不再發生變化的量就是常量。在硬件物理意義上,其表示為硬件電路中的電源或地線。
常量可以在程序包、實體聲明、結構體聲明和語句的聲明部分中進行聲明,常量定義語句所允許的設計單元有實體、結構體、程序包、塊、進程和子程序。不同部分聲明的常量具有不同的作用范圍。

常量聲明的語言結構:

CONSTANT 常量名 [, 常量名...] : 數據類型 := 表達式;
  • “CONSTANT”是用來表示常量的保留字,用來聲明一個常量;
  • “[]”中的內容表示可選項,即多個相同數據類型的常量可以一起聲明;
  • 數據類型是對象所具有的類型;
  • 表達式用來對常量進行賦值,其賦值符號為“:=”。

常量聲明示例:

CONSTANT PI : REAL := 3.14; CONSTANT NUM : INTEGER := 6; CONSTANT DELAY : TIME := 7ns;

注意:

  • 常量定以后不允許修改;
  • 使用時要注意常量的作用范圍。

二、變量

變量是指在設計實體中值會發生變化的量。變量主要是對臨時數據進行局部存儲,只能在進程語句、過程語句和函數語句的聲明部分中使用。變量的賦值是理想化的數據傳輸,是立即發生、不存在任何延時的行為。

變量聲明結構:

VARIABLE 變量名 [, 變量名...] : 數據類型 [:= 初始值]
  • “VARIABLE”是用來表示變量的保留字,用來聲明一個變量;
  • “[:= 初始值]”用來對變量進行初始賦值操作,其中“:=”為賦值符號。

變量聲明示例:

VARIABLE vA : INTEGER 0 TO 15 ; --聲明了一個取值范圍為0~15的整數類型變量 VARIABLE vB, vC : INTEGER :=2 ; --聲明了兩個初始值為2的整數類型變量 VARIABLE vC : STD_LOGIC := '1' ; --聲明了一個初始值為1的標準位邏輯類型變量

變量注意事項:

  • 變量為局部量,僅限于在定義了變量的進程、過程或子程序的順序語句中使用;
  • 如果變量沒有賦予初始值,那么它將取默認值,即指定的數據類型的最左值或最小值。

變量的賦值結構:

目標變量名 := 表達式;
  • 賦值語句右側的“表達式”與目標變量必須為同一數據類型;
  • 表達式可以為運算表達式,也可以是一個數值;
  • 新變量值的獲得是直接的、立即發生的;
  • 目標變量可以是單值變量,也可以是變量集合,如位矢量類型的變量。

變量賦值示例:

VARIABLE vA, vB : REAL ; --定義了實數類型變量 VARIABLE vC, vD : STD_LOGIC_VECTOR (7 DOWNTO 0); --定義了位矢量類型變量vA := 10.0 ; vB := vA + 6 ; vC := "11010101" ; vD (0 TO 6) := vC (1 TO 7) ; --段賦值

三、信號

信號時設計實體之間動態交換數據的一種手段,其物理意義類似于電路內部的連接線。信號可以看做是數值的容器,它不但可以容納當前值,也可以保持歷史值。

信號聲明結構:

SIGNAL 信號名 [, 信號名...] : 數據類型 [:= 初始值] ;

信號聲明示例:

SIGNAL sA : STD_LOGIC := '1' ; --聲明一個初始值為‘1’的標準邏輯信號 SIGNAL sB : BIT ; --聲明了一個位信號 SIGNAL sC : STD_LOGIC_VECTOR ( 15 DOWNTO 0 ) ; --聲明了一個標準位矢量信號

信號初始值的設置不是必需的,而且初始值僅在VHDL的行為仿真中有效。與變量相比,信號的硬件特性更明顯,它具有全局性特性。比如,在程序包中定義的信號,對于所有調用此程序包的設計實體都是可見的;在實體中定義的信號,在其對應的結構體中都可見。
注意,在進程和子程序的順序語句中不允許定義信號。

信號的賦值結構:

目標信號名 <= 表達式 ;

數據信號的傳入可以設置延時,即便延時設置為0,目標信號的數據傳入也不是零延時的。因此,符號"<="兩邊的數值并不一定總是一致的。
在進程中,允許同一個信號有不同驅動源,即同一個目標信號可以被多個表達式賦值,但是只有最后一個賦值語句會被執行。


總結

本文信息源自數據和網絡。

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的VHDL的数据对象(学习笔记1)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。