作者:桂。

时间: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. 6-17 看图写树 uva10562

    非常好的dfs题  有很多细节 关于‘ ’  ‘0’  ’\n‘  的处理  他们都属于isspace函数 其中 while(buf[x+2][i]=='-'&&buf[x+3][i] ...

  2. 016 在大数据中,SSH无密钥登录

    一:概述 1.关于ssh ssh是一种安全协议. 会生成一对公钥和私钥. 2.问题的由来 3.解决方式 将生成的公钥发送到远程的机器上. 4.位置 主目录下的.ssh文件下. 二:在伪分布式下的操作 ...

  3. PhotoShop 常用快捷键

    PhotoShop: ctrl+j 复制一块图层ctrl+t 自由变换钢笔画出来的是路径不是选区,将路径转化成选区:ctrl+回车 alt+delete 直排文字蒙版ctrl+d 取消选择中括号可改变 ...

  4. maven环境的配置,如果jar包下载不下来,其他配置无错误的话,极有可能是网速的缘故

    1首先下载apach maven 2配置maven环境变量 m2_home  maven的源文件的路径 path变量后跟 %m2_home%\bin 3cmd 控制台运行mvn -version 查看 ...

  5. CSS3 根据屏幕大小显示内容(@media)

    @media (min-width: 993px) {  .footer .addZ1{display:none;}  .footer .addZ2{display:none;}  .footer . ...

  6. 算法竞赛入门经典-训练指南(10881-Piotr's Ants)

    题目大意: 一根长度为L的木棍一堆蚂蚁爬,向左或向右,速度都为1,若两蚂蚁碰撞则同时转头(转身时间忽略不计),问T时间之后每只蚂蚁的位置: 输入:t,(t个样例),每个样例输入 L,T,n,接下来是n ...

  7. django-用户验证系统

    django提供了一套用户验证系统,但是要使用这个系统,必须要使用django内置的用户模型:django.contrib.auth.models.User,这个模型中预先定义了一些字段,其中只有us ...

  8. IT 产品 需求 痛点

    英文应该有个 汉语发音 标注 这样的平台软件.罗马音.

  9. win7查看其它工作组 win7 所有工作组

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha win7 所有工作组 ==== win7  网络 工作组 查找 自身有问题.  多刷新几 ...

  10. python的条件与循环1

    一.if语句 功能 计算机又被称作电脑,意指计算机可以像人脑一样,根据周围环境条件(即expession)的变化做出不同的反应(即执行代码) if语句就是来控制计算机实现这一功能. if语句小结 if ...