那曲檬骨新材料有限公司

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

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

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

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

ruikundianzi ? 來源:IC的世界 ? 2023-11-01 17:37 ? 次閱讀

相鄰的格雷碼只有1bit的差異,因此格雷碼常常用于異步fifo設(shè)計(jì)中,保證afifo的讀地址(或?qū)懙刂罚┍粚?a href="http://www.qldv.cn/tags/時(shí)鐘/" target="_blank">時(shí)鐘(或讀時(shí)鐘)采樣時(shí)最多只有1bit發(fā)生跳變。

在不考慮路徑延時(shí)的情況下,因?yàn)樵磾?shù)據(jù)(讀寫地址)只有1bit變化,即使發(fā)生了亞穩(wěn)態(tài),最終的結(jié)果相當(dāng)于被目的時(shí)鐘延遲一拍采樣。

需要注意的是:異步fifo中使用格雷碼無法避免亞穩(wěn)態(tài),它起到的作用是,即使發(fā)生了亞穩(wěn)態(tài),依舊能夠保證異步fifo的功能正確

10進(jìn)制 二進(jìn)制 格雷碼
0 000 000
1 001 001
2 010 011
3 011 010
4 100 110
5 101 111
6 110 101
7 111 100

1.二進(jìn)制轉(zhuǎn)格雷碼



47432c84-7898-11ee-939d-92fbcf53809c.png 圖1:二進(jìn)制轉(zhuǎn)格雷碼

如圖所示,二進(jìn)制轉(zhuǎn)格雷碼實(shí)現(xiàn)簡(jiǎn)單,二進(jìn)制數(shù)據(jù)右移1bit,高位補(bǔ)零后與自身進(jìn)行位異或得到格雷碼。代碼實(shí)現(xiàn)如下:waddr為二進(jìn)制寫地址,waddr_gray為對(duì)應(yīng)的寫地址格雷碼

assign waddr_gray[ADDR_WDTH:0]=waddr[ADDR_WDTH:0] ^ {1’b0,waddr[ADDR_WDTH:1] }; 

2.格雷碼轉(zhuǎn)二進(jìn)制




4761a06a-7898-11ee-939d-92fbcf53809c.png

圖2:格雷碼轉(zhuǎn)2進(jìn)制 首先需要強(qiáng)調(diào)一下異或操作的特點(diǎn):

A、B、C為1bit二進(jìn)制整數(shù),假設(shè)等式為A^B==C,那么已知B和C的情況下,可以通過A==B^C求得A數(shù)值。此處可以使用窮舉法嘗試一下,只有4種情況。




從二進(jìn)制轉(zhuǎn)格雷碼也可以反推出格雷碼轉(zhuǎn)二進(jìn)制的思路。

首先:最高bit位是相等的,b7等于g7。

因?yàn)間6==b7^b6,根據(jù)異或特性(由A^B==C得到A==B^C),可得知b6=b7^g6,即b6=g7^g6

因?yàn)間5==b5^b6,根據(jù)異或特性,可得知b5=g5^b6,即b5=g5^g6^g7

依次類推:b0=g0^g1^g2^g3^g4^g6^g7



在如下Verilog代碼實(shí)現(xiàn)中,我們提供了3種寫法。
寫法1和寫法2都是已知確定位寬的情況下,實(shí)現(xiàn)格雷碼轉(zhuǎn)二進(jìn)制碼,不利于參數(shù)化。

寫法3采用function函數(shù)實(shí)現(xiàn),不限制位寬,支持參數(shù)化。

//寫法 1


assign bin_code[0]=gray_code[0]^gray_code[1]^gray_code[2]^gray_code[3] ;
assign bin_code[1]=gray_code[1]^gray_code[2]^gray_code[3] ;
assign bin_code[2]=gray_code[2]^gray_code[3] ;
assign bin_code[3]=gray_code[3] ;




//寫法2
assign bin_code = {gray_code[3], ^gray_code[3:2], ^gray_code[3:1], ^gray_code};






//寫法3:
function       [ADDR_WIDTH:0]   bin_out;    
   input       [ADDR_WIDTH:0]   gray_in;    
   reg         [ADDR_WIDTH:0]   gray_code;  
   reg         [ADDR_WIDTH:0]   bin_code;   
   integer i,j;                             
   reg tmp;                                 
   begin
       gray_code = gray_in;
       for(i=0;i<=ADDR_WIDTH;i=i+1)
           begin
           tmp=1'b0;
           for(j=i;j<=ADDR_WIDTH;j=j+1)
              tmp=gray_code[j]^tmp;
           bin_code[i]=tmp;
           end
       bin_out= bin_code;
   end
endfunction 

審核編輯:湯梓紅

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

    關(guān)注

    3

    文章

    389

    瀏覽量

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

    關(guān)注

    2

    文章

    34

    瀏覽量

    13223
  • 異步FIFO
    +關(guān)注

    關(guān)注

    0

    文章

    20

    瀏覽量

    8409
  • FIFO設(shè)計(jì)
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    4985

原文標(biāo)題:

文章出處:【微信號(hào):IP與SoC設(shè)計(jì),微信公眾號(hào):IP與SoC設(shè)計(jì)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    什么是

    (Gray code),又叫循環(huán)二進(jìn)制或反射二進(jìn)制 在數(shù)字系統(tǒng)中只能識(shí)別0和1,各種數(shù)據(jù)要轉(zhuǎn)換為二進(jìn)制代碼才能進(jìn)行處理,
    發(fā)表于 11-11 09:34 ?7420次閱讀
    什么是<b class='flag-5'>格</b><b class='flag-5'>雷</b><b class='flag-5'>碼</b>

    簡(jiǎn)介及格與二進(jìn)制的轉(zhuǎn)換程序

    簡(jiǎn)介及格與二進(jìn)制的轉(zhuǎn)換程序
    發(fā)表于 04-22 09:00

    什么是BCD、8421、余三、

    的是8421BCD,無權(quán)用得較多的是余三,我們通常所說的BCD
    發(fā)表于 11-03 17:36

    介紹

    介紹
    發(fā)表于 08-14 09:44

    詳細(xì)討論異步FIFO的具體實(shí)現(xiàn)???

    我在網(wǎng)上看到一篇利用來設(shè)計(jì)異步FIFO,但是看他們寫的一些源碼,小弟有些不是很理解,在設(shè)計(jì)時(shí)為什么會(huì)出現(xiàn)Waddr和wptr兩個(gè)關(guān)于寫
    發(fā)表于 05-19 11:04

    的規(guī)則和應(yīng)用問題?

    今天看到一個(gè)計(jì)數(shù)的程序,搜了下定義,覺得還是云里霧里,定義寫的是若任意兩個(gè)相鄰的代碼只有一位二進(jìn)制數(shù)不同,則這種編碼為
    發(fā)表于 08-20 14:41

    異步FIFO的VHDL設(shè)計(jì)

    給出了一個(gè)利用對(duì)地址編碼的羿步FIFO 的實(shí)現(xiàn)方法,并給出了VHDL 程序,以解決異步讀寫時(shí)鐘引起的問題。
    發(fā)表于 07-16 15:15 ?26次下載

    簡(jiǎn)介及格與二進(jìn)制的轉(zhuǎn)換程序

    簡(jiǎn)介及格與二進(jìn)制的轉(zhuǎn)換程序
    發(fā)表于 01-16 11:52 ?5059次閱讀

    運(yùn)算研究

    運(yùn)算研究 在數(shù)字系統(tǒng)中只能識(shí)別0和1,各種數(shù)據(jù)要轉(zhuǎn)換為二進(jìn)制代碼才能進(jìn)行處理,是一
    發(fā)表于 03-18 14:07 ?1483次閱讀

    循環(huán)VHDL源程序

    我們知道計(jì)數(shù)的特點(diǎn)就是相鄰的碼字只有一個(gè)比特不同,那么我們?cè)谠O(shè)計(jì)計(jì)數(shù)時(shí)找到這個(gè)比特取
    發(fā)表于 11-11 09:32 ?2125次閱讀

    辨析

    討論了Gray Code 的由來,剖析了關(guān)于的一些不合理說法,明確了其正宗的發(fā)明者應(yīng)該是弗蘭克·,正確的英文名稱是Gray Cod
    發(fā)表于 11-28 16:04 ?5783次閱讀
    <b class='flag-5'>格</b><b class='flag-5'>雷</b><b class='flag-5'>碼</b>辨析

    編碼規(guī)則_有什么規(guī)律

    典型的二進(jìn)制簡(jiǎn)稱,因1953年公開的弗蘭克·
    的頭像 發(fā)表于 03-02 14:29 ?5.6w次閱讀
    <b class='flag-5'>格</b><b class='flag-5'>雷</b><b class='flag-5'>碼</b>編碼規(guī)則_<b class='flag-5'>格</b><b class='flag-5'>雷</b><b class='flag-5'>碼</b>有什么規(guī)律

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

    在傳遞讀寫時(shí)鐘域的指針使用來傳遞,如何把二進(jìn)制轉(zhuǎn)換為
    的頭像 發(fā)表于 09-15 09:38 ?8382次閱讀
    如何把二進(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>是如何判斷讀空寫滿呢?

    異步FIFO的原因有哪些

    異步FIFO通過比較讀寫地址進(jìn)行滿空判斷,但是讀寫地址屬于不同的時(shí)鐘域,所以在比較之前需要先將讀寫地址進(jìn)行同步處理,將寫地址同步到讀時(shí)鐘域再和讀地址比較進(jìn)行FIFO空狀態(tài)判斷(同步后的寫地址一定
    的頭像 發(fā)表于 08-04 14:05 ?4481次閱讀

    異步FIFO-

    很多人在面試時(shí)被問到為什么異步FIFO中需要用到,可能大部分的答案是
    的頭像 發(fā)表于 08-26 14:20 ?1040次閱讀
    <b class='flag-5'>異步</b><b class='flag-5'>FIFO</b>-<b class='flag-5'>格</b><b class='flag-5'>雷</b><b class='flag-5'>碼</b>
    龙博线上娱乐| 大西洋百家乐官网的玩法技巧和规则| 试玩百家乐官网1000| 百家乐网哪一家做的最好呀| 百家乐官网的连庄连闲| 百家乐官网正规站| 全讯网赢足一世| 百家乐官网没边| 威尼斯人娱乐城注册网址| 哪个百家乐官网玩法平台信誉好| 百家乐的奥秘| 百家乐官网去澳门| 百家乐筹码币方形| 线上百家乐的玩法技巧和规则 | 视频百家乐官网网站| 百家乐社区| 百家乐官网新庄| 大发888官方网站登录| 太阳百家乐官网网| 皇冠开户网| 百家乐2号技术打法| 必胜娱乐城| 澳门百家乐才能| 百家乐官网乐城皇冠| 百家乐网络赌博网址| 牛牛现金棋牌| 网上百家乐大赢家| 金百亿百家乐官网娱乐城| 威尼斯人娱乐城地址| 澳门百家乐官网庄闲的玩法| 大发888网页版免费| 免费百家乐官网过滤软件| 北流市| 百家乐赌具哪里最好| 百家乐官网闲单开多少| 正品百家乐的玩法技巧和规则| 百家乐官网全部规| 优博网| 百家乐群博乐吧blb8v| 澳门百家乐官网网址多少| 大发888我发财官网|