首页 > 其他分享 >HDLBits(16)4.18

HDLBits(16)4.18

时间:2023-04-18 21:15:25浏览次数:35  
标签:reset enable HDLBits 4.18 clk 计数器 16 output input

3 电路

3.2 时序逻辑

3.2.2 计数器

  •  Count1to10(Decade counter again)

与上题一样,区别是复位为1

module top_module(
    input clk,
    input reset,
    output [3:0] q);
    
    always @(posedge clk)
        begin
            if(reset)
                q <= 4'b0001;    //复位为1
            else if(q <= 4'b1001)
                q <= q + 1'b1;
            else
                q <= 4'b0001;
        end
endmodule
  •  Coutslow(Slow decade couter)

一个0-9,同步复位且复位为0的计数器,但计数器不随clk变化而递增,而是由slowena使能信号控制

module top_module (
    input clk,
    input slowena,
    input reset,
    output [3:0] q);

    always @ (posedge clk)
        begin
            if(reset)
                q <= 4'b0;
            else if(slowena == 1'b1)
                begin
                    if(q == 4'd9)
                        q <= 4'b0;
                    else 
                        q <= q + 4'd1;
                end
        end

endmodule
  •  Counter 1-12

 根据以下输入输出信号设计一个计算1~12的计数器

Reset:同步复位信号,高复位,将计数器复位为1.

Enable:使能信号高有效

Clk:时钟上升沿触发计数器工作

Q[3:0]:计数器输出

c_enable, c_load, c_d[3:0]:题目中给我们提供了一个4-bit的计数器,这三个信号是用于该4-bit计数器的控制信号。

题目提供给我们4-bit计数器

  1. 有enable信号,带复位和置位的计数器,将该计数器例化至我们的代码中。
  2. 再用一些其他的逻辑门来完成本题
module top_module (
    input clk,
    input reset,
    input enable,
    output [3:0]Q,
    output c_enable,
    output c_load,
    output [3:0]c_d
);
    reg [3:0] temp; //4-bit 计数器的控制信号
    assign c_enable = enable;
    assign c_load = reset | (Q == 4'd12 & enable == 1'b1);
    assign c_d = 4'b1;
    count4 the_counter (clk,c_enable,c_load,c_d,Q);
endmodule
  •  Counter1000

OneHertz: 从1000Hz中分离出1Hz的信号;这个信号主要用作于数字时钟中。

利用一个模10的BCD计数器和尽量少的逻辑门建立一个时钟分频器。同时输出每个BCD计算器的使能信号(c_enable[0]为高位,c_enable[2]为低位)

module bcdcount (
    input clk,
    input reset,
    output OneHertz,
    output [2:0] c_enable
);
    wire [3:0] q0,q1,q2;  //1000 -> 100(q2) -> 10(q1) -> 1(q0)
    assign c_enable = {q1==4'd9 && q0==4'd9,q0==4'd9,1'b1};
    assign OneHertz = {q2==4'd9 && q1==4'd9 && q0==4'd9};
    
    bcdcount counter0 (clk, reset, c_enable[0], q0);
    bcdcount counter1 (clk, reset, c_enable[1], q1);
    bcdcount counter2 (clk, reset, c_enable[2], q2);

endmodule

 

标签:reset,enable,HDLBits,4.18,clk,计数器,16,output,input
From: https://www.cnblogs.com/LhTian/p/17331092.html

相关文章

  • 每日总结-23.4.18
    <%@pageimport="zhengcechaxun.Pd_zhengce"%><%@pageimport="zhengcechaxun.Thesql"%><%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%>&......
  • 4.18 c++图形库easyx的基础编程
    头文件#include<graphcis.h>一基础绘图概念1.颜色用三原色表示RGB(红色部分,绿色部分,蓝色部分)每一部分的数值范围(0~255)。基本大写英文单词已对应例如BLUE蓝色2.窗口坐标的默认原点在左上角(0,0)x轴正方向向右,y轴正方向向下。二窗口函数initgraph(intwidth,intheigh......
  • 4.18
    #include<stdio.h>#include<math.h>#include<time.h>intmain(){ intn,i; intf=1; printf("请输入一个整数:"); scanf("%d",&n); for(i=1;i<=n;i++) { f=f*i; } printf("n!=%d\n",f); return0;   }......
  • 4.18 1.2
    一、问题描述5本书分给A、B、三人,每次只能分一本,几种分法。二、思路A可选1,2,3,4,5。B可选4本。C可选3本。 后一个人都会受到前一个人的限制,用三层循环。 三、代码#include<iostream>usingnamespacestd;intmain(){ inta,b,c;//表示三人的书编号inti=0;//i表示借阅次......
  • 4.18
    1、我昨天的成就:学习了Button,熟练掌握网络布局和滚动视图,花了两个小时。2、遇到什么困难对Button的掌握还是不太熟练。3、今天的任务。再一次学习了Button,完成了一个查看当前时间功能的按钮。4、团队成员的工作如果是开发工作必须有代码签入(截屏)。 ......
  • 4.18打卡
    一、问题描述:一辆卡车违反交通规则,撞人后逃跑。现场有三人目击该事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索求出车号。二、设计思路:该......
  • 建民打卡日记4.18
    一、问题描述二、设计思路三、程序流程图四、代码实现#include<iostream>#include<math.h>usingnamespacestd;intmain(){ doublenewt(floata,floatb,floatc,floatd); floata,b,c,d,x; cin>>a>>b>>c>>d; x=newt(a,b,......
  • 2023.4.18-人月神话-4月份读后感1
    最近,我阅读了人月神话的一部分,有了一些感受。过去,我对于编程的乐趣不是很了解。编程为什么有趣?首先是一种创建事务的纯粹快乐,其次快乐来自于开发对其他人有用的东西,第三是整个过程体现出魔术般的力量,第四是学习的乐趣,最后乐趣还来自于工作在如此易于驾驭的介质上。编程非常有趣,在......
  • 4.18打卡
       2.设计思路      ①.定义A,B,C      ②套入循环,先让A选择一本书      ③在A选完书的前提下让B选择一本书      ④在A和B选完书的前提下让C选择一本书      ⑤将A,B,C分别选择的值输出,代表分别选择的书; #include<bits/stdc++.h>......
  • 16 Ray Tracing (Monte Carlo Path Tracing)
    关键点MonteCarloIntegrationDistributedRayTracingPathTracingRussianRoulette(RR)SamplingtheLight(puremath)1.MonteCarloIntegration蒙特卡洛积分对于没有解析式的对象,可以使用该方法求其定积分。在积分范围内随机采样一个值,作为高,使用区间长度作为宽,......