配色: 字号:
高阻态电路的VHDL设计
2020-04-13 | 阅:  转:  |  分享 
  
EDA技术实用教程第8章VHDL设计深入第8章VHDL设计深入8.1、数据对象?8.2、含高阻输出的电路设计?8.3、顺序
语句8.4、并行赋值语句讨论8.5、IF语句概述8.6、仿真延时8.7、VHDL的描述风格8.2含高阻输出的电路设计8.2.
1三态门设计【例8-8】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYtr
i_sISport(enable:INSTD_LOGIC;datain:INSTD_LOGIC_VE
CTOR(7DOWNTO0);dataout:OUTSTD_LOGIC_VECTOR(7DOWNTO0));EN
Dtri_s;ARCHITECTUREbhvOFtri_sISBEGINPROCESS(enable,datain)
BEGINIFenable=''1''THENdataout<=datain;ELSEdataout<="
ZZZZZZZZ";ENDIF;ENDPROCESS;ENDbhv;8.2含高阻输出的电路设计8.2.1三态
门设计8.2含高阻输出的电路设计8.2.1三态门设计8位3态控制门电路8.2含高阻输出的电路设计8.2.2
双向端口设计【例8-9】libraryieee;useieee.std_logic_1164.all;entitytri_
stateisport(control:instd_logic;in1:instd_logic_vector(7
downto0);q:inoutstd_logic_vector(7downto0);x:outstd_lo
gic_vector(7downto0));endtri_state;architecturebody_trioftr
i_stateisbeginprocess(control,q,in1)beginif(control=''0'')then
x<=q;elseq<=in1;x<="ZZZZZZZZ";endif;endproce
ss;endbody_tri;8.2含高阻输出的电路设计8.2.2双向端口设计【例8-10】(以上部分同上例)pr
ocess(control,q,in1)beginif(control=''0'')thenx<=q;q<="ZZ
ZZZZZZ";elseq<=in1;x<="ZZZZZZZZ“;endif;endprocess;endbo
dy_tri;8.2含高阻输出的电路设计8.2.2双向端口设计例8-9的RTL原理图8.2含高阻输出的电路设计
8.2.2双向端口设计例8-10的综合结果8.2.3三态总线电路设计【例8-11】LIBRARYIEEE;USE
IEEE.STD_LOGIC_1164.ALL;ENTITYtristate2ISport(input3,input2
,input1,input0:INSTD_LOGIC_VECTOR(7DOWNTO0);enable:IN
STD_LOGIC_VECTOR(1DOWNTO0);output:OUTSTD_LOGIC_VECTOR(7D
OWNTO0));ENDtristate2;ARCHITECTUREmultiple_driversOFtrista
te2ISBEGINPROCESS(enable,input3,input2,input1,input0)BEGIN
IFenable="00"THENoutput<=input3;ELSEoutput<=(OTHERS=
>''Z'');ENDIF;IFenable="01"THENoutput<=input2;ELSE
output<=(OTHERS=>''Z'');ENDIF;(接下页)8.2.3三态总线电路设计(接上页)IF
enable="10"THENoutput<=input1;ELSEoutput<=(OTHERS=>''
Z'');ENDIF;IFenable="11"THENoutput<=input0;ELSEout
put<=(OTHERS=>''Z'');ENDIF;ENDPROCESS;ENDmultiple_drivers;
8.2含高阻输出的电路设计8.2.2双向端口设计例8-11错误的综合结果8.2含高阻输出的电路设计8.2.2
双向端口设计【例8-12】(注:MaxplusII不支持本例)libraryieee;useieee.std_logic_
1164.all;entitytri2isport(ctl:instd_logic_vector(1downto
0);datain1,datain2,datain3,datain4:instd_logic_vector(7dow
nto0);q:outstd_logic_vector(7downto0));endtri2;archite
cturebody_trioftri2isbeginq<=datain1whenctl="00"else
(others=>''Z'');q<=datain2whenctl="01"else(others=>''Z
'');q<=datain3whenctl="10"else(others=>''Z'');q<=datain4whenctl="11"else(others=>''Z'');endbody_tri;8.2.2双向端口设计例8-12正确的综合结果
献花(0)
+1
(本文系大音善士首藏)