色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

異步FIFO設計之格雷碼

ruikundianzi ? 來源:IC的世界 ? 2023-11-01 17:37 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

相鄰的格雷碼只有1bit的差異,因此格雷碼常常用于異步fifo設計中,保證afifo的讀地址(或寫地址)被寫時鐘(或讀時鐘)采樣時最多只有1bit發生跳變。

在不考慮路徑延時的情況下,因為源數據(讀寫地址)只有1bit變化,即使發生了亞穩態,最終的結果相當于被目的時鐘延遲一拍采樣。

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

10進制 二進制 格雷碼
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.二進制轉格雷碼



47432c84-7898-11ee-939d-92fbcf53809c.png 圖1:二進制轉格雷碼

如圖所示,二進制轉格雷碼實現簡單,二進制數據右移1bit,高位補零后與自身進行位異或得到格雷碼。代碼實現如下:waddr為二進制寫地址,waddr_gray為對應的寫地址格雷碼

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

2.格雷碼轉二進制




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

圖2:格雷碼轉2進制 首先需要強調一下異或操作的特點:

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




從二進制轉格雷碼也可以反推出格雷碼轉二進制的思路。

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

因為g6==b7^b6,根據異或特性(由A^B==C得到A==B^C),可得知b6=b7^g6,即b6=g7^g6

因為g5==b5^b6,根據異或特性,可得知b5=g5^b6,即b5=g5^g6^g7

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



在如下Verilog代碼實現中,我們提供了3種寫法。
寫法1和寫法2都是已知確定位寬的情況下,實現格雷碼轉二進制碼,不利于參數化。

寫法3采用function函數實現,不限制位寬,支持參數化。

//寫法 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 

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • fifo
    +關注

    關注

    3

    文章

    400

    瀏覽量

    44779
  • 格雷碼
    +關注

    關注

    2

    文章

    34

    瀏覽量

    13397
  • 異步FIFO
    +關注

    關注

    0

    文章

    20

    瀏覽量

    8562
  • FIFO設計
    +關注

    關注

    0

    文章

    7

    瀏覽量

    5047

原文標題:

文章出處:【微信號:IP與SoC設計,微信公眾號:IP與SoC設計】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    什么是

    (Gray code),又叫循環二進制或反射二進制 在數字系統中只能識別0和1,各種數據要轉換為二進制代碼才能進行處理,
    發表于 11-11 09:34 ?7776次閱讀
    什么是<b class='flag-5'>格</b><b class='flag-5'>雷</b><b class='flag-5'>碼</b>

    簡介及格與二進制的轉換程序

    簡介及格與二進制的轉換程序
    發表于 04-22 09:00

    什么是BCD、8421、余三

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

    介紹

    介紹
    發表于 08-14 09:44

    詳細討論異步FIFO的具體實現???

    我在網上看到一篇利用來設計異步FIFO,但是看他們寫的一些源碼,小弟有些不是很理解,在設計時為什么會出現Waddr和wptr兩個關于寫
    發表于 05-19 11:04

    的規則和應用問題?

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

    異步FIFO的VHDL設計

    給出了一個利用對地址編碼的羿步FIFO 的實現方法,并給出了VHDL 程序,以解決異步讀寫時鐘引起的問題。
    發表于 07-16 15:15 ?26次下載

    簡介及格與二進制的轉換程序

    簡介及格與二進制的轉換程序
    發表于 01-16 11:52 ?5289次閱讀

    運算研究

    運算研究 在數字系統中只能識別0和1,各種數據要轉換為二進制代碼才能進行處理,是一
    發表于 03-18 14:07 ?1534次閱讀

    循環VHDL源程序

    我們知道計數的特點就是相鄰的碼字只有一個比特不同,那么我們在設計計數時找到這個比特取
    發表于 11-11 09:32 ?2194次閱讀

    辨析

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

    編碼規則_有什么規律

    典型的二進制簡稱,因1953年公開的弗蘭克·
    的頭像 發表于 03-02 14:29 ?5.9w次閱讀
    <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>有什么規律

    如何把二進制轉換為是如何判斷讀空寫滿呢?

    在傳遞讀寫時鐘域的指針使用來傳遞,如何把二進制轉換為
    的頭像 發表于 09-15 09:38 ?8686次閱讀
    如何把二進制轉換為<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通過比較讀寫地址進行滿空判斷,但是讀寫地址屬于不同的時鐘域,所以在比較之前需要先將讀寫地址進行同步處理,將寫地址同步到讀時鐘域再和讀地址比較進行FIFO空狀態判斷(同步后的寫地址一定
    的頭像 發表于 08-04 14:05 ?4758次閱讀

    異步FIFO-

    很多人在面試時被問到為什么異步FIFO中需要用到,可能大部分的答案是
    的頭像 發表于 08-26 14:20 ?1288次閱讀
    <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>
    主站蜘蛛池模板: 琪琪电影午夜理论片77网 | 亲嘴扒胸摸屁股视频免费网站 | 91欧洲在线视精品在亚洲 | 欧美最猛黑人AAAAA片 | 美女诱点第6季 | 男人和女人一级黄色大片 | 国产色婷婷精品人妻蜜桃成熟时 | 亚洲精品入口一区二区乱麻豆精品 | 国产精品国产三级国AV在线观看 | 国产91青青成人a在线 | 人妻体内射精一区二区 | 亚洲中文无码永久免费 | 国产成人女人在线视频观看 | 诱人的女邻居9中文观看 | 国产成人高清亚洲一区app | 中国jjzz| 国产超碰精久久久久久无码AV | 色女仆影院 | 亚洲AV国产国产久青草 | 娇妻玩4P被三个男人伺候电影 | 亚洲高清国产拍精品动图 | 超碰在线视频公开 | 十八禁久久成人一区二区 | 成人网视频在线观看免费 | 美国特级成人毛片 | 男人插曲视频大全免费网站 | chinese学生gv video | 人妻无码AV中文系列 | 国模啪啪久久久久久久 | 久久综合久久伊人 | 精品国产乱码久久久久久下载 | 99精品免费久久久久久久久日本 | 亚洲精品无码专区在线播放 | 国产欧美在线亚洲一区刘亦菲 | 国产97碰免费视频 | np高h肉辣一女多男 no视频在线观看 | 久久精品国产首叶 | 女人爽到高潮嗷嗷叫视频 | 高潮久久久久久久久不卡 | 国产专区_爽死777 | 大胸女晃奶动态图 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品