基本时序逻辑电路设计docx.docx

上传人:b****5 文档编号:7428085 上传时间:2023-01-23 格式:DOCX 页数:19 大小:177.86KB
下载 相关 举报
基本时序逻辑电路设计docx.docx_第1页
第1页 / 共19页
基本时序逻辑电路设计docx.docx_第2页
第2页 / 共19页
基本时序逻辑电路设计docx.docx_第3页
第3页 / 共19页
基本时序逻辑电路设计docx.docx_第4页
第4页 / 共19页
基本时序逻辑电路设计docx.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

基本时序逻辑电路设计docx.docx

《基本时序逻辑电路设计docx.docx》由会员分享,可在线阅读,更多相关《基本时序逻辑电路设计docx.docx(19页珍藏版)》请在冰豆网上搜索。

基本时序逻辑电路设计docx.docx

基本时序逻辑电路设计docx

第五讲基本时序逻辑电路设计

2010年12月

基本时序逻辑电路设计

A时序逻辑电路的基本知识

A时序逻辑电路的VHDL描述

>同步时序逻辑电路和异步时序逻辑电路

A时序逻辑电路的基本知识

时序逻辑电路的电路特征:

•肘序勒路的输出信号不仅取决于勒路旨时的输入,还取决于电路原来的状态,体现

了“记忆”特性。

•从勒路行为上讲,不管输入如何变化,仅当时钟的沿(上升沿或下吟沿丿到达时,才有可能使输出发生变化。

触发器由对钟信号来触发,控制翻转时刻,而对触发器翻转到何种状态并无影响。

时序逻辑电路的两个基本组成部分:

•用来计算输入和寄存春的因数值的逻辑•用来椽持肘序逻辑削路状态的存储单元

描述时序逻辑电路的基本方式:

表达式(输出逻辑表达式、存储单元驱动表达式、触发器状态方程丿;

状态转换图/表;

肘序图

设计时序逻辑电路的基本方法:

•寄存赛传输级模矍CRTLJ:

根据肘存图把行为描述成奇存赛值的转换•状态机:

根据状态转换图/表描述状态机的行为

状态转换图

寄存器传输级结构

分析一个时序电路,就是要找出给定时序电路的逻辑功能。

具体地说,就是要求找出电路的状态和输出状态在输入变量和时钟信号作用下的变化规律。

 

 

状态方程

输出方程Y=XQ"C

XQn+XQn

驱动方程T=X

触发器特征方程°"+1二卩歹+初

o

 

X

Qn

Qn+i

Y

0

0

1

0

0

1

0

0

1

0

0

0

1

1

1

1

 

Kue

¥alue

oPS

111111111

200?

000ps

111111111

400,000ns6

111111111

00j000ps806000ps

111111111IIIL11

1

W1WI

riuuiuuuB

JWWWI

l■伽

0

0

0

1

in_n_n_n_

n

JT_」1

J

寄存器传输级时序模型

•D触发器

•触发器应用电路

•计数器设计(同步、异步计数)

分频电路设计电平锁存器

•时钟信号、获取边沿触发

•描述方式:

if>waituntil,rising_edge,falling_edge

•同步和非同步复

》时序逻辑电路的VHDL描述

/D触发器:

边沿触发的存储设备(Flip・Flop)

entitydffis

Port(elk:

instd_logic;

d:

instd_logic;q,qn:

outstd_logic);

enddff;architectureBehavioralofdffissignaloutp:

std_logic;

begin

qn<=notoutp;q<=outp;processbegin

waituntilrising_edge(clk);outp<=d;

endprocess;

endBehavioral;

dk

dff:

1

fd

outp

inv

qn_imp_qn1

qn

 

dff

同步D触发器RTL综合结果图

同步D触发器仿真结果图可设计同步削路^延迟勒路

A延迟电路

entitydelayis

port(clk9din:

instd_logic;dl,d2,dout:

outstd_logic);

enddelay;

architecturertlofdelayis

signal11,t2,tout:

std_logic;

begin

process(clk)

begin

ifrising_edge(clk)thentl<=din;t2<=tl;tout<=t2;

endif;

endprocess;

FD

dout<=tout;d2<=t2;dl<=tl;endrtl;

CurrentSimulation

Time:

1000ns

r

200

III

400

II

600

II

800

II

oJ'doul

0

X

yen

0

X

Qj'd2

0

□®IPERIOD[31:

0]

3...

32^00000028

訓DUTYCYCLE

0.5

0.5

E3§slOFFSET[31:

0]

3...

32'h00000028

切elk

0

nnnnnni

nnnnnn

nnni

m□口i

副din

0

A微分器电路

entitydiffis

port(elk,din:

instdjogic;d15d25up_diff,dn_diff5up_dn_diff:

outstdjogic);enddiff;

architecturertlofdiffis

signalt1,t2:

stdjogic;

begin

process(clk)

begin

ifrising_edge(clk)thent1<=din;t2<=t1;endif;

endprocess;

d2<=t2;d1<=t1;

up_diff<=t1andnott2;

dn_diff<=nott1andt2;

up_dn_diff<=t1xort2;

endrtl;

dn_dif>

DZB1

up_dif>

 

CurrentSimulationTime:

1000ns

0

200

I

400

I

600

800

II

oJIdn.ditf

0

X

qJ!

up_dn_diff

0

oJ!

up_diff

0

御CM

0

qJ!

d2

0

X

H^

0]

3…

J

32^00000028

0.5

0.5

El^

0]

3...

J

32^00000028

划!

elk

0

rLFLTVmW

m

p_njTjrm

釧din

0

J

T触发器

|PRE>-

PRE

IQ

IUF

E>

AND3

〉C

X

Qn

0+1

Y

0

0

1

0

0

1

0

0

1

0

0

()

1

1

1

1

E>

输出方程Y=XQHC

状态方程Qn+[=XQ^+XQn

 

entitytestservhdlis

Port(C:

instd」ogic;

X:

instdjogic;

Y:

outstd」ogic;PRE:

instdjogic);endtestservhdl;

architectureBehavioraloftestservhdlissignalq,t:

stdJogic;

begin

t<=notX;

Y<=qandCandX;

processbeginifPRE=fVthenqv=T;elsifrising_edge(C)thenift=frthenq<=notq;elseq<=q;endif;endif;

endprocess;endBehavioral;

testservhdtl

>同步时序逻辑电路与异步时序逻辑电路

根据电路中各级触发器时钟端的连接方式

同步时序电路设计

各触发器的时钟端全部连接到同一个时钟源上,统一受系统时钟的控制,各级触发器的状态变化是同时的。

异步时序电路设计

各触发器的时钟信号是分散连接的,因此触发器的状态变化不是同时进行的。

1•同步时序电路设计

1)同步时序电路原理说明

□从构成方式上讲,同步时序电路所有操作都是在同一时钟严格的控制下步调一致地完成的。

从电路行为上讲,同步电路的时序电路共用同一个时钟,而所有的状态变化都是在时钟的上升沿(或下降沿)完成的。

口在VHDL实现时并不要求同一时钟,而是同源时钟。

所谓的同源时钟是指同一个时钟源衍生频率比值为2的需次方,且初相位相同的时钟。

2)同步时序电路的VHDL描述

同步与门的描述

entitysyngateis

port(elk:

instd」ogic;a:

instd」ogic;b:

instd」ogic;y:

outstdjogic);

endsyngate;/

1、敏感信号只能是时钟信号;

2、时钟信号必须是同源的

3、时钟只能使用一个跳变沿

architecturebehavioralmsyngateis同步复位的描述begin/

process(clk)/ifrising_edge(clk)the

beginifrst_n=l0,then

ifrising_edge(clk)then…

y<=aandb;else

endif;...

endprocess;endif;

endBehavioral;endif;

具有同步复位功能的同步与门的描述

entitysyngateis

port(elk:

instdjogic;a:

instd」ogic;b:

instdjogic;

rst_n:

instd」ogic;y:

outstd」ogic);endsyngate;

architectureBehavioralofsyngateisbegin

process(clk)beginifrising_edge(clk)thenifrst_F=Othenyv=Oelsey<=aandb;

endif;endif;

endprocess;

endBehavioral;

and2

n

rstninvimprstnmv1

HMMWIWHH

yandOOOOimpyandDOOOl

复位信号rst_n过D触发器的控制端来实现。

 

RTL综合结果图

3)同步时序电路的设计准则

单肘钟策略.单肘钟沿策略

口尽量在设计中使用单时钟,在单时钟设计中,很容易就将整个设计同步于驱动时钟,使设计得到简化。

口尽量避免使用混合时钟沿来采样数据或驱动电路。

使用混合时钟沿将会使静态时序分析复杂,并导致电路工作频率降低。

下。

一个process的双时钟边缘描述方法:

process(clk)begin

对于可编程逻辑器件,不推荐同时使用同一信号的两个沿。

这是因为器件内部的时钟处理电路,只能保证时钟的一个沿具有非常好的指标,而另外一个沿的抖动、偏斜以及过渡时间等指标都不保证,因此同时采用两个沿会造成时钟性能的恶化。

endprocess;

二个process的双时钟边缘描述方法:

process(clk)begin

ifrising_edge(clk)then-■

■■■

endif;

endprocess;process(clk)beginiffallingedge(clk)then-

■■■

endif;

endprocess;

推荐首先将虑对钟僖频,然后利用单沿对削路进行操作。

利用混合时钟先后完成输入数据的下降沿和上升沿采样,并级联输出

entitydualedgeis

port(input:

instdjogic_vector(7downto0);outputl:

outstdjogic_vector(7downto0);output2:

outstd」ogic_vector(7downto0);elk:

instdjogic);

enddualedge;

architectureBehavioralofdualedgeissignaldt:

std」ogic_vector(7downto0);

beginoutputl<=dt;process(clk)begin

ifrising_edge(clk)thendt<=input;endif;

endprocess;

process(clk)

begin

iffalling_edge(clk)thenoutput2<=dt;endif;

endprocess;

endBehavioral;

dualedge:

1

 

避免使用门控时钟

口如果一个时钟节点由组合逻辑驱动,那么就形成了门控时

钟。

门控时钟常用来减少功耗。

FD

FD

□门控时钟相关的逻辑不是同步电路,即可能带有毛刺,而任何的一点点小毛刺都可以造成D触发器误翻转。

□门控逻辑会污染时钟质量,产生毛刺,并恶化偏移和抖动等指标。

口减少功耗的方法是:

低核电压FPGA、FPGA休眠技术以及动态部分重构技术等

laae

Value

0rs

iiii1iiii

10,000rs

111111111

20,000ps

iiii1iiii

30,000ps

iiii1iiii

40,000ps

iiii1i

wclk

1

II

轉input[7:

0]

05

t01:

[02:

:

03)

:

04J

;05

圈output1[7:

0

05

5X0

LX0

2X0

3>

[0

1

*r

圈output2[7:

0

04

(013

(02)

:

031

im

混合时钟边缘采样功能仿真图

CurrentSimulationTime:

1000ns

jns

25ns

II

15C

I

ns175ns

IIIIIII

20(

I

nsI

225II

ns

II

250nsII

275ris300ns325nIIIlliIlli

5

I

350ns375ns4CIIIIIIIlli

n^input[7:

0]

8,hF4

F4XX8tF7X8MF8X8*hF9%8'hFAX8怖日X&hFCXS'hFDXs'hFE)

L

闕clk

1

r

~L

aoutputi[7:

0]

8TiF3

ThF3j#hF4Xj'hF弓乂汕F6关8怖7乂汕刊)$hF9j(汕魚乂汕闪冶怖匚丿汕FDjx^hFE乂

aE^output2[7:

0]

S'hOO

□:

GRI0K

0IL」GJK}G「

jyiclk^period

20000000

混合时钟边缘采样时序仿真图

避免在子棋块内部使用计数器分频产生所需时钟

口各个模块内部各自分频会导致时钟管理混乱,不仅使得时序分析变得复杂,产生较大的时钟漂移,并且浪费了宝贵的时序裕量,降低了设计可靠性。

口推荐的方式是由一个专门的子模块来管理系统时钟,产生其他模块所需的各个时钟信号。

具有异步复位功能的同步与门的描述

entityasyngateisport(elk:

instdjogic;a:

instd」ogic;b:

instdjogic;

rst_n:

instd」ogic;

y:

outstdjogic);

endasyngate;

architectureBehavioralofasyngateisbegin

process(clk5rst_n)

begin

ifrst_n=,0,theny<=,0,;

elsifrising_edge(clk)theny<=aandb;

endif;

endprocess;

endBehavioral;

asyn「stand*!

RTL综合结果图

 

Vue

Value

逼elk

0

1

1

1

1

1111

1OOj000ps

Illi

150i000ps

iiii

200j000ps

iiii

250j000ds

iii

■uuin^

JirLTLTLr

JUIRJIT

TLnrm^

Jinn

1

1

1

异步复位与门仿真结果图

 

2.异步时序电路设计

1)异步时序电路原理说明

□异步时序电路,顾名思义就是电路的工作节奏不一致,不存在单一的主控时钟,电路状态的改变由外部输入的变化直接引起。

□主要是用于产生地址译码器、FIFO和异步RAM的读写控制信号脉冲。

除可以使用带时钟的触发器外,还可以使用不带时钟的触发器和延迟元件作为存储元件。

□由于异步电路没有统一的时钟,状态变化的时刻是不稳定的,通常输入信号只在电路处于稳定状态时才发生变化。

也就是说一个时刻允许一个输入发生变化,以避免输入信号之间造成的竞争冒险。

2)异步时序电路的VHDL描述

□异步电路不使用时钟信号对系统逻辑进行同步,但仍需要对各子系统进行控制,因此采用预先规定的“开始”和“完成”信号或者状态完成逻辑控制。

因此异步电路具有无时钟歪斜问题、低电源消耗等优点。

异步复位的描述

process(clk5rst_n)begin

ifrst_n='O'then

-resetproc

elsifrising_edge(clk)thenendif;

endprocess;

3.异步时序电路与同步时序电路的比较

□同步电路可以有效避免毛刺的影响,提高设计可靠性;

□同步电路用计数器或触发器实现延时,可以简化时序分析过程。

异步电路的延时靠门延时来实现,比较难预测;

□同步电路所有动作都在时钟控制下,可以减少工作环境对设计的影响。

异步电路受工作温度、电压等影响,器件时延变化较大,异步电路时序将变得更加苛刻,会导致芯片无法正常工作。

同步电路只要求时钟和数据沿相对稳定,时序要求较为宽松,因此对环境的依赖性较小。

口同步电路的时钟信号必须要分布到电路上的每一个触发器。

过高的信号翻转率使得设计功耗远大于异步电路功耗。

口同步电路最大的可能时钟周期是由电路中最慢的逻辑路径决定的,也就是关键路径。

口从资源使用方面考虑,虽然在ASIC设计中同步电路比异步电路占用的面积大,但是在FPGA中,是以逻辑单元衡量电路面积的,所以同步设计和异步设计相比,也不会浪费太多资源,加上目前的FPGA门数都比较大,在不是万不得已之际,不要使用异步设计。

目前商用的FPGA都是面向同步的电路设计而优化的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1