登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Design IC

慢即是快,快即是慢

 
 
 

日志

 
 

双沿触发器的设计实现  

2016-03-06 21:26:02|  分类: Design |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 

前言

绝大部分数字逻辑最终是由标准单元实现的,而一般的标准单元里只有单沿触发器,要么上升沿触发,要么下降沿 触发;没有即上升沿触发也下降沿触发的双沿触发器。

而在现实应用中,随着DDR技术的流行,对双沿触发的需求越来越多。本文主要讲述如何用单沿触发器来有效的实 现双沿触发器的功能。

方法1:用时钟选择输出

这个是最直接的方法,分别用上升沿和下降沿采样数据,然后用时钟来选择不同沿的采样数据,高电平选择上升沿 采样的数据,低电平选择下降沿采样的数据。如图1

2016年03月06日 - ICDesigner - Design IC

                        图1:时钟选择输出的双沿触发器

此方法的问题在于输出Y和时钟clk相关,这对于后端APR是非常不建议的方式。clk和数据交叠,时钟树、时序分析 都会存在困扰。因此,若非迫不得已,请不要使用上述看起来很直观的方法。

方法2:组合设计,寄存器逻辑输出

此方法的目标是解决方法1的潜在问题,让输出路径上没有时钟,仅仅和寄存器相关。

首先,为了实现上升沿/下降沿都能采样数据,必须至少有一个上升沿触发器和一个下降沿触发器。

做如下定义:

  • 上升沿触发器的当前输出值为 P, 下一个时钟沿(上升沿或者下降沿)后输出值为 P
  • 下降沿触发器的当前输出值为 N, 下一个时钟沿(上升沿或者下降沿)后输出值为 N
  • 当前输入值为 i
  • 当前输出值为 Y, 下一个时钟沿(上升沿或者下降沿)之后输出值为 Y

因为输出Y仅仅和寄存器相关, 因此定义Y N,P 的关系为布尔函数 fy 

Y=fy(N,P)

Y=fy(N,P)

P'N'不仅仅和寄存器相关,还和输入有关,因此定义:

N=fn(i,N,P)

P=fp(i,N,P)

为了达成如上目标,需要满足以下条件:

1.    双沿触发器的功能是,当下一个时钟沿(不论是上升沿还是下降沿)是来临之后,输出值必须等于输入值 i,即:

o   当输入 i=0 时, Y=0

o   当输入 i=1 时, Y=1

2.    先考虑上升沿,对于上升沿,下降沿的触发器值不变,也就是

N=N

整理如表1

Table 1: 正沿逻辑真值表

i

N

P

Y'= fy(N',P')

P'=fp(i,N,P)

0

0

0

0

 

0

0

1

0

 

0

1

0

0

 

0

1

1

0

 

1

0

0

1

 

1

0

1

1

 

1

1

0

1

 

1

1

1

1

 

由上表,由于 Y 只和 i 相关(注意N=N)

o   上半部,不论N取值是0还是1 Y'的取值都是0

o   下半部,不论N取值是0还是1 Y'的取值都是1

考虑到如下等式:

N xor N=0

N xor ~N=1

根据如上等式,如果设定:

Y=N xor P

Y=N xor P

就可以满足真值表中关于 Y 的要求,于是将真值表上部分(Y=0)的部分的 P 值填写为和 N 相同的值. 将真值表下部分(Y=1) P 值填写为 N 值的取反,P 填写之后,得到如下真值表表2:

Table 2: 正沿逻辑真值表

i

N

P

Y'= fy(N',P')

P'=fp(i,N,P)

0

0

0

0

0

0

0

1

0

0

0

1

0

0

1

0

1

1

0

1

1

0

0

1

1

1

0

1

1

1

1

1

0

1

0

1

1

1

1

0

根据以上真值表,经过化简,得到:

P=fp(i,N,P)=i xor N

3.    同理,考虑下降沿,对于下降沿, 上升沿触发器的值不变P=P. 整理真值表如表3

Table 3: 负沿逻辑真值表

i

P

N

Y'= fy(N',P')

N'=fp(i,N,P)

0

0

0

0

0

0

0

1

0

0

0

1

0

0

1

0

1

1

0

1

1

0

0

1

1

1

0

1

1

1

1

1

0

1

0

1

1

1

1

0

4.    也可以得到 N 的简化逻辑:

5.    N=fn(i,N,P)=i xor P

6.    综合 YP  N 的逻辑:

Y=N xor P

N=i xor P

P=i xor N

得到如下的双沿触发器的实现, 如图2

2016年03月06日 - ICDesigner - Design IC

                       图2:寄存器输出的双沿触发器

结论:

本文根据双沿触发器的设计要求,要求满足输出只和寄存器相关,一步一步根据真值表得到各个状态和输出的逻辑关系, 从而得到双沿触发器的设计结果。

 

  评论这张
 
阅读(1158)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018