当前位置: 首页 > news >正文

【HDLbits--counter】

HDLbits--counter


在IC设计中,counter是十分普遍和重要的设计内容;

题目:基础计数器



module top_module (
    input clk,
    input reset,
    output [9:0] q);
	
    always @(posedge clk) begin
        if(reset) begin
            q <= 0;
        end else begin
            if(q==999) begin
                q <= 0;
            end else begin
               q <= q + 1; 
            end
        end
    end
endmodule

题目:



module top_module (
    input clk,
    input shift_ena,
    input count_ena,
    input data,
    output [3:0] q);
	
    always @(posedge clk) begin
        if(shift_ena) begin
            q <= {q[2:0],data};
        end else begin
           q <= q - 1'b1; 
        end
    end
endmodule

题目:
在这里插入图片描述


module top_module (
    input clk,
    input reset,      // Synchronous reset
    input data,
    output start_shifting);
	
    //============================
    //==Mearly FSM
    //============================
    parameter S0 = 3'b000;
    parameter S1 = 3'b001;
    parameter S2 = 3'b010;
    parameter S3 = 3'b100;
    
    reg[3 -1:0] cur_sta;
    reg[3 -1:0] nxt_sta;
    
    //==State transition
    always @(*) begin
        case(cur_sta)
            S0: nxt_sta = (data==1'b1) ? S1 : S0;
            S1: nxt_sta = (data==1'b1) ? S2 : S0;
            S2: nxt_sta = (data==1'b0) ? S3 : S2;
            S3: nxt_sta = S0;
            default: nxt_sta = S0;
        endcase
    end
    
    //==State D-flop-flop
    always @(posedge clk) begin
        if(reset) begin
            cur_sta <= S0;
        end else begin
           cur_sta <= nxt_sta; 
        end
    end
    
    //==Output 
    always @(posedge clk) begin
        if(reset) begin
            start_shifting <= 1'b0;
        end else begin
            start_shifting <= ((cur_sta==S3) && (data==1'b1)) ? 1 : start_shifting; 
        end
    end
endmodule

相关文章:

  • DeepSeek开源Day4:DualPipeEPLB技术详解
  • GitHub CI流水线
  • Element-ui菜单名字过长,显示省略号,鼠标悬停显示
  • 微信小程序调用阿里云的大规模模型+后端 python 实现人与人工智能进行对话
  • C++ Primer 拷贝控制和资源管理
  • 【大学生体质】智能 AI 旅游推荐平台(Vue+SpringBoot3)-完整部署教程
  • PostgreSQL中的事务隔离
  • RK3568平台(GPIO篇)Android平台集成libgpiod库
  • python-leetcode-一和零
  • 基于大模型的重症肌无力预测与治疗方案研究报告
  • Spring Boot整合MinIO对象存储教程
  • Python 爬虫实战:高效采集电商数据,精准洞察市场风云!
  • 基于大模型的肌萎缩侧索硬化手术全流程预测与诊疗方案研究
  • 【再谈设计模式】解释器模式~语法的解析执行者
  • 高效便捷的 Spring Boot 通用控制器框架
  • 用向量数据库建立本地知识库
  • Linux时间子系统学习笔记
  • 【大模型篇】推理模型大作战(QwQ-32B vs DeepSeek-R1)
  • 【二分查找、滑动窗口】P10389 [蓝桥杯 2024 省 A] 成绩统计|普及+
  • ROS2 Rviz 实战:给 panda 机械臂场景塞个圆柱体
  • 做建材外贸哪个网站比较好/永久免费的建站系统有哪些
  • 贴吧网站开发需求分析/石家庄新闻头条新闻最新今天
  • 建站魔方极速网站建设/谷歌seo培训
  • javaweb网站首页怎么做/凡科建站平台
  • 工程公司注册费用/长春seo推广
  • 用老域名做新网站/百度推广客服工作怎么样