作者:桂。

时间:2018-05-12  16:25:02

链接:http://www.cnblogs.com/xingshansi/p/9029081.html


前言

FIFO中的计数用的是格雷码,简要记录格雷码的分析思路。

一、格雷码与8421码对应关系

通过真值表分析,可以得出:

即格雷码是:8421码从最右边起,依次与左边一位异或,最左边一位不变,对应实现语言:

GrayCount_out <= {BinaryCount[COUNTER_WIDTH-],BinaryCount[COUNTER_WIDTH-:] ^ BinaryCount[COUNTER_WIDTH-:]};

另外:

二、仿真实现

Graycounter.v:

`timescale 1ns/1ps

module GrayCounter(Enable_in, Clear_in, Clk, GrayCount_out);
parameter COUNTER_WIDTH = ; output reg [COUNTER_WIDTH-:] GrayCount_out; //'Gray' code count output. input wire Enable_in; //Count enable.
input wire Clear_in; //Count reset.
input wire Clk; /////////Internal connections & variables///////
reg [COUNTER_WIDTH-:] BinaryCount; /////////Code/////////////////////// always @ (posedge Clk)
begin
if (Clear_in) begin
BinaryCount <= {COUNTER_WIDTH{'b 0}} + 1; //Gray count begins @ '' with
GrayCount_out <= {COUNTER_WIDTH{'b 0}}; // first 'Enable_in'.
end
else if (Enable_in) begin
BinaryCount <= BinaryCount + ;
GrayCount_out <= {BinaryCount[COUNTER_WIDTH-],
BinaryCount[COUNTER_WIDTH-:] ^ BinaryCount[COUNTER_WIDTH-:]};
end
end endmodule

testbench:

`timescale 1ns / 1ps
module graycounter_tb;
parameter COUNTER_WIDTH = ; logic clk,rst;
logic clr,en;
logic [COUNTER_WIDTH-:] GrayCount_out;
initial
begin
clk = ;
rst = ;
#
rst = ;
clr <= ;
en <= ;
#
clr <= ;
en <= ;
#
$stop;
end logic [:] counter; always # clk = ~clk; always @(posedge clk)
begin
if(rst | clr)
begin
counter <= ;
clr <= ;
en <= ;
end
else
begin
counter <= counter + 'b1;
end
end
//main
GrayCounter gray_inst(
.Enable_in(en),
.Clear_in(clr),
.Clk(clk),
.GrayCount_out(GrayCount_out)
); endmodule

电路图看出:

主要是LUT、D触发器、DS触发器,原语实现也较为方便。

格雷码(Gray code)仿真的更多相关文章

  1. 格雷码Gray Code详解

    格雷码简介 在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code),另外由于最大数与最小数之间也仅一位数不同,即“首尾相连”,因此又称循环码或反射码.格 ...

  2. [Swift]LeetCode89. 格雷编码 | Gray Code

    The gray code is a binary numeral system where two successive values differ in only one bit. Given a ...

  3. 用硬件(Verilog)实现二进制码和格雷码的转换

    格雷码(Gray code)是1880年由法国工程师Jean-Maurice-Emlle Baudot发明的一种编码,是一种绝对编码方式,典型格雷码是一种具有反射特性和循环特性的单步自补码,它的循环. ...

  4. 产生n位元的所有格雷码

    原文链接:http://blog.csdn.net/beiyeqingteng/article/details/7044471 问题:产生n位元的所有格雷码. 格雷码(Gray Code)是一个数列集 ...

  5. 解题(GeLeiMa -生成格雷码)

    题目描述 在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同, 则称这种编码为格雷码(Gray Code),请编写一个函数,使用递归的方法生成N位的格雷码. 给定一个整数n,请返回n位的格雷码 ...

  6. Gray Code——陈瑶师姐面试时候要用回溯算法

    The gray code is a binary numeral system where two successive values differ in only one bit. Given a ...

  7. 构建n位元的格雷码

    二进制格雷码的生成 1.什么是格雷码 Gray Code是一个数列集合,每个数使用二进制来表示,假设使用n位元来表示每个数字,那么任两个数之间只有一个位元值不同.log2(16)=4 例如: 生成4位 ...

  8. [LeetCode] Gray Code 格雷码

    The gray code is a binary numeral system where two successive values differ in only one bit. Given a ...

  9. LeetCode:Gray Code(格雷码)

    题目链接 The gray code is a binary numeral system where two successive values differ in only one bit. Gi ...

随机推荐

  1. WP8 调用webservice 错误 The remote server returned an error: NotFound 解决

    本人出错是由于本地的IIS不能被局域网其它机器访问导致的,如果你所用的本机IIS 也不可被其它机器访问,则可按照本文进行设置   具体操作时需要在防火墙设置中添加 入站规则   具体步骤如下: 1.控 ...

  2. BZOJ1179 [Apio2009]Atm Tarjan 强连通缩点 动态规划

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1179 题意概括 有一个有向图,每一个节点有一个权值,其中有一些结束点. 现在,你要从S出发,到达任 ...

  3. webstorm 格式化代码及常用快捷键

    mac 下 webstorm 格式化代码的快捷键 Option+Command+l windows 下 webstorm 格式化代码的快键键 Ctrl+Alt+l centOS 下webstorm 格 ...

  4. MySQL基础之数据类型和运算符

    早些年学习MySQL的笔记,发在博客园上,以便后续回顾学习: 1. 数据类型为int(11),注意到后面的数字11,这表示的是该数据类型指定的显示宽度,指定能够显示的数值中数字的个数.其他数据类型也可 ...

  5. 启动oracle command

    @echo off net start OracleXETNSListener >nul net start OracleServiceXE >nul

  6. 什么是mime类型

    本文转自:什么是mime类型 - 方法数码 http://www.fangfa.net/webnews/390.html MIME 类型在网站开发中经常碰到,特别是处理非文本数据的请求时(如:文件上传 ...

  7. springmvc框架javax.servlet.http.HttpServletResponse出现小红叉

    需要在项目点右键配置属性--->Library--->server runtime--->但是配置不能成功,原因是没有在windows下配置过runtime environment, ...

  8. Microsoft visual Studio2017 中番茄visual assist 破解

    百度查下,会发现VS(visual Studio)小番茄的破解有很多,但无外乎两种,第一种是输入注册码的,但是大多数[99%之上]都是无效的key值:还有一种是替换文件的.由于网络给的资料太多,也杂乱 ...

  9. April Fools Contest 2017 题解

    趁着上课无聊,来补一补-- A. Numbers Joke 直接oeis就好了:http://oeis.org/search?q=numbers+joke&language=english&a ...

  10. Mars的简单使用