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

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

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

FPGA多bit跨時(shí)鐘域之格雷碼(二)

CHANBAEK ? 來源:FPGA自學(xué)筆記分享 ? 作者:FPGA自學(xué)筆記分享 ? 2023-05-25 15:22 ? 次閱讀

上一篇文章我們講了二進(jìn)制轉(zhuǎn)gray碼,這次我們聊一下gray碼轉(zhuǎn)二進(jìn)制碼。

格雷碼解碼:

原碼:b[0~n]; 格雷碼:g0~n; 解碼:b=F(g);

??:b[n]=g[n],b=g XOR bI+1.

圖片圖片

代碼如下:

//============================================================
// File Name: cm_gray2bin
// VERSION  : V1.0
// DATA     : 2022/10/2
// Author   : FPGA干貨分享
// ============================================================
// 功能:二級(jí)制編碼轉(zhuǎn)格雷碼
// 
// 原碼:b[0~n];格雷碼:g[0~n](n∈N);編碼:g=G(b);解碼:b=F(g);
// 編碼:g=b XOR b[i+1](i∈N,0≤i≤n-1),g[n]=b[n];
// 解碼:b[n]=g[n],b=g XOR b[i+1](i∈N,0≤i≤n-1).
// 
// ============================================================
`timescale 1ns/1ps
module cm_gray2bin #(
    parameter                         C_DATA_WIDTH = 4 )
    (                  
    input wire                        I_sys_clk    , ///輸入時(shí)鐘
    input wire [C_DATA_WIDTH-1:0]     I_data_gray  , ///輸入gray碼
    output reg [C_DATA_WIDTH-1:0]     O_data_bin     ///輸出二進(jìn)制數(shù)據(jù)
    );

// ============================================================
// wire reg
// ============================================================
wire [C_DATA_WIDTH-1:0]     S_data_bin  ;
// ============================================================
// main code
// ============================================================
assign S_data_bin[C_DATA_WIDTH-1]     = I_data_gray[C_DATA_WIDTH-1];
assign S_data_bin[C_DATA_WIDTH-2:0] = I_data_gray[C_DATA_WIDTH-2:0]^S_data_bin[C_DATA_WIDTH-1:1];






always @(posedge I_sys_clk)
    O_data_bin <= S_data_bin;




endmodule

代碼綜合結(jié)果如下:

圖片

仿真如下:

圖片

聲明:本文內(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)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1621

    文章

    21516

    瀏覽量

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

    關(guān)注

    2

    文章

    34

    瀏覽量

    13157
  • bit
    bit
    +關(guān)注

    關(guān)注

    0

    文章

    47

    瀏覽量

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

    關(guān)注

    0

    文章

    50

    瀏覽量

    9513
  • 二進(jìn)制碼
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    6099
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    FPGA設(shè)計(jì)中解決時(shí)鐘的三大方案

    介紹3種時(shí)鐘處理的方法,這3種方法可以說是FPGA界最常用也最實(shí)用的方法,這三種方法包含了單bit
    的頭像 發(fā)表于 11-21 11:13 ?3722次閱讀
    <b class='flag-5'>FPGA</b>設(shè)計(jì)中解決<b class='flag-5'>跨</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>域</b>的三大方案

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

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

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

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

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

    以手到擒來。這里介紹的三種方法時(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í)鐘處理法式

    時(shí)鐘處理方法如下:打兩拍;異步雙口RAM;轉(zhuǎn)換。01方法一:打兩拍大家很清楚,處理
    發(fā)表于 02-21 07:00

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

    時(shí)鐘處理方法如下:打兩拍;異步雙口RAM;轉(zhuǎn)換。01方法一:打兩拍大家很清楚,處理
    發(fā)表于 03-04 09:22

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

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

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

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

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

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

    揭秘FPGA時(shí)鐘處理的三大方法

    時(shí)鐘處理的方法,這三種方法可以說是 FPGA 界最常用也最實(shí)用的方法,這三種方法包含了單 bit
    的頭像 發(fā)表于 12-05 16:41 ?1546次閱讀

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

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

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

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

    FPGAbit時(shí)鐘(一)

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