将一位热码译码为二进制码的方法及一位热码译码器技术

技术编号:3420746 阅读:224 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种将一位热码译码为二进制码的方法及一位热码译码器,所述方法包括:建立一位热码对应的二进制码矩阵,将输入的一位热码分别与矩阵各列的向量做“与”操作,或者分别按照矩阵各列中向量“1”所处的位置从输入的一位热码中提取相应位置的向量做“或”操作,根据二进制矩阵的列排序情况拼接所述操作结果,得到的码字序列即为输入的一位热码对应的二进制码码字序列;所述一位热码译码器包括逻辑运算模块和排序模块。本发明专利技术使得一位热码译码器的产品结构得到了简化,降低了产品成本,同时提高了译码速度。

【技术实现步骤摘要】

本专利技术涉及译码技术,尤其涉及一种将一位热码译码为二进制码的方法及一位热码译码器
技术介绍
在现代数字逻辑电路设计中,一位热码(One-hot)编码方式是一种常用的编码方式。其特点为对于任何给定状态,最多只有一个状态位为“1”,所有其它的状态位都为“0”。如用“0001”表示“1”,“0010”表示“2”......“1000”表示“4”等。采用一位热码编码方式的优点在于易于综合、易于寻找关键路径、易于进行静态时序分析。具体来说,要判断当前是否在某一状态,只需要判断相应的状态位是“1”还是“0”即可。考虑一个典型的输出,它在某些特定状态时输出1,剩下的状态输出0,则只需要将上述特定状态对应的状态位“或”起来即可产生该输出,并且从状态稳定到输出稳定的延时很确定(一个或门的延时),因此易于综合以及进行静态时序分析。另外,一位热码还用于多个通道中某一通道被选中的表示方式。在某些情形下,需要将一位热码译码为二进制码(如8421码、格雷码等),二进制码是一种最紧密的编码,优点在于它使用的状态向量的位数最少。一个n位的二进制码可以表示最多2n的数,而n位一位热码编码只能表示n个数。下面通过一种16位一位热码译码器来对现有技术中将一位热码译码为二进制码的具体过程进行说明。请参阅图1,该图为现有技术中一种16位一位热码译码器的逻辑电路图,由图中可见,该16位一位热码译码器使用二选一多路选择器及或门进行搭建,其基本原理为通过五层二选一多路选择器确定出输入的16位一位热码中向量“1”所处的位置,然后即可根据“向量”1所处的位置将该一位热码转换为所需的二进制码。上述现有技术中的这种采用二选一多路选择器及逻辑门搭建的一位热码译码器,由于其使用的器件较多,因此其控制逻辑复杂,并且其耗费的资源较多,成本较高,另外,由于其采用了多达五层的二选一多路选择器,因此其得出最终结果的时间较长,速度较慢。
技术实现思路
本专利技术提供了一种将一位热码译码为二进制码的方法及一位热码译码器,用以解决现有技术中对一位热码进行译码时所需器件较多且控制逻辑复杂的问题。本专利技术技术方案包括一种将一位热码译码为二进制码的方法,包括步骤A、建立一位热码对应的二进制码矩阵;B、将输入的一位热码分别与矩阵各列的向量做“与”操作,或者分别按照矩阵各列中向量“1”所处的位置从输入的一位热码中提取相应位置的向量做“或”操作;C、根据二进制矩阵的列排序情况拼接所述操作结果,得到的码字序列即为输入的一位热码对应的二进制码码字序列。较佳的,所述步骤A具体包括步骤确定一位热码对应的二进制码的码字长度Lb,Lb为大于log2(Lo)的最小整数,其中Lo为一位热码的码字长度;建立一位热码对应的二进制码矩阵,矩阵中二进制码的列数等于二进制码的码字长度Lb。较佳的,所述步骤B具体包括步骤 确定矩阵中各列二进制码对应的掩码码字Mn,Mn={P(i,j-n),P(i-1,j-n),…,P(0,j-n)},其中P(i,j)为矩阵中第i行,第j列的二进制码字;将输入的一位热码分别与矩阵各列对应的掩码码字Mn做“与”操作,或者按照矩阵各列对应的掩码码字Mn中向量“1”所处的位置分别从输入的一位热码中提取相应位置的向量做“或”操作。较佳的,所述二进制码为8421码或格雷码。一种一位热码译码器,包括逻辑运算模块,用于根据一位热码对应的二进制矩阵将输入的一位热码分别与矩阵中各列的向量做“与”操作,或者按照矩阵各列中向量“1”所处的位置分别从输入的一位热码中提取相应位置的向量做“或”操作;排序模块,用于根据二进制矩阵的列排序情况拼接逻辑运算模块输出的操作结果,得到的码字序列即为输入的一位热码对应的二进制码码字序列。较佳的,所述逻辑运算模块中进一步包括若干个码字确定子模块,每个码字确定子模块与矩阵中的一列二进制码相对应,用于将输入的一位热码与该列二进制码的向量值做“与”操作,或者按照该列二进制中值为“1”的向量位置从输入的一位热码中提取相应位置的向量值做“或”操作。较佳的,所述二进制码为8421码或格雷码。本专利技术的一位热码译码器只需两层功能模块即可实现,从而解决了现有技术中对一位热码进行译码时所需器件较多且控制逻辑复杂的问题,使得一位热码译码器的产品结构得到了简化,降低了产品成本,同时提高了译码速度,并且本专利技术的译码方式的可扩展性很强,无论多少位的一位热码,无论输出的二进制码为何种要求,都可以根据计算公式得到掩码。附图说明图1为现有技术中一种16位的一位热码译码器的逻辑电路图;图2为本专利技术将一位热码译码为二进制码的方法的实现原理流程图; 图3为本专利技术一位热码译码器的结构框图;图4为本专利技术实施例一中将16位的一位热码译码为8421码的流程图;图5为本专利技术实施例一中16位的一位热码译码器的电路原理图;图6为本专利技术实施例二中将16位的一位热码译码为格雷码的流程图;图7为本专利技术实施例二中16位的一位热码译码器的电路原理图。具体实施例方式为解决现有技术中对一位热码进行译码时所需器件较多且控制逻辑复杂的问题,本专利技术通过建立一位热码对应的二进制码矩阵,将输入的一位热码分别与矩阵中各列二进制码的向量值做“与”操作,或者分别按照各列二进制码中值为“1”的向量位置从输入的一位热码中提取相应位置的向量值做“或”操作,然后根据二进制矩阵的列排序情况拼接所述操作结果,得到输入的一位热码对应的二进制码字序列。采用上述方式对一位热码进行译码时,一位热码译码器只需两层功能模块即可构建,从而使一位热码译码器的产品结构得到了简化,降低了产品成本,同时提高了译码速度。请参阅图2,该图为本专利技术将一位热码译码为二进制码的方法的实现原理流程图,其主要包括步骤步骤S20、确定一位热码对应的二进制码的码字长度Lb,Lb为大于log2(Lo)的最小整数,其中Lo为一位热码的码字长度;步骤S21、建立一位热码对应的二进制码矩阵,矩阵中二进制码的列数等于二进制码的码字长度Lb;步骤S22、确定矩阵中各列二进制码对应的掩码码字Mn,Mn={P(i,j-n),P(i-1,j-n),…,P(0,j-n)},其中P(i,j)为矩阵中第i行,第j列的二进制码字;步骤S23、将输入的一位热码分别与矩阵各列对应的掩码码字Mn做“与”操作,或者按照矩阵各列对应的掩码码字Mn中向量“1”所处的位置分别从输入的一位热码中提取相应位置的向量做“或”操作; 步骤S24、根据二进制矩阵的列排序情况拼接所述操作结果,得到的码字序列即为输入的一位热码对应的二进制码码字序列。相应于上述方法,本专利技术进而提出了一种一位热码译码器,请参阅图3,该图为本专利技术一位热码译码器的结构框图,其主要包括逻辑运算模块和排序模块,其中各个模块的主要作用如下逻辑运算模块,用于根据一位热码对应的二进制矩阵将输入的一位热码分别与矩阵中各列的向量做“与”操作,或者按照矩阵各列中向量“1”所处的位置分别从输入的一位热码中提取相应位置的向量做“或”操作;排序模块,用于根据二进制矩阵的列排序情况拼接逻辑运算模块输出的操作结果,得到的码字序列即为输入的一位热码对应的二进制码码字序列。其中所述逻辑运算模块中进一步包括若干个码字确定子模块,每个码字确定子模块与矩阵中的一列二进制码相对应,用于将输入的一位热码与该列本文档来自技高网
...

【技术保护点】
一种将一位热码译码为二进制码的方法,其特征在于,包括步骤:    A、建立一位热码对应的二进制码矩阵;    B、将输入的一位热码分别与矩阵各列的向量做“与”操作,或者分别按照矩阵各列中向量“1”所处的位置从输入的一位热码中提取相应位置的向量做“或”操作;    C、根据二进制矩阵的列排序情况拼接所述操作结果,得到的码字序列即为输入的一位热码对应的二进制码码字序列。

【技术特征摘要】

【专利技术属性】
技术研发人员:邹杨
申请(专利权)人:北京中星微电子有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利