欢迎来到天天文库
浏览记录
ID:50021002
大小:487.50 KB
页数:132页
时间:2020-03-07
《EDA技术与CPLD FPGA开发应用简明教程 教学课件 作者 978--302-15639-0第5章EDA课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章基本逻辑电路设计5.1组合逻辑电路设计5.2时序逻辑电路设计5.3存储器设计5.4状态机的VHDL设计10/8/2021第5章基本逻辑电路设计教学目标教学重点教学过程10/8/2021掌握组合逻辑电路的设计掌握总线接口电路的设计掌握存储器和状态机的设计通过若干数字电路设计实例掌握复杂逻辑电路的设计方法第5章教学目标10/8/2021第5章教学重点掌握组合逻辑电路的设计掌握总线接口电路的设计掌握存储器和状态机的设计10/8/20215.1组合逻辑电路设计5.1.1基本门电路1.基本门电路的VHDL语言描述基本门电路用VH
2、DL语言来描述十分方便。为方便起见,在下面的两输入模块中,使用VHDL中定义的逻辑运算符,同时实现一个与门、或门、与非门、或非门、异或门及反相器的逻辑。本节的组合逻辑电路设计主要有:基本门电路、3-8译码器、8-3线优先编码器、8位比较器、多路选择器、三态门电路、单向总线驱动器、双向总线缓冲器等设计实例。10/8/2021【例5.1.1】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYGATEISPORT(A,B:INSTD_LOGIC;YAND,YOR,YNAND,YNOR,YNO
3、T,YXOR:OUTSTD_LOGIC);ENDGATE;ARCHITECTUREARTOFGATEIS10/8/2021BEGINYAND<=AANDB;--与门输出YOR<=AORB;--或门输出YNAND<=ANANDB;--与非门输出YNOR<=ANORB;--或非门输出YNOT<=ANOTB;--反相器输出YXOR<=AXORB;--异或门输出ENDART;10/8/20212.3-8译码器下面我们分别以4种方法描述一个3-8译码器。【例5.1.2】LIBRARYIEEE;USEIEEE.STD_LOGIC_116
4、4.ALL;USEIEEE.STD_LOGIC_UNSIGNED_ALL;ENTITYDECODERISPORT(INP:INSTD_LOGIC_VECTOR(2DOWNTO0);OUTP:OUTBIT_VECTOR(7DOWNTO0));ENDDECODER;10/8/2021方法1:使用SLL逻辑运算符ARCHITECTUREART1OFDECODERISBEGINOUTP<="11111110"SLL(CONV_INTEGER(INP));----输出低有效译码ENDART1;10/8/2021方法2:使用PROCES
5、S语句ARCHITECTUREART2OFDECODERISBEGINPROCESS(INP)BEGINOUTP<=(OTHERS=>‘1’)--对输出所有位全赋0OUTP(COVN_INTEGER(INP))<=‘1’--仅对其中的一位赋值ENDPROCESS;ENDART210/8/2021方法3:使用CASE_WHEN语句LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYDECODERISPORT(SEL:INSTD_LOGIC_VECTOR(2DOWNTO0);EN:INSTD
6、_LOGIC;---加使能控制端Y:OUTBIT_VECTOR(7DOWNTO0));ARCHITECTUREART3OFDECODERISBEGINPROCESS(SEL,EN)BEGINY<=”11111111”;IF(EN=’1’)THEN10/8/2021CASESELISWHEN"000"=>Y(0)<=‘0’;--输出低有效WHEN"001"=>Y(1)<=’0’;WHEN"010"=>Y(2)<=‘0’;WHEN"011"=>Y(3)<=‘0’;WHEN"100"=>Y(4)<=‘0’;WHEN"101"=>Y
7、(5)<=‘0’;WHEN"110"=>Y(6)<=‘0’;WHEN"111"=>Y(7)<=‘0’;WHENOTHERS=>NULL;ENDCASE;ENDPROCESS;ENDART3;10/8/2021方法4:使用条件选择WHENELSE语句ARCHITECTUREART4OFDECODERISBEGINY(0)<=‘0’WHEN(EN=’1’ANDSEL="000")ELSE’1’;Y(1)<=‘0’WHEN(EN=’1’ANDSEL="001")ELSE’1’;Y(2)<=‘0’WHEN(EN=’1’ANDSEL=
8、"010")ELSE’1’;Y(3)<=‘0’WHEN(EN=’1’ANDSEL="011")ELSE’1’;Y(4)<=‘0’WHEN(EN=’1’ANDSEL="100")ELSE’1’;Y(5)<=‘0’WHEN(EN=’1’ANDSEL="101")ELSE’1’;Y(6)<=‘0
此文档下载收益归作者所有