91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

為什么格雷碼可以輔助解決多bit跨時(shí)鐘域的問(wèn)題??求解

傅里葉的貓 ? 來(lái)源:無(wú)界邏輯 ? 2024-03-08 09:02 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

為什么格雷碼可以輔助解決多bit跨時(shí)鐘域的問(wèn)題?讀完這篇文章,你就會(huì)進(jìn)一步了解事情的本質(zhì)。

重要的事情講三遍,由前文可知:

單bit通過(guò)兩級(jí)同步打拍可以有效的解決亞穩(wěn)態(tài)問(wèn)題。

單bit通過(guò)兩級(jí)同步打拍可以有效的解決亞穩(wěn)態(tài)問(wèn)題。

單bit通過(guò)兩級(jí)同步打拍可以有效的解決亞穩(wěn)態(tài)問(wèn)題。

格雷碼是一種反射二進(jìn)制碼編碼方式,它兩個(gè)連續(xù)的值只相差一位(二進(jìn)制數(shù)字)。它屬于一種被稱為最小變化碼的代碼,在這種代碼中,相鄰的兩個(gè)碼字中只有一個(gè)比特發(fā)生變化。這是一個(gè)未加權(quán)的代碼,這意味著沒(méi)有為位置分配特定的權(quán)重。

生成方式如下圖所示

8b31f5d6-dce5-11ee-a297-92fbcf53809c.png

4位寬格雷碼與十進(jìn)制二進(jìn)制的對(duì)應(yīng)關(guān)系如下:

Decimal Binary Gray
0 0000 0000
1 0001 0001
2 0010 0011
3 0011 0010
4 0100 0110
5 0101 0111
6 0110 0101
7 0111 0100
8 1000 1100
9 1001 1101
10 1010 1111
11 1011 1110
12 1100 1010
13 1101 1011
14 1110 1001
15 1111 1000

如4bit的格雷碼一頭一尾也是兩個(gè)相鄰碼,一個(gè)是0000,一個(gè)是1000,它們的變換也是只有1bit。是不是很熟悉。對(duì)頭,“如果是單bit變化的話,可以采用兩級(jí)打拍的方式進(jìn)行時(shí)鐘域同步”。

按照這個(gè)思路,我們是不是可以將多bit數(shù)據(jù)轉(zhuǎn)換為格雷碼?然后采用兩級(jí)打拍的方式同步呢?如果源數(shù)據(jù)是遞增的方式,可以考慮這種處理方式的可能性。如果源數(shù)據(jù)也是變化無(wú)常的,則這種思路就只能嘎然而止了。

二進(jìn)制轉(zhuǎn)格雷碼的方法:

GrayCode最高位G[N]等于二進(jìn)制碼最高位B[N],GrayCode第n位等于二進(jìn)制碼B[n+1]位異或二進(jìn)制碼B[n]位。

以4位寬碼字為例,RTL圖如下:

8b4eaca8-dce5-11ee-a297-92fbcf53809c.png

格雷碼轉(zhuǎn)二進(jìn)制碼的方法:

二進(jìn)制碼最高位B[N]等于格雷碼最高位G[N],二進(jìn)制碼第n位B[n]等于二進(jìn)制碼B[n+1]位異或格雷碼第n位G[n]。

以4位寬碼字為例,RTL圖如下:

8b56751e-dce5-11ee-a297-92fbcf53809c.png

那么,異步FIFO是如何通過(guò)格雷碼,實(shí)現(xiàn)跨時(shí)鐘域高效處理的呢?我們下期再講。

你是否有所收獲?你肯定可以參考上述原理和電路,寫出二進(jìn)制與格雷碼之間的verilog轉(zhuǎn)換代碼。

module B2G #(
   parameter N = 4
(
input    [N-1:0]  B,
output  reg  [N-1:0]  G
);


integer i;
always @(*) begin
  G[N-1]  = B[N-1];
  for(i=N-2; i>=0; i=i-1) begin
    G[i] = B[i+1] ^ B[i];
  end
end


endmodule

module G2B #(
   parameter N = 4
(
input    [N-1:0]  G,
output  reg  [N-1:0]  B
);


integer i;
always @(*) begin
  B[N-1]  = G[N-1];
  for(i=N-2; i>=0; i=i-1) begin
    B[i] = B[i+1] ^ G[i];
  end
end


endmodule




審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 二進(jìn)制
    +關(guān)注

    關(guān)注

    2

    文章

    809

    瀏覽量

    43048
  • fifo
    +關(guān)注

    關(guān)注

    3

    文章

    407

    瀏覽量

    45761
  • RTL
    RTL
    +關(guān)注

    關(guān)注

    1

    文章

    394

    瀏覽量

    62679
  • 格雷碼
    +關(guān)注

    關(guān)注

    2

    文章

    34

    瀏覽量

    13539
  • 時(shí)鐘域
    +關(guān)注

    關(guān)注

    0

    文章

    53

    瀏覽量

    10045

原文標(biāo)題:為什么格雷碼可以輔助解決多bit跨時(shí)鐘域的問(wèn)題??

文章出處:【微信號(hào):傅里葉的貓,微信公眾號(hào):傅里葉的貓】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    關(guān)于時(shí)鐘信號(hào)的處理方法

    我在知乎看到了bit信號(hào)時(shí)鐘的問(wèn)題,于是整理了一下自己對(duì)于時(shí)鐘
    的頭像 發(fā)表于 10-09 10:44 ?8383次閱讀

    異步FIFO設(shè)計(jì)之

    相鄰的只有1bit的差異,因此常常用于異
    的頭像 發(fā)表于 11-01 17:37 ?2652次閱讀
    異步FIFO設(shè)計(jì)之<b class='flag-5'>格</b><b class='flag-5'>雷</b><b class='flag-5'>碼</b>

    如何處理好FPGA設(shè)計(jì)中時(shí)鐘問(wèn)題?

    手到擒來(lái)。這里介紹的三種方法時(shí)鐘處理方法如下:打兩拍;異步雙口 RAM;轉(zhuǎn)換。01方法
    發(fā)表于 09-22 10:24

    探尋FPGA中三種時(shí)鐘處理方法

    手到擒來(lái)。這里介紹的三種方法時(shí)鐘處理方法如下:打兩拍;異步雙口 RAM;轉(zhuǎn)換。01方法
    發(fā)表于 10-20 09:27

    三種時(shí)鐘處理的方法

    的三種方法時(shí)鐘處理方法如下:  1. 打兩拍;  2. 異步雙口RAM;  3. 轉(zhuǎn)換
    發(fā)表于 01-08 16:55

    三種FPGA界最常用的時(shí)鐘處理法式

    。對(duì)于使用異步雙口RAM來(lái)處理bit數(shù)據(jù)的時(shí)鐘,相信大家還是可以理解的。當(dāng)然,在能使用異步
    發(fā)表于 02-21 07:00

    FPGA初學(xué)者的必修課:FPGA時(shí)鐘處理3大方法

    。對(duì)于使用異步雙口RAM來(lái)處理bit數(shù)據(jù)的時(shí)鐘,相信大家還是可以理解的。當(dāng)然,在能使用異步
    發(fā)表于 03-04 09:22

    如何處理好FPGA設(shè)計(jì)中時(shí)鐘間的數(shù)據(jù)

    介紹3種時(shí)鐘處理的方法,這3種方法可以說(shuō)是FPGA界最常用也最實(shí)用的方法,這三種方法包含了單bit
    發(fā)表于 07-29 06:19

    FPGA界最常用也最實(shí)用的3種時(shí)鐘處理的方法

    介紹3種時(shí)鐘處理的方法,這3種方法可以說(shuō)是FPGA界最常用也最實(shí)用的方法,這三種方法包含了單bit
    發(fā)表于 11-15 20:08 ?1.5w次閱讀

    如何把二進(jìn)制轉(zhuǎn)換為?是如何判斷讀空寫滿呢?

    在傳遞讀寫時(shí)鐘的指針使用來(lái)傳遞,如何把二進(jìn)制轉(zhuǎn)換為
    的頭像 發(fā)表于 09-15 09:38 ?9228次閱讀
    如何把二進(jìn)制轉(zhuǎn)換為<b class='flag-5'>格</b><b class='flag-5'>雷</b><b class='flag-5'>碼</b>?<b class='flag-5'>格</b><b class='flag-5'>雷</b><b class='flag-5'>碼</b>是如何判斷讀空寫滿呢?

    CDC單bit脈沖時(shí)鐘的處理介紹

    ,基本原理就是把脈沖信號(hào)進(jìn)行展寬。 脈沖同步器應(yīng)用場(chǎng)景: 適用單bit脈沖信號(hào)時(shí)鐘。慢到快,快到慢均可,源脈沖間隔至少要為2個(gè)目的時(shí)鐘
    的頭像 發(fā)表于 03-22 09:54 ?4354次閱讀

    如何解決單bitbit時(shí)鐘處理問(wèn)題?

    一、簡(jiǎn)要概述: 在芯片設(shè)計(jì)過(guò)程中,一個(gè)系統(tǒng)通常是同步電路和異步電路并存,這里經(jīng)常會(huì)遇到CDC也就是時(shí)鐘處理的問(wèn)題,常見(jiàn)的處理方法,可能大家也已經(jīng)比較熟悉了,主要有單bit
    的頭像 發(fā)表于 03-22 10:28 ?7683次閱讀

    FPGA時(shí)鐘處理方法(二)

    上一篇文章已經(jīng)講過(guò)了單bit時(shí)鐘的處理方法,這次解說(shuō)一下bit
    的頭像 發(fā)表于 05-25 15:07 ?1760次閱讀
    FPGA<b class='flag-5'>跨</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b>處理方法(二)

    FPGAbit時(shí)鐘(一)

    FPGAbit時(shí)鐘適合將計(jì)數(shù)器信號(hào)轉(zhuǎn)換為
    的頭像 發(fā)表于 05-25 15:21 ?3781次閱讀
    FPGA<b class='flag-5'>多</b><b class='flag-5'>bit</b><b class='flag-5'>跨</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b>之<b class='flag-5'>格</b><b class='flag-5'>雷</b><b class='flag-5'>碼</b>(一)

    CDC時(shí)鐘處理及相應(yīng)的時(shí)序約束

    CDC(Clock Domain Conversion)時(shí)鐘分單bitbit傳輸
    的頭像 發(fā)表于 06-21 14:59 ?3241次閱讀