matlab 生成格雷码,格雷码(Grey Code)生成规则
(1)
Grey碼在FPGA實際應用中是實用的碼,在8421BCD碼累加計數器中,如果寄存器需要發生多位(兩位或者以上)的跳變,會出現中間態,這樣作為組合邏輯的輸入是不穩妥的。
下面看兩個中間態的例子:
這是累加器的狀態轉換時序觀察,存在中間不希望的狀態。如果作為組合邏輯的輸入,狀態有可能跑飛。
左邊0111 -> 0101 -> 1000,右邊0101 -> 0111 -> 0110
(2)
采用格雷碼可以避免中間態的出現,因為相鄰兩個狀態之間只有1 bit差異。
下面是8421BCD碼(自然計數碼)和格雷碼的對應關系,以3bit為例:
自然碼 ? 0 1 ? ? ?2 ? ?3 4 5 6 7
自然碼二進制 000 001 010 011 100 100 101 111
格雷碼對應的十進制 ? 0 1 3 2 6 7 5 4
格雷碼 000 001 011 010 110 111 101 100
在百度百科上面看到了這個圖片,發現了規律:
對于這個4 bit格雷碼,我們發現最高位(g3)在組群前一半是0,后一半是1,非常整齊。而且非最高位(g2,g1,g0)組成的狀態關于黃線對稱,比如離黃線最近的g2g1g0都是100,再遠一位是101,。。。最遠一位是000。
按照這個規則,我們可以由n長度的格雷碼生成n+1長度的格雷碼。
- - 附錄 - -
把這個圖倒過來,看到白色藍色的方塊圖案:
我們發現格雷碼的方塊圖案關于紅線是軸對稱的(除了最高位g3),
8421BCD碼的方塊圖案關于紅線是取反軸對稱的(除了最高位g3)。
標簽:格雷,Code,g3,8421BCD,Grey,000,100,101
來源: https://www.cnblogs.com/YangGuangPu/p/11259514.html
總結
以上是生活随笔為你收集整理的matlab 生成格雷码,格雷码(Grey Code)生成规则的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java反序列化后不相等_Jackson
- 下一篇: andriod studio 运行 无结