「Verilog学习笔记」格雷码计数器

专栏前言

本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网

复制代码
`timescale 1ns/1ns

module gray_counter(
   input   clk,
   input   rst_n,

   output  reg [3:0] gray_out
);
    reg [3:0] binary_cnt ; 
    reg flag ; 

    always @ (posedge clk or negedge rst_n) begin 
        if (~rst_n) flag <= 0 ; 
        else flag <= ~flag ;
    end

    always @ (posedge clk or negedge rst_n) begin 
        if (~rst_n) binary_cnt <= 0 ; 
        else binary_cnt <= flag ? binary_cnt + 1 : binary_cnt ; 
    end

    always @ (*) begin 
        gray_out = binary_cnt ^ (binary_cnt >> 1) ; 
    end  

endmodule
相关推荐
循环过三天1 小时前
3.4、Python-集合
开发语言·笔记·python·学习·算法
昌sit!3 小时前
Linux系统性基础学习笔记
linux·笔记·学习
学会沉淀。3 小时前
设备如何“开口说话”?
学习
没有钱的钱仔3 小时前
机器学习笔记
人工智能·笔记·机器学习
好望角雾眠4 小时前
第四阶段C#通讯开发-9:网络协议Modbus下的TCP与UDP
网络·笔记·网络协议·tcp/ip·c#·modbus
m0_591338914 小时前
day10数组的学习
学习
仰望—星空5 小时前
MiniEngine学习笔记 : CommandListManager
c++·windows·笔记·学习·cg·direct3d
电子云与长程纠缠5 小时前
Blender入门学习09 - 制作动画
学习·blender
电子云与长程纠缠5 小时前
Blender入门学习10 - 曲线绘制
学习·blender
下午见。5 小时前
C语言结构体入门:定义、访问与传参全解析
c语言·笔记·学习