输出格雷码计数的方法及其计数器技术

技术编号:3411641 阅读:258 留言:1更新日期:2012-04-11 18:40
一种输出格雷码计数的方法,输出N位格雷码,N为大于1的自然数,其特征在于:采用N+1个触发器CNT[N:0];其中    第0位触发器CNT[0]在每个计数时钟沿反向;    第1位触发器CNT[1],当第0位触发器CNT[0]为1时,第1位触发器CNT[1]在计数时钟沿反向;    第M位触发器CNT[M],M为大于1小于N的自然数,当第M-1位触发器CNT[M-1]为1,第0位触发器CNT[0]到第M-2位触发器CNT[M-2]全为0,第M位触发器CNT[M]在计数时钟沿反向;    第N位触发器CNT[N],当第0位触发器CNT[0]到第N-2位触发器CNT[N-2]全为0,第N位触发器CNT[N]在计数时钟沿反向;    第N位触发器CNT[N]到第1位触发器CNT[1]输出的即是N位格雷码计数输出。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及微电子
输出格雷码计数的方法及其计数器
技术介绍
目前微电子领域如电子计算机等内部都是使用二进制编码计数器,包括自然码计数器与格雷码计数器。自然码是我们常用的计数编码,每次作加1运算时,可能有多个编码位发生变化。下表为一个3位自然码编码格式 该编码存在的一个缺点就是在相邻编码间可能有多个编码位发生变化。由于各编码位编发时间存在差别,就有可能出现错误的中间态。比如说,上表计数值从011变化到100时,由于三个比特都发生变化,若比特2最先变化,然后比特1变化,最后比特0变化,就有可能出现111、101两个我们并不希望得到的中间态。比如说,如果我们用组合逻辑判断,当计数到111时引爆炸弹,那么实际上可能在计数值从011变化到100时,由中间态111误触发而引爆炸弹。格雷码是一种做加1运算时,只变化一位的编码,下表即为一个三位格雷码编码格式 由于相邻码元之间只有一个比特发生变化,不会出现错误的中间态,在工程领域具有很强的使用价值。通常由自然码转换得到格雷码的方法如下对于一个N比特的计数器,该方法直接对其进行N比特的自然码计数,得到计数值CNT;然后将CNT右移一位,高位补0得到CNT_SFT;最后将CNT与CNT_SFT按位异或,得到格雷码GCNT。用该方实现3比特格雷码计数器的过程如下 该方法的格雷码是由自然码转换得到的,由于自然码计数过程中存在中间态,因而得到的格雷码也会出现中间态。比如说,上表中自然码从011变化为100时若出现中间态111,那么,格雷码从010变化到110时也会出现中间态100。若在计数时钟边缘对格雷码进行一次锁存可以消除格雷码的中间态,但会多用一倍的触发器资源。
技术实现思路
本专利技术公开了一种输出格雷码计数的方法及计数器,可以克服本专利技术的目的是这样实现的一种输出格雷码计数的方法,输出N位格雷码,N为大于1的自然数,其特征在于采用N+1个触发器CNT;其中第0位触发器CNT在每个计数时钟沿反向;第1位触发器CNT,当第0位触发器CNT为1时,第1位触发器CNT在计数时钟沿反向;第M位触发器CNT,M为大于1小于N的自然数,当第M-1位触发器CNT为1,第0位触发器CNT到第M-2位触发器CNT全为0,第M位触发器CNT在计数时钟沿反向;第N位触发器CNT,当第0位触发器CNT到第N-2位触发器CNT全为0,第N位触发器CNT在计数时钟沿反向; 第N位触发器CNT到第1位触发器CNT输出的即是N位格雷码计数输出。可选地,所述输出计数值在每一个计数时钟沿变化,循环输出2n个计数值。优选地,对最后的触发器CNT赋初值1,对前N个触发器CNT赋初值0,得到正向计数顺序的计数。优选地,对首尾两个触发器CNT、CNT赋初值1,对中间N-1个触发器CNT赋初值0,得到反向计数顺序的计数。一种输出格雷码计数的方法,输出N位格雷码,N为大于1的自然数,其特征在于采用N+1个触发器CNT;其中第0位触发器CNT在每个计数时钟沿反向;第1位触发器CNT,当第0位触发器CNT为0时,第1位触发器CNT在计数时钟沿反向;第M位触发器CNT,M为大于1小于N的自然数,当第M-1位触发器CNT为0,第0位触发器CNT到第M-2位触发器CNT全为1,第M位触发器CNT在计数时钟沿反向;第N位触发器CNT,当第0位触发器CNT到第N-2位触发器CNT全为1,第N位触发器CNT在计数时钟沿反向;第N位触发器CNT到第1位触发器CNT输出的即是N位格雷码计数输出。所述输出计数值在每一个计数时钟沿变化,循环输出2n个计数值。本专利技术还提出一种格雷码计数器,输出N位格雷码,N为大于1的自然数,其特征在于采用N+1个触发器CNT,其中第0位触发器CNT输出端经非门与其输入端相连接;第1位触发器CNT,第0位触发器CNT的输出端连接CNT的使能端,CNT输出端经非门与其输入端相连接; 第M位触发器CNT,M为大于1小于N的自然数;第0位触发器CNT到第M-2位触发器CNT的输出分别经非门与第M-1位触发器CNT的输出一起输入第M与门,所述第M与门的输出连接所述第M位触发器CNT的使能端;第N位触发器CNT;第0位触发器CNT到第N-2位触发器CNT的输出分别经非门后输入第N与门,所述第N与门的输出连接第N位触发器CNT的使能端;第N位触发器CNT到第1位触发器CNT输出的即是N位格雷码计数输出。本专利技术因为采用了上述技术方案,使得本专利技术公开的格雷码计数器输出计数值在相邻码元之间变化时不会出现中间过渡状态。利用触发器实现该计数器时,所用触发器资源极少,对于一个N位的格雷码计数器,只需要使用N+1个触发器。通过对计数器赋不同初值,可以很方便地实现正向及反向计数。附图说明图1是第0位触发器CNT的逻辑电路图;图2是第1位触发器CNT的逻辑电路图;图3是第M位触发器CNT的逻辑电路图;图4是第N位触发器CNT的逻辑电路图;图5是本专利技术输出3位格雷码的实施例电路图。具体实施例方式下面结合附图和实施例对本专利技术作进一步的阐述对于输出N位格雷码的格雷码计数器,设置N+1个触发器CNT,根据需要得到的计数系列,可以对其赋不同的初值。在此,N为大于1的自然数。如图1所示,第0位触发器CNT输出端经非门与其输入端相连接,使第0位触发器CNT在每个计数时钟沿反向。如图2所示为第1位触发器CNT,第0位触发器CNT的输出端连接CNT的使能端,CNT输出端经非门与其输入端相连接;若第0位CNT为1(或0),第1位触发器CNT在计数时钟沿反向。如图3所示为第M位触发器CNT,M为大于1小于N的自然数,第0位触发器CNT到第M-2位触发器CNT的输出分别经非门与第M-1位触发器CNT的输出一起输入第M与门,所述第M与门的输出连接所述第M位触发器CNT的使能端;若第M-1位触发器CNT为1(或0),第0位触发器CNT到第M-2位触发器CNT全为0(或1),第M位触发器CNT在计数时钟沿反向,在此,1<M<N。如图4所示为第N位触发器CNT,第0位触发器CNT到第N-2位触发器CNT的输出分别经非门后输入第N与门,所述第N与门的输出连接第N位触发器CNT的使能端;若第0位触发器CNT到第N-2位触发器CNT全为0(或1),第N位触发器CNT在计数时钟沿反向。第N位触发器到第1位触发器CNT的输出即为N位的格雷码计数输出。各触发器的输出计数值在每一个计数时钟沿变化,循环输出2n个计数值。当对最后的触发器(CNT)赋初值1,对前N个触发器(CNT)赋初值0,得到的计数顺序是正向计数。当对首尾两个触发器(CNT、CNT)赋初值1,对中间N-1个触发器(CNT)赋初值0,得到的计数顺序是反向计数。对于一个3位的格雷码计数器,计数输出格雷码系列实例如下(按上述各触发器括号“( )”外的描述实施)1、若CNT赋初置为0001,则输出的格雷码计数系列为CNT=000->001->011->010->110>111->101->100->000。这就是我们常用的正向计数。2、若CNT赋初置为1001,则输出的格雷码计数系列为CNT=100->101->111->110->010>011->001->00本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:李斌
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有1条评论
  • 来自[北京市联通] 2014年12月10日 11:47
    形容词言语行动与众不同也作动词有制作模板之意
    0
1
相关领域技术
  • 暂无相关专利