「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
相关推荐
WarPigs24 分钟前
blender场景导入Unity的流程(个人总结)
笔记
Song2 小时前
JVM 学习计划表(2025 版)
jvm·学习
小杨爱学习zb2 小时前
学习总结 网格划分+瞬态求解设置
笔记·学习·算法
互联网上的猪3 小时前
Excel时间类型函数(包括today、date、eomonth、year、month、day、weekday、weeknum、datedif)
笔记·学习·excel
weixin_535455793 小时前
WPF设计学习记录滴滴滴2
学习·wpf
阿超爱嵌入式3 小时前
STM32学习笔记之RCC模块(实操篇)
笔记·stm32·学习
yanyu-yaya3 小时前
devextreme-react/scheduler 简单学习
前端·学习·react.js
淬渊阁3 小时前
汇编学习之《运算和逻辑指令》
汇编·学习
别来无恙2023 小时前
算法设计学习4
c++·学习
小王努力学编程3 小时前
动态规划学习——回文子串系列问题【C++】
c++·学习·算法·leetcode·动态规划