第五章_EDA电子设计自动化课件.ppt
文本预览下载声明
5.4 双向电路和三态控制电路设计 5.4.1 三态门设计 【例5-13】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY tri_s IS port ( enable : IN STD_LOGIC; datain : IN STD_LOGIC_VECTOR(7 DOWNTO 0); dataout : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END tri_s ; ARCHITECTURE bhv OF tri_s IS BEGIN PROCESS(enable,datain) BEGIN IF enable = 1 THEN dataout = datain ; ELSE dataout =ZZZZZZZZ ; END IF ; END PROCESS; END bhv; 图5-13 8位3态控制门电路 5.4.2 双向端口设计 【例5-14】 library ieee; use ieee.std_logic_1164.all; entity tri_state is port (control : in std_logic; in1: in std_logic_vector(7 downto 0); q : inout std_logic_vector(7 downto 0); x : out std_logic_vector(7 downto 0)); end tri_state; architecture body_tri of tri_state is begin process(control,q,in1) begin if (control = ‘0’) then x = q ; --q做为输入,X为输出 else q = in1; x=“ZZZZZZZZ” ; --q做为输出,X高阻 end if; end process; end body_tri; 图5-15 例5-14的仿真波形图 5.4.2 双向端口设计 图5-14 例5-14的综合结果 【例5-15】 (以上部分同上例) process(control,q,in1) begin if (control=0) then x = q ; q = ZZZZZZZZ; else q = in1; x =ZZZZZZZZ; end if; end process; end body_tri; 图5-17 例5-15的仿真波形图 5.4.2 双向端口设计 注意:双向端口在完成输入功能时, 须使输出模式的端口呈高阻态 。 图5-16 例5-15的综合结果 5.4.2 双向端口设计 5.4.3 三态总线电路设计 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY tristate2 IS port ( input3, input2, input1, input0 : IN STD_LOGIC_VECTOR (7 DOWNTO 0); enable : IN STD_LOGIC_VECTOR(1 DOWNTO 0); output : OUT STD_LOGIC_VECTOR (7 DOWNTO 0)); END tristate2 ; ARCHITECTURE multiple_drivers OF tristate2 IS BEGIN PROCESS(enable,input3, input2, input1, input0 ) BEGIN IF enable = 00 THEN output = input3 ; ELSE output =(OTHERS = Z); END IF ; IF enable = 01 THEN output = input2 ; ELSE output =(OTHERS = Z); END IF ; IF enable = 10 THEN output = input1 ; ELSE output =(OTHERS = Z); END IF ; IF enable = 11 THEN output = input0 ; ELSE output =(OTHERS = Z); END IF ; END PROCES
显示全部