欢迎来到天天文库
浏览记录
ID:58702188
大小:2.40 MB
页数:65页
时间:2020-10-04
《第3章3 基本逻辑电路设计ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三章硬件描述语言(VHDL)第三部分基本逻辑电路设计1基本逻辑电路:组合逻辑电路、时序逻辑电路一组合逻辑电路设计简单门电路、编码器、译码器、加法器、多路选择器、三态门等。§3.9基本逻辑电路设计21、基本门电路32、编码器设计一个8输入优先级编码器,y0级别最低,y7级别最高;输出为3位编码。Y7=1Vec=111Y6=1Vec=110Y5=1Vec=101Y4=1Vec=100Y3=1Vec=011Y2=1Vec=010Y1=1Vec=001Y0=1Vec=0004方法1:利用if多选择语句自顶向下的优先特性5方法2:进程
2、内为顺序语句,最先描述优先级最低,最后描述优先级最高,可实现优先级编码。6方法3:利用条件赋值语句architecturebehaviorofpriorityisbeginvec<=“111”wheny7=‘1’else“110”wheny6=‘1’else“101”wheny5=‘1’else“100”wheny4=‘1’else“011”wheny3=‘1’else“010”wheny2=‘1’else“001”wheny1=‘1’else“000”wheny0=‘1’else“XXX”;endbehavior;73、译码
3、器译码器是编码器的逆过程。如3-8译码器:sel=000Y=00000001sel=001Y=00000010sel=010Y=00000100sel=011Y=00001000sel=100Y=00010000sel=101Y=00100000sel=110Y=01000000sel=111Y=100000008方法1:使用逻辑左移运算符libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitydecoderisport(inp:i
4、nstd_logic_vector(2downto0);outp:outstd_logic_vector(7downto0));enddecoder;architecturertlofdecoderisbeginoutp<=“00000001”sll(conv_integer(inp));endrtl;9方法2:使用process语句libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitydecoderisport(inp:inst
5、d_logic_vector(2downto0);outp:outstd_logic_vector(7downto0));enddecoder;architecturertlofdecoderisbeginprocess(inp)beginoutp<=(others=>’0’);outp(conv_integer(inp))<=‘1’;endprocess;endrtl;10方法3:使用case语句实现。11译码输出低有效12方法4:使用条件赋值语句133-8译码器仿真结果:译码输出低有效144、多路选择器前面用if语句、ca
6、se语句、条件赋值语句、选择赋值语句分别描述过4选1选择器。5、三态门及总线缓冲器VHDL语言通过指定大写的Z值表示高阻状态a:std_logic;a_bus:std_logic_vector(7downto0);指定高阻状态如下:a<=‘Z’;a_bus<=“ZZZZZZZZ”;151)三态门电路描述16三态门仿真结果:172)单向总线缓冲器183)双向总线缓冲器19二时序逻辑电路设计触发器、寄存器、计数器、分频器、信号发生器等。一)时序电路特殊信号的描述时钟信号和复位信号1、时钟信号描述常用的描述方式:1)进程的敏感信号是
7、时钟信号,在进程内部用if语句描述时钟的边沿条件。20如:process(clock_signal)beginif(clock_edge_condition)thensignal_out<=signal_in;┇其它时序语句┇endif;endprocess;212)在进程中用waituntil语句描述时钟信号,此时进程将没有敏感信号。如:processbeginwaituntil(clock_edge_condition);signal_out<=signal_in;┇其它时序语句┇endprocess;22注意:a.在对时
8、钟边沿说明时,一定要注明是上升沿还是下降沿。b.一个进程中只能描述一个时钟信号。c.waituntil语句只能放在进程的最前面或最后面。3)时钟边沿的描述时钟上升沿:(clock’eventandclock=‘1’)时钟下降沿:(clock’eventandclock=‘0’
此文档下载收益归作者所有