「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
相关推荐
南宫生25 分钟前
力扣每日一题【算法学习day.133】
java·学习·算法·leetcode
SRA.1 小时前
STM32——HAL库开发笔记22(定时器3—呼吸灯实验)(参考来源:b站铁头山羊)
笔记·stm32·嵌入式硬件
SRA.1 小时前
STM32——HAL库开发笔记21(定时器2—输出比较)(参考来源:b站铁头山羊)
笔记·stm32·嵌入式硬件
C语言扫地僧1 小时前
RPC 框架项目剖析
c++·网络协议·学习·rpc
三少爷的甲壳虫1 小时前
Python&C
学习
DKPT2 小时前
计算机网络之路由协议(自治系统)
开发语言·笔记·学习·计算机网络·算法
虾球xz2 小时前
游戏引擎学习第119天
学习·游戏引擎
是懒羊羊吖~3 小时前
Visual Studio Code的下载安装与汉化
笔记·visual studio
日记成书4 小时前
详细介绍嵌入式硬件设计
嵌入式硬件·深度学习·学习
SRA.4 小时前
STM32——HAL库开发笔记23(定时器4—输入捕获)(参考来源:b站铁头山羊)
笔记·stm32·嵌入式硬件