列表

详情


VL67. 十六进制计数器

描述

请用Verilog设计十六进制递增计数器电路,每个时钟周期递增1。
电路的接口如下图所示。Q[3:0]中,Q[3]是高位。
接口电路图如下:


输入描述

   input                clk   ,
   input                rst_n ,

输出描述

   output   reg  [3:0]  Q   

原站题解

Verilog 解法, 执行用时: 0ms, 内存消耗: 0KB, 提交时间: 2022-08-06

`timescale 1ns/1ns

module counter_16(
   input                clk   ,
   input                rst_n ,
 
   output   reg  [3:0]  Q      
);

    always@(posedge clk or negedge rst_n)begin
        if(~rst_n)
            Q<=4'b0;
        else
            Q<=Q+1'b1;
    end
endmodule

Verilog 解法, 执行用时: 0ms, 内存消耗: 0KB, 提交时间: 2022-08-06

`timescale 1ns/1ns

module counter_16(
   input                clk   ,
   input                rst_n ,
 
   output   reg  [3:0]  Q      
);
    always@(posedge clk or negedge rst_n) begin
        if(!rst_n) begin
            Q <= 4'd0;
        end
        else begin
            Q <= Q + 'd1;
        end
    end
endmodule

Verilog 解法, 执行用时: 0ms, 内存消耗: 0KB, 提交时间: 2022-08-06

`timescale 1ns/1ns

module counter_16(
   input                clk   ,
   input                rst_n ,
 
   output   reg  [3:0]  Q      
);

    always @(posedge clk or negedge rst_n) begin
        if(!rst_n) begin
            Q<=0;
        end
        else begin
            if(Q==15) begin
               Q<=0; 
            end
            else begin
                Q<=Q+1'b1;
            end
        end
    
    end
    
    
    
endmodule

Verilog 解法, 执行用时: 0ms, 内存消耗: 0KB, 提交时间: 2022-08-06

`timescale 1ns/1ns

module counter_16(
   input                clk   ,
   input                rst_n ,
 
   output   reg  [3:0]  Q      
);
    always@(posedge clk or negedge rst_n) begin
        if(!rst_n) 
            Q<=4'd0;
            else
                Q <= (Q==4'd15)?4'd0:Q+1'b1;
    end
                

endmodule

Verilog 解法, 执行用时: 0ms, 内存消耗: 0KB, 提交时间: 2022-08-06

`timescale 1ns/1ns

module counter_16(
   input                clk   ,
   input                rst_n ,
 
   output   reg  [3:0]  Q      
);
    always@(posedge clk or negedge rst_n)
        begin
            if(!rst_n)
                Q <= 4'd0;
            else
                Q <= Q + 1'b1;
        end
    
endmodule

上一题