0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA多bit跨时钟域之格雷码(二)

CHANBAEK 来源:FPGA自学笔记分享 作者:FPGA自学笔记分享 2023-05-25 15:22 次阅读

上一篇文章我们讲了二进制转gray码,这次我们聊一下gray码转二进制码。

格雷码解码:

原码: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干货分享
// ============================================================
// 功能:二级制编码转格雷码
// 
// 原码: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    , ///输入时钟
    input wire [C_DATA_WIDTH-1:0]     I_data_gray  , ///输入gray码
    output reg [C_DATA_WIDTH-1:0]     O_data_bin     ///输出二进制数据
    );

// ============================================================
// 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

代码综合结果如下:

图片

仿真如下:

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21729

    浏览量

    603046
  • 格雷码
    +关注

    关注

    2

    文章

    34

    浏览量

    13185
  • bit
    bit
    +关注

    关注

    0

    文章

    48

    浏览量

    32014
  • 时钟域
    +关注

    关注

    0

    文章

    52

    浏览量

    9535
  • 二进制码
    +关注

    关注

    0

    文章

    3

    浏览量

    6112
收藏 人收藏

    评论

    相关推荐

    FPGA设计中解决时钟的三大方案

    介绍3种时钟处理的方法,这3种方法可以说是FPGA界最常用也最实用的方法,这三种方法包含了单bit
    的头像 发表于 11-21 11:13 3870次阅读
    <b class='flag-5'>FPGA</b>设计中解决<b class='flag-5'>跨</b><b class='flag-5'>时钟</b><b class='flag-5'>域</b>的三大方案

    异步FIFO设计

    相邻的只有1bit的差异,因此常常用于异
    的头像 发表于 11-01 17:37 1408次阅读
    异步FIFO设计<b class='flag-5'>之</b><b class='flag-5'>格</b><b class='flag-5'>雷</b><b class='flag-5'>码</b>

    简介及格进制的转换程序

    简介及格进制的转换程序
    发表于 04-22 09:00

    如何处理好FPGA设计中时钟问题?

    以手到擒来。这里介绍的三种方法时钟处理方法如下:打两拍;异步双口 RAM;转换。01方
    发表于 09-22 10:24

    探寻FPGA中三种时钟处理方法

    以手到擒来。这里介绍的三种方法时钟处理方法如下:打两拍;异步双口 RAM;转换。01方
    发表于 10-20 09:27

    三种时钟处理的方法

    的三种方法时钟处理方法如下:  1. 打两拍;  2. 异步双口RAM;  3. 转换
    发表于 01-08 16:55

    三种FPGA界最常用的时钟处理法式

    时钟处理方法如下:打两拍;异步双口RAM;转换。01方法一:打两拍大家很清楚,处理
    发表于 02-21 07:00

    FPGA初学者的必修课:FPGA时钟处理3大方法

    时钟处理方法如下:打两拍;异步双口RAM;转换。01方法一:打两拍大家很清楚,处理
    发表于 03-04 09:22

    如何处理好FPGA设计中时钟间的数据

    介绍3种时钟处理的方法,这3种方法可以说是FPGA界最常用也最实用的方法,这三种方法包含了单bit
    发表于 07-29 06:19

    FPGA界最常用也最实用的3种时钟处理的方法

    介绍3种时钟处理的方法,这3种方法可以说是FPGA界最常用也最实用的方法,这三种方法包含了单bit
    发表于 11-15 20:08 1.4w次阅读

    如何把进制转换为是如何判断读空写满呢?

    在传递读写时钟的指针使用来传递,如何把进制转换为
    的头像 发表于 09-15 09:38 8326次阅读
    如何把<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><b class='flag-5'>码</b>是如何判断读空写满呢?

    揭秘FPGA时钟处理的三大方法

    时钟处理的方法,这三种方法可以说是 FPGA 界最常用也最实用的方法,这三种方法包含了单 bit
    的头像 发表于 12-05 16:41 1644次阅读

    如何解决单bitbit时钟处理问题?

    一、简要概述: 在芯片设计过程中,一个系统通常是同步电路和异步电路并存,这里经常会遇到CDC也就是时钟处理的问题,常见的处理方法,可能大家也已经比较熟悉了,主要有单bit
    的头像 发表于 03-22 10:28 6809次阅读

    FPGA时钟处理方法()

    上一篇文章已经讲过了单bit时钟的处理方法,这次解说一下bit
    的头像 发表于 05-25 15:07 1023次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>跨</b><b class='flag-5'>时钟</b><b class='flag-5'>域</b>处理方法(<b class='flag-5'>二</b>)

    FPGAbit时钟(一)

    FPGAbit时钟适合将计数器信号转换为
    的头像 发表于 05-25 15:21 2754次阅读
    <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'>时钟</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>(一)