【正文】
。 end if。 then c := a。 architecture one of mux21 is begin if sel = 39。)。 sel : in std_logic。 use 。 end process。 end if。 begin Begin c = a + b。 Architecture one of sample is Process (A, EN) variable a, b, c : integer。 313. 什么是重載函數 ? 重載算符有何用處 ? 如何調用重載算符函數 ? 習 題 314. 判斷下面 3個程序中是否有錯誤 , 若有則指出錯誤所在 , 并給出完整程序 。 310. 說明信號和變量的功能特點 , 應用上的異同點 。 圖 334 題 36電路圖 習 題 37. 設計含有異步清零和計數使能的 16位二進制加減可控計數器 。 圖 332 1位全減器 習 題 35. 圖 333是一個含有上升沿觸發(fā)的 D觸發(fā)器的時序電路 , 試寫出此電路的VHDL設計文件 。要求: (1) 首先設計 1位半減器 , 然后用例化語句將它們連接起來 , 圖 332中h_suber是半減器 , diff是輸出差 , s_out是借位輸出 , sub_in是借位輸入 。試在一個結構體中用兩個進程來表達此電路,每個進程中用 CASE語句描述一個 2選 1多路選擇器MUX21A。和 y=39。時,分別有 y=39。和 39。 圖 330 4選 1多路選擇器 習 題 33. 圖 331所示的是雙 2選 1多路選擇器構成的電路 MUXK,對于其中MUX21A,當 s=39。139。139。039。139。139。039。039。039。 習 題 32. 圖 330所示的是 4選 1多路選擇器,試分別用 IF_THEN語句和 CASE語句的表達方式寫出此電路的 VHDL程序。 ENTITY mux21 IS 實體 2: 2選 1多路選擇器 PORT (in0, in1, sel : IN STD_LOGIC。 使能端 output : OUT STD_LOGIC ) 。 習 題 31. 畫出與下例實體描述對應的原理圖符號元件: ENTITY buf3s IS 實體 1: 三態(tài)緩沖器 PORT (input : IN STD_LOGIC 。由此可見,在行為仿真、功能仿真乃至綜合中,引入 ? 延時是必需的。 雙向和三態(tài)電路信號賦值 三態(tài)總線電路設計 圖 326 例 338錯誤的綜合結果 雙向和三態(tài)電路信號賦值 圖 327 例 339正確的綜合結果 仿真延時 固有延時 z = x XOR y AFTER 5ns ; z = x XOR y ; B = A AFTER 20ns ; 固有延時模型 仿真延時 傳輸延時 B = TRANSPORT A AFTER 20 ns。) 。 q = datain4 when ctl=11 else (others =39。Z39。) 。 q = datain2 when ctl=01 else (others =39。Z39。 end tri2。 datain1, datain2, datain3, datain4 : in std_logic_vector(7 downto 0)。 use 。 END multiple_drivers。 END IF 。Z39。 IF enable = 11 THEN output = input0 。)。 ELSE output =(OTHERS = 39。 END IF 。Z39。 IF enable = 01 THEN output = input2 。)。 ELSE output =(OTHERS = 39。 END tristate2 。 enable : IN STD_LOGIC_VECTOR(1 DOWNTO 0)。 USE 。 end body_tri。 x =ZZZZZZZZ; end if。 q = ZZZZZZZZ。039。 end body_tri。 x=ZZZZZZZZ ; end if。) then x = q 。 architecture body_tri of tri_state is begin process(control,q,in1) begin if (control = 39。 x : out std_logic_vector(7 downto 0))。 in1: in std_logic_vector(7 downto 0)。 use 。 END bhv。 END IF 。 THEN dataout = datain 。 ARCHITECTURE bhv OF tri_s IS BEGIN PROCESS(enable,datain) BEGIN IF enable = 39。 dataout : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) )。 ENTITY tri_s IS port ( enable : IN STD_LOGIC。 雙向和三態(tài)電路信號賦值 【 例 336】 LIBRARY IEEE。 . . . Select = 0 WHEN s0=’0’ AND s1=’0’ ELSE 1 WHEN s0=’1’ AND s1=’0’ ELSE 2 WHEN s0=’0’ AND s1=’1’ ELSE 3 。 END ex。 END IF。) THEN data_out = temp。 p_b: PROCESS(temp, c, sely) BEGIN IF (sely=39。 END IF。) THEN temp = a。 BEGIN p_a : PROCESS (a, b, selx) BEGIN IF (selx = 39。 END mul。 進程語句歸納 3. 進程必須由敏感信號的變化來啟動 4. 進程語句本身是并行語句 進程要點 5. 信號是多個進程間的通信線 6. 一個進程中只允許描述對應于一個時鐘信號的同步時序邏輯 進程語句歸納 【 例 333】 ENTITY mul IS PORT (a, b, c, selx, sely : IN BIT。 END CASE。 WHEN 1111 = so=000 。 WHEN 0010 = so=101 。 進程語句歸納 進程結構組成 進程說明部分 順序描述語句部分 敏感信號參數表 進程語句歸納 進程要點 1. PROCESS為一無限循環(huán)語句 2. PROCESS中的順序語句具有明顯的順序 /并行運行雙重性 PROCESS(abc) BEGIN CASE abc IS WHEN 0000 = so=010 。 IF語句概述 輸 入 輸 出 din0 din1 din2 din3 din4 din5 din6 din7 output0 output1 output2 x x x x x x x 0 0 0 0 x x x x x x 0 1 1 0 0 x x x x x 0 1 1 0 1 0 x x x x 0 1 1 1 1 1 0 x x x 0 1 1 1 1 0 0 1 x x 0 1 1 1 1 1 1 0 1 x 0 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 表 32 8線 3線優(yōu)先編碼器真值表 注:表中的 “ x”為任意,類似 VHDL中的 “ - ” 值。 ELSE output = 111 。039。) THEN output = 101 。 ELSIF (din(2)=39。039。) THEN output = 110 。 ELSIF (din(4)=39。039。) THEN output = 100 。 ELSIF (din(6)=39。039。 ARCHITECTURE behav OF coder IS SIGNAL SINT : STD_LOGIC_VECTOR(4 DOWNTO 0)。 output : OUT STD_LOGIC_VECTOR(0 TO 2) )。 USE 。 END example。 output = n。 ELSE n := c。 ARCHITECTURE example OF control_stmts IS BEGIN PROCESS (a, b, c) VARIABLE n: BOOLEAN。 output: OUT BOOLEAN)。 USE 。 1 IF 條件句 Then 順序語句 ELSIF 條件句 Then 順序語句 ... ELSE 順序語句 END IF 4 IF 條件句 Then 順序語句 ELSE 順序語句 END IF 。 移位后輸出 END BEHAV。 QB(7 DOWNTO 0) = REG(7 DOWNTO 0)。 END IF。 CY = CY 。帶進位循環(huán)右移 WHEN 101 = REG(7 DOWNTO 0) =