资源描述:
《常用逻辑电路设计[VHDL_Examples]》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、⊙内容:常用逻辑电路设计例2:全加器设计一般组合逻辑电路设计一般时序逻辑电路设计一、一般组合逻辑电路设计1、概念:组合逻辑电路输出只与当前的输入有关,而与历史状态无关。即组合逻辑电路是无输入输出记忆功能电路。xycinsco2、常见电路:(1)基本门电路(与、非、或等)。00000(2)选择电路(N选1电路等)。00110(3)编码与解码电路(3-8电路、7段显示)。01010(4)加法电路(半加器、全加器)。01101(5)求补码电路10010(6)三态门电路101013、电路应用举例11001例1:半加器设计11111libraryieee;useieee.std_logi
2、c_1164.all;ENTITYplus2ISPORT(x,y,cin:INstd_logic;S,co:outstd_logic);END;输入输出ARCHITECTUREaaaOFplus2ISxyscoBeginProcess(a,b,cin)0000Variabletemp:std_logic_vector(2downto0)0110Temp:=x&y&cin;1010Casetempis1101When“000”=>s<=’0’;co<=’0’;S=’xy+x’y=x+y=xory;When“001”
3、“010”
4、“100”=>s<=’1’;Co=xy=xandy.
5、co<=’0’;libraryieee;When“011”
6、“101”
7、“110”=>s<=’0’;useieee.std_logic_1164.all;co<=’1’;ENTITYplus1ISWhen“111”=>s<=’1’;PORT(x,y:INstd_logic;co<=’1’;S,co:outstd_logic);Whenothers=>s<=’X’;END;co<=’X’;ARCHITECTUREaaaOFplus1ISEndcase;beginEnd;S=’xy+x’y=x+y=xory;Co=xy=xandy;End;例3:求补码电路例4:三态门电路正数的补码
8、与原码相同,即最高位为符号位,三态门电路用途:1双向口、2多路数据竞争用“0”表示正数,其余位为数值位。或多路选择电路。输入DIN,输出DOUT。当EN=1负数的补码为它的反码,且在最底位加1形时,DOUT=DIN;当EN=0时,DOUT=Z;成。输入输入使能输出如:[+4]原[00000100]b;DINENDOUT[+4]补[00000100]b;X0z[-4]原[10000100]b;010[+4]反[11111011]b;111[+4]补[+4]反+‘1’11111011+00000001libraryieee;11111100useieee.std_logic_116
9、4.all;libraryieee;useieee.std_logic_arith.all;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;ENTITYqiubuISENTITYTRI_GATEISPORT(a:INstd_logic_vector(7downto0);PORT(din,en:INstd_logic;b:OUTstd_logic_vector(7downto0));dout:OU
10、Tstd_logic);END;END;ARCHITECTUREaaaOFqiubuISARCHITECTUREaaaOFTRI_GATEISbeginbeginprocess(a)beginprocess(din,en)ifa(7)='0'thenb<=a;beginelseifen='1'thendout<=din;b<=nota+'1';elseendif;dout<='Z';endprocess;endif;endaaa;endprocess;endaaa;4—2线优先编码器一位十进制编码器libraryieee;libraryieee;useieee.std_logi
11、c_1164.all;useieee.std_logic_1164.all;entityencoderisentitydecodeisport(in0,in1,in2,in3:instd_logic;port(in0,in1,in2,in3,in4,in5,in6,in7,in8,in9:out0,out1:outstd_logic);instd_logic;end;decode:outstd_logic_vector(3downto0));architecturebehaveofencod