3d热码温码冷码是什么意思
这不是很明显嘛。格雷码:相邻之间只变1bit,编码密度高。独热码:任何状态只有1bit为1,其余皆为0,编码密度低。
比如说表示4个状态,那么状态机寄存器采用格雷码编码只需要2bit:00(S0),01(S1),11(S2),10(S3);采用独热码需要4bit:0001(S0),0010(S1),0100(S2),1000(S3)。所以很明显采用格雷码可以省2bit寄存器。难理解的是为什么独热码更节省组合逻辑:其实很简单,例一:假如我们要在代码中判断状态机是否处于某状态S1,对于格雷码的状态机来说代码是这样的:
assign S1 = (STATUS==2'b01); 对于独热码来说代码是这样的就行:
assign S1=STATUS; 所以独热码的译码非常简单。例二:考虑最简单的跳变,当A为1时,状态机会从S0跳到S1:。采用格雷码写:STATUS[1:0] <=(STATUS==2'h00) A ? 2'h01 : 2'h00;采用独热码写:STATUS <= STATUS[0] A;有人怀疑这里的逻辑,认为只check独热码的一个bit有问题。当然是没问题的,0110,0011等编码属于不care的编码,在卡诺图化简中,不care的编码可以与其余的有效编码合并化简。
实际上综合器也会这么做,所以独热码非常容易化简。
假如说S0跳到S1条件为A;S1跳到S2条件为B;S2跳到S3条件为C;S3跳到S0条件为D;那么整个状态机化简之后代码就是:STATUS[0] <= STATUS D;STATUS <= STATUS[0] A;STATUS <= STATUS B;STATUS <= STATUS C;总结一下:独热码适合写条件复杂但是状态少的状态机;格雷码适合写条件不复杂但是状态多的状态机。
免责声明:本站发布的教育资讯(图片、视频和文字)以本站原创、转载和分享为主,文章观点不代表本网站立场。
如果本文侵犯了您的权益,请联系底部站长邮箱进行举报反馈,一经查实,我们将在第一时间处理,感谢您对本站的关注!
新励学网教育平台
海量全面 · 详细解读 · 快捷可靠
累积科普文章数:18,862,126篇