您好,欢迎访问三七文档
第六章时序逻辑电路设计6.1时钟信号6.2触发器6.3计数器总目录章目录第二节第三节第一节在时序电路中,是以时钟信号作为驱动信号的,也就是说时序电路是在时钟信号的边沿到来时,它的状态才会发生改变。在用VHDL描述时序逻辑电路时,通常采用时钟进程的形式来描述,也就是说,时序逻辑电路中进程的敏感信号是时钟信号。因此,在时序电路中时钟信号是非常重要的,它是时序电路的执行条件和同步信号。时钟作为敏感信号的描述方式有两种:6.1时钟信号章目录第二节第三节第一节总目录在时序逻辑电路中,时钟是采用边沿来触发的,时钟边沿分为上升沿和下降沿。(1)上升沿描述:(2)下降沿描述:以下是这两种边沿的描述方式。(1)时钟信号显示地出现在PROCESS语句后面的敏感信号表中。(2)时钟信号没有显示地出现在PROCESS语句后面的敏感信号表中,而是出现在WAIT语句的后面。其物理意义是指时钟信号的逻辑值是从‘0’跳变到‘1’。其物理意义是指时钟信号的逻辑值是从‘1’跳变到‘0’。章目录第二节第三节第一节总目录描述2:label2:PROCESS(clk)BEGINWAITUNTILclk=‘1’;┇ANDPROCESS;描述1:label1:PROCESS(clk)BEGINIF(clk’EVENTANDclk=‘1’)THEN┇ANDPROCESS;(1)上升沿描述:章目录第二节第三节第一节总目录(2)下降沿描述:描述1:label1:PROCESS(clk)BEGINIF(clk’EVENTANDclk=‘0’)THEN┇ANDPROCESS;描述2:label2:PROCESS(clk)BEGINWAITUNTILclk=‘0’;┇ANDPROCESS;章目录第二节第三节第一节总目录6.2JK触发器例LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYJKff_v1ISPORT(J,K:INSTD_LOGIC;clk:INSTD_LOGIC;set:INSTD_LOGIC;reset:INSTD_LOGIC;Q,QB:OUTSTD_LOGIC);ENDJKff_v1;ARCHITECTUREbehaveOFJKff_v1ISSIGNALQ_temp,QB_temp:STD_LOGIC;章目录第二节第三节第一节总目录BEGINPROCESS(clk,set,reset)BEGINIF(set='0'ANDreset='1')THENQ_temp='1';QB_temp='0';ELSIF(set='1'ANDreset='0')THENQ_temp='0';QB_temp='1';ELSIF(clk'EVENTANDclk='1')THENIF(J='0'ANDK='1')THENQ_temp='0';QB_temp='1';章目录第二节第三节第一节总目录ELSIF(J='1'ANDK='0')THENQ_temp='1';QB_temp='0';ELSIF(J='1'ANDK='1')THENQ_temp=NOTQ_temp;QB_temp=NOTQB_temp;ENDIF;ENDIF;Q=Q_temp;QB=QB_temp;ENDPROCESS;ENDbehave;章目录第二节第三节第一节总目录JK触发器仿真波形章目录第二节第三节第一节总目录6.360进制递增计数器libraryieee;useieee.std_logic_1164.all;useieeestd_logic_unsigned.all;ENTITYcntm60vISPORT(en:INstd_logic;clear:INstd_logic;load:INstd_logic;dl,dh:INstd_logic_vector(3downto0);clk:INstd_logic;cout:outstd_logic;ql:bufferstd_logic_vector(3downto0);qh:bufferstd_logic_vector(3downto0));章目录第二节第三节第一节总目录ENDcntm60v;ARCHITECTUREbehaveOFcntm60vISsignalent2:std_logic;BEGINPROCESS(clk)VARIABLEtmpl,tmph:std_logic_vector(3downto0);BEGINIF(clear='0')THENtmpl:=0000;tmph:=“0000”;ELSIF(clk'EVENTANDclk='1')THEN异步清零章目录第二节第三节第一节总目录IFload='0'THENtmpl:=dl;tmph:=dh;elseif(en='1')thenif(tmpl=1001)thentmpl:=“0000”;if(tmph=0101)thentmph:=“0000”;elsetmph:=tmph+1;endif;elsetmpl:=tmpl+1;endif;同步置数个位计数器9+1=0十位计数器5+1=059+1=0章目录第二节第三节第一节总目录endIF;ENDIF;ql=tmpl;ent2=tmpl(3)andtmpl(0)anden;qh=tmph;cout=tmph(2)andtmph(0)andent2;ENDPROCESS;ENDbehave;计数器为59时进位信号cout输出‘1’章目录第二节第三节第一节总目录60进制计数器波形仿真章目录第二节第三节第一节总目录谢谢您使用《VHDL语言》课程多媒体课件再见!
本文标题:时序逻辑电路设计
链接地址:https://www.777doc.com/doc-3641453 .html