VHDL提供了6種預定義的運算運算子,分別是:賦值運算子,邏輯運算子,算術運算子,關係運算符,移位運算子,並置運算 符。VHDLl賦值運算子:在VHDL中,賦值運算子用來給訊號、變數和常數賦值。賦值運算子包括以下3種:<=用於對SIGNAL賦值。:= 用於對VARIABLE,CONSTANT和GENERIC賦值,也可用於賦初始值。=>給向量中的某些位賦值,或對某些位之外的其他位(常用OTHERS表示)賦值。VHDL邏輯運算子 在VHDL中,邏輯運算子用來執行邏輯運算操作。運算元必須是BIT,STD_LOGIC或STD_ULOGIC型別的資料(或者是這些資料型別的擴充套件,即BIT_VECTOR,STD_LOGIC_VECTOR或STD_ULOGIC_VECTOR)。VHDL的邏輯運算子有以下幾種:-NOT--取反-AND--與-OR--或-NAND--與非-NOR--或非-XOR--異或XNOR是"同或"運算子,它在VHDL87中沒有定義,在VHDL93中被引入。注意,從上至下,這些運算子的優先順序是遞減的。VHDL算術運算子: 在VHDL中,算術運算子用來執行算術運算操作。運算元可以是INTEGER,SIGNED,UNSIGNED或REAL資料型別,其中 REAL型別是不可綜合的。如果聲明瞭ieee庫中的包集std_logic_signed和std_logic_unsigned,即可對STD_LOGIC_VECTOR型別的資料進行加法和減法運算。VHDL語言有以下8種算術運算子:+ 加- 減* 乘/ 除** 指數運算MOD 取模REM 取餘ABS 取絕對值上述運算子中,加法、減法和乘法運算子是可以綜合成邏輯電路的,對於除法運算,只有在除數為2的n次幕時才有可能進行綜合,此時除法操作對應的是將被除數向右進行n次移位。對於指數運算,只有當底數和指數都是靜態數值(常量或GENERIC引數)時才是可綜合的。在算術運算子的使用中,要注意MOD和REM的區別:y MOD x運算的結果是y除以x所得的餘數,運算結果透過訊號x返回;y REM x運算的結果是y除以x所得的餘數,結果透過訊號y返回。ABS運算返回運算元的絕對值。上述後3個運算子(MOD,REM和ABS)通常是不可綜合的。VHDL關係運算符:在VHDL中,關係運算符用來對兩個運算元進行比較運算。VHDL有以下6種關係運算符:= 等於/= 不等於< 小於> 大於<= 小於等於>= 大於等於這裡需要注意的是:關係運算符左右兩邊運算元的資料型別必須相同,這些關係運算符適用於前面所講的所有資料型別。VHDL移位運算子:在VHDL中,移位運算子用來對資料進行移位操作,它們是在VHDL93中引入的。其語法結構為:<左運算元><移位運算子><右運算元>其中,左運算元必須是BIT_VECTOR型別的,右運算元必須是INTEGER型別(前面可以加正負號)的。VHDL中的移位運算子有以下幾種:sll 邏輯左移------資料左移,右端空出來的位置填充"0"srl 邏輯右移------資料右移,左端空出來的位置填充"0"sla 算術左移-------資料左移,同時複製最右端的位,在資料左移操作後填充在右端空出的位置上sra 算術右移-------資料右移,同時複製最左端的位,在資料右移操作後填充在左端空出的位置上rol 迴圈邏輯左移-----資料左移,同時從左端移出的位依次填充到右端空出的位置上ror 迴圈邏輯右移------資料右移,同時從右端移出的位依次填充到左端空出的位置上VHDL 並置運算子:在VHDL中,提供了一種並置運算子 , 它的符號如下所示 :& 或者(,,,,)-用來進行位和位向量的連線運算這裡 , 所謂位和位向量的連線運算是指將並置運算子右邊的內容接在左邊的內容之後以形成一個新的位向量.通常採用並置運算子進行連線的方式很多 : 既可以將兩個位連線起來形成一個位向量 , 也可以將兩個位向量連線起來以
VHDL提供了6種預定義的運算運算子,分別是:賦值運算子,邏輯運算子,算術運算子,關係運算符,移位運算子,並置運算 符。VHDLl賦值運算子:在VHDL中,賦值運算子用來給訊號、變數和常數賦值。賦值運算子包括以下3種:<=用於對SIGNAL賦值。:= 用於對VARIABLE,CONSTANT和GENERIC賦值,也可用於賦初始值。=>給向量中的某些位賦值,或對某些位之外的其他位(常用OTHERS表示)賦值。VHDL邏輯運算子 在VHDL中,邏輯運算子用來執行邏輯運算操作。運算元必須是BIT,STD_LOGIC或STD_ULOGIC型別的資料(或者是這些資料型別的擴充套件,即BIT_VECTOR,STD_LOGIC_VECTOR或STD_ULOGIC_VECTOR)。VHDL的邏輯運算子有以下幾種:-NOT--取反-AND--與-OR--或-NAND--與非-NOR--或非-XOR--異或XNOR是"同或"運算子,它在VHDL87中沒有定義,在VHDL93中被引入。注意,從上至下,這些運算子的優先順序是遞減的。VHDL算術運算子: 在VHDL中,算術運算子用來執行算術運算操作。運算元可以是INTEGER,SIGNED,UNSIGNED或REAL資料型別,其中 REAL型別是不可綜合的。如果聲明瞭ieee庫中的包集std_logic_signed和std_logic_unsigned,即可對STD_LOGIC_VECTOR型別的資料進行加法和減法運算。VHDL語言有以下8種算術運算子:+ 加- 減* 乘/ 除** 指數運算MOD 取模REM 取餘ABS 取絕對值上述運算子中,加法、減法和乘法運算子是可以綜合成邏輯電路的,對於除法運算,只有在除數為2的n次幕時才有可能進行綜合,此時除法操作對應的是將被除數向右進行n次移位。對於指數運算,只有當底數和指數都是靜態數值(常量或GENERIC引數)時才是可綜合的。在算術運算子的使用中,要注意MOD和REM的區別:y MOD x運算的結果是y除以x所得的餘數,運算結果透過訊號x返回;y REM x運算的結果是y除以x所得的餘數,結果透過訊號y返回。ABS運算返回運算元的絕對值。上述後3個運算子(MOD,REM和ABS)通常是不可綜合的。VHDL關係運算符:在VHDL中,關係運算符用來對兩個運算元進行比較運算。VHDL有以下6種關係運算符:= 等於/= 不等於< 小於> 大於<= 小於等於>= 大於等於這裡需要注意的是:關係運算符左右兩邊運算元的資料型別必須相同,這些關係運算符適用於前面所講的所有資料型別。VHDL移位運算子:在VHDL中,移位運算子用來對資料進行移位操作,它們是在VHDL93中引入的。其語法結構為:<左運算元><移位運算子><右運算元>其中,左運算元必須是BIT_VECTOR型別的,右運算元必須是INTEGER型別(前面可以加正負號)的。VHDL中的移位運算子有以下幾種:sll 邏輯左移------資料左移,右端空出來的位置填充"0"srl 邏輯右移------資料右移,左端空出來的位置填充"0"sla 算術左移-------資料左移,同時複製最右端的位,在資料左移操作後填充在右端空出的位置上sra 算術右移-------資料右移,同時複製最左端的位,在資料右移操作後填充在左端空出的位置上rol 迴圈邏輯左移-----資料左移,同時從左端移出的位依次填充到右端空出的位置上ror 迴圈邏輯右移------資料右移,同時從右端移出的位依次填充到左端空出的位置上VHDL 並置運算子:在VHDL中,提供了一種並置運算子 , 它的符號如下所示 :& 或者(,,,,)-用來進行位和位向量的連線運算這裡 , 所謂位和位向量的連線運算是指將並置運算子右邊的內容接在左邊的內容之後以形成一個新的位向量.通常採用並置運算子進行連線的方式很多 : 既可以將兩個位連線起來形成一個位向量 , 也可以將兩個位向量連線起來以