1、双向电路和三态双向电路和三态双向电路和三态双向电路和三态控制电路设计控制电路设计控制电路设计控制电路设计EDA技术实用教程 双向电路和三态控制电路设计双向电路和三态控制电路设计1.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 ISBEGINPROCESS(enable,datain)BEGIN IF enable=1 THEN dataout=datain;ELSE dataout=ZZZZZZZZ;END IF;END PROCESS;END bhv;图图5-13 8位位3态控制门电路态控制门电路 1.2 双向端口设计双向端口设计【例【例5-14】library ieee;use ieee.std_
2、logic_1164.all;entity tri_state isport(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 isbeginprocess(control,q,in1)beginif(control=0)then x=q ;else q=in1;x=ZZZZZZZZ;end if;end process;end body_tri;1.2 双向端口设计双向端口设计 图图5-14 例例5-14的仿真波形图的仿真波形图 图图5-16 例例5-14的综合结果的综合结果 1.2 双向端口设计双向端口设计【例【例5-15】(以上部分同上例以上部分同上例)process(control,q,in1)beginif(control=0)then x=q;q=ZZZZZZZZ;else
3、 q=in1;x=ZZZZZZZZ;end if;end process;end body_tri;双向电路和三态控制电路设计双向电路和三态控制电路设计1.2 双向端口设计双向端口设计 图图5-15 例例5-15的仿真波形图的仿真波形图 图图5-17 例例5-15的综合结果的综合结果【例【例5-16】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 ISBEGINPROCESS(enable,input3,input2,input1,input0)BEGIN IF enable=00 THEN output=input3
4、;ELSE output Z);END IF;IF enable=01 THEN output=input2;ELSE output Z);END IF;IF enable=10 THEN output=input1;ELSE output Z);END IF;IF enable=11 THEN output=input0;ELSE output Z);END IF;END PROCESS;END multiple_drivers;1.3 三态总线电路设计三态总线电路设计【例【例5-17】(注:(注:MaxplusII不支持本例)不支持本例)library ieee;use ieee.std_logic_1164.all;entity tri2 isport(ctl:in std_logic_vector(1 downto 0);datain1,datain2,datain3,datain4:in std_logic_vector(7 downto 0);q:out std_logic_vector(7 downto 0);end tri2;architecture body_tri
5、of tri2 isbegin q Z);q Z);q Z);q Z);end body_tri;1.3 三态总线电路设计三态总线电路设计 双向电路和三态控制电路设计双向电路和三态控制电路设计1.3 三态总线电路设计三态总线电路设计 图图5-18 例例5-16错误的综合结果错误的综合结果 双向电路和三态控制电路设计双向电路和三态控制电路设计1.3 三态总线电路设计三态总线电路设计 图图5-19 例例5-17正正确的综合结果确的综合结果 双向电路和三态控制电路设计双向电路和三态控制电路设计1.4 顺序条件语句顺序条件语句IF语句语句(1)IF 条件句条件句 Then 顺序语句顺序语句 END IF;(2)IF 条件句条件句 Then 顺序语句顺序语句 ELSE 顺序语句顺序语句 END IF;(3)IF 条件句条件句 Then IF 条件句条件句 Then .END IF END IF(4)IF 条件句条件句 Then 顺序语句顺序语句ELSIF 条件句条件句 Then顺序语句顺序语句.ELSE 顺序语句顺序语句 END IF【例【例5-18】LIBRARY IEEE;USE IEEE.
6、STD_LOGIC_1164.ALL;ENTITY control_stmts ISPORT(a,b,c:IN BOOLEAN;output:OUT BOOLEAN);END control_stmts;ARCHITECTURE example OF control_stmts IS BEGIN PROCESS(a,b,c)VARIABLE n:BOOLEAN;BEGIN IF a THEN n:=b;ELSE n:=c;END IF;output=n;END PROCESS;END example;1.4 顺序条件语句顺序条件语句IF语句语句【例【例5-19】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY coder IS PORT(din:IN STD_LOGIC_VECTOR(0 TO 7);output:OUT STD_LOGIC_VECTOR(0 TO 2);END coder;ARCHITECTURE behav OF coder IS SIGNAL SINT:STD_LOGIC_VECTOR(4 DOWNTO 0);BEGI
7、N PROCESS(din)BEGIN IF(din(7)=0)THEN output=000;ELSIF(din(6)=0)THEN output=100;ELSIF(din(5)=0)THEN output=010;ELSIF(din(4)=0)THEN output=110;ELSIF(din(3)=0)THEN output=001;ELSIF(din(2)=0)THEN output=101;ELSIF(din(1)=0)THEN output=011;ELSE output=111;END IF;END PROCESS;END behav;1.4 顺序条件语句顺序条件语句IF语句语句表表5-2 8线线-3线优先编码器真值表线优先编码器真值表 输输 入入 输输 出出din0 din1 din2 din3 din4 din5 din6 din7 din0 din1 din2 din3 din4 din5 din6 din7 output0 output1 output2 output0 output1 output2 x x x x x x x 0 0 0 0 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 x 0 1 1 0 0 x x x x x 0 1 1 0 1 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 x 0 1 1 1 1 1 0 x x x 0 1 1 1 1 0 0 1 x x x 0 1 1 1 1 0 0 1 x x 0 1 1 1 1 1 1 0 1 x x 0 1 1 1 1 1 1 0 1 x 0 1 1 1 1 1 1 0 1 1 x 0 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1注:表中的注:表中的“x”为任意,类似为任意,类似VHDL中的中的“”值。值。1.4 顺序条件语句顺序条件语句IF语句语句谢谢观看!谢谢观看!谢谢观看!谢谢观看!EDA技术实用教程
《双向电路和三态控制电路设计》由会员早晚分享,可在线阅读,更多相关《双向电路和三态控制电路设计》请在金锄头文库上搜索。