上海网站建设小程序,阿里云带宽5m能做什么网站,php做网站如何配置域名的,网站顶部flash下载牛客网Verilog刷题——VL52 题目答案 题目 请编写一个十进制计数器模块#xff0c;当mode信号为1#xff0c;计数器输出信号递增#xff0c;当mode信号为0#xff0c;计数器输出信号递减。每次到达0#xff0c;给出指示信号zero。模块的接口信号图如下#xff1a; 模块的… 牛客网Verilog刷题——VL52 题目答案 题目 请编写一个十进制计数器模块当mode信号为1计数器输出信号递增当mode信号为0计数器输出信号递减。每次到达0给出指示信号zero。模块的接口信号图如下 模块的时序图如下 输入输出描述
信号类型输入/输出位宽描述clkwireInput1系统时钟信号rst_nwireInput1异步复位信号低电平有效modewireInput1模式选择信号当该信号为1计数器每个时钟加一为0则每个时钟减一numberregOutput44比特位宽计数器当前输出读数zeroregOutput1过零指示信号当number为0时该信号为1其他时刻为0
答案
timescale 1ns/1nsmodule count_module(input clk,input rst_n,input mode,output reg [3:0]number,output reg zero);reg [3:0] num;always (posedge clk or negedge rst_n)if(!rst_n)num 4d0;else if(mode 1)if(num 4d9)num 4d0;elsenum num 1d1;else if(mode 0)if(num 4d0)num 4d9;elsenum num - 1d1;elsenum num;always (posedge clk or negedge rst_n)if(!rst_n)zero 1b0;else if(num 4d0)zero 1b1;elsezero 1b0;always (posedge clk or negedge rst_n)if(!rst_n)number 4d0;elsenumber num;endmodule