文档详情

VHDL语言语言主要描述语句课件.ppt

发布:2025-04-03约3.82千字共10页下载文档
文本预览下载声明

*VHDL語言語言主要描述語句VHDL主要描述語句並行處理語句順序處理語句在結構體(ARCHITECTURE)中執行的語句在進程(PROCESS)函數(FUNCTION)過程(PROCEDURE)中執行的語句硬體描述的特點高級語言的特點VHDL順序語句順序語句只能出現在進程(Process)、函數(Function)和過程(Procedure)中;順序語句像高級電腦語言一樣,按其出現的先後順序依次執行;用來描述複雜的邏輯關係及邏輯運算。常用的順序處理語句有:信號代入語句變數賦值語句CASE語句IF語句LOOP語句VHDL順序語句1、信號代入語句格式: 目的信號量=信號量運算式; 目的信號量=信號量運算式AFTERNns;注意: 信號代入語句和關係操作符相同“=”,但其使用位置不一樣,應根據上下文加以判斷; 信號代入語句兩邊信號量的數據類型及位長度必須一致。 延時只在仿真時起作用,邏輯綜合時被忽略。 信號賦值不是立即發生,而是在進程結束時。VHDL順序語句例: architectureabcofexampleis signalc:STD_LOGIC; begin PROCESS(a,b) begin c=aandbafter10ns; a=‘1’; b=‘1’; b=‘0’; out=c; endprocess; endabc;注意信號定義的位置VHDL順序語句2、變數代入語句格式: 變數:=運算式;注意: 變數是局部量,只能在所定義的進程、過程、和函數中使用。 變數賦值是立即發生,不能加延時。 在進程中描述邏輯關係及演算法時最好使用變數,以避免出錯。 進程結束時,變數的結果只能由信號帶出。VHDL順序語句例: architectureabcofexampleis begin PROCESS(a,b) variabletmp:std_logic; begin tmp:=aandb; out=tmp; endprocess; endabc;注意變數定義的位置VHDL順序語句3、CASE語句格式: Case運算式IsWHEN選擇值=順序處理語句; ……WHEN選擇值=順序處理語句; WHENOTHERS=順序處理語句; Endcase;注意: CASE語句至少包含一個條件句; CASE語句中條件運算式的值必須列舉窮盡,但不能重複; 無法窮舉,用OTHERS表達。 VHDL順序語句例: 四選一數據選擇器 architectureabcofexampleis signalsel:std_logic_vector(1downto0); begin sel=ba; process(sel) begin caseselis when“00”=f=i0; when“01”=f=i1; when“10”=f=i2; when“11”=f=i3; whenothers=null; endcase; endprocess; endabc;為什麼還要others?VHDL順序語句4、IF語句格式1: IF條件THEN順序處理語句; ENDIF;格式2: IF條件THEN順序處理語句; ELSE順序處理語句; ENDIF;格式3: IF條件1THEN順序處理語句; ELSIF條件2THEN順序處理語句; …… ELSE順序處理語句; ENDIF; 注意:IF語句隱含有優先順序的關係,可用來設計具有優 先權的電路。 VHDL順序語句例: 四選一數據選擇器 architectureabcofexampleis signalsel:std_logic_vector(1downto0); begin sel=ba; process(sel) begin IFsel=“00”thenf=i0; ELSIFsel=“01”thenf=i1; ELSIFsel=“10”the

显示全部
相似文档