时序逻辑电路设计_第1页
时序逻辑电路设计_第2页
时序逻辑电路设计_第3页
时序逻辑电路设计_第4页
时序逻辑电路设计_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

5.2时序逻辑电路设计5.2.1触发器5.2.2计数器在时序电路中,是以时钟信号作为驱动信号的,也就是说时序电路是在时钟信号的边沿到来时,它的状态才会发生改变。因此,在时序电路中时钟信号是非常重要的,它是时序电路的执行条件和同步信号。在用VHDL描述时序逻辑电路时,通常采用时钟进程的形式来描述,也就是说,时序逻辑电路中进程的敏感信号是时钟信号。时钟作为敏感信号的描述方式有两种:1.时钟信号显示地出现在PROCESS语句后面的敏感信号表中。2.时钟信号没有显示地出现在PROCESS语句后面的敏感信号表中,而是出现在WAIT语句的后面。在时序逻辑电路中,时钟是采用边沿来触发的,时钟边沿分为上升沿和下降沿。以下是这两种边沿的描述方式。对于上升沿,其物理意义是指时钟信号的逻辑值是从‘0’跳变到‘1’。下面是时钟上升沿的几种描述形式:

上升沿描述:描述1:label1:PROCESS(clk)BEGINIF(clk’EVENTANDclk=‘1’)THEN┇ANDPROCESS;描述2:label2:PROCESS(clk)BEGINWAITUNTILclk=‘1’;┇ANDPROCESS;

下降沿描述:描述1:label1:PROCESS(clk)BEGINIF(clk’EVENTANDclk=‘0’)THEN┇ANDPROCESS;描述2:label2:PROCESS(clk)BEGINWAITUNTILclk=‘0’;┇ANDPROCESS;

6.1JK触发器例[]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')THEN

Q_temp<='1';

QB_temp<='0';ELSIF(set='1'ANDreset='0')THEN

Q_temp<='0';

QB_temp<='1';ELSIF(clk'EVENTANDclk='1')THENIF(J='0'ANDK='1')THEN

Q_temp<='0';

QB_temp<='1';ELSIF(J='1'ANDK='0')THEN

Q_temp<='1';

QB_temp<='0';ELSIF(J='1'ANDK='1')THEN

Q_temp<=NOTQ_temp;

QB_temp<=NOTQB_temp;ENDIF;ENDIF;Q<=Q_temp;QB<=QB_temp;ENDPROCESS;ENDbehave;

JK触发器仿真波形6.260进制递增计数器libraryieee;useieee.std_logic_1164.all;useieee.std_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);BEGIN

IF(clear='0')THEN

tmpl:="0000";

tmph:=“0000”;--异步清零

ELSIF(clk'EVENTANDclk='1')THENIFload='0'THEN

tmpl:=dl;

tmph:=dh;--同步置数

elsif(en='1')then

if(tmpl="1001")then

tmpl:=“0000”;--个位计数器9+1=0

if(tmph="0101")then

tmph:=“0000”;--十位计数器5+1=059+1=0else

tmph:=tmph+1;endif;else

tmpl:=tmpl+1;endif;

endIF;--endlf(load)ENDIF;--endifclear

ql<=tmpl;ent2<=tmpl(3)andtmpl(0)anden;

qh<=tmph;

cout<=tmph(2)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论