好用的快速网站建设平台,电商网站运营团队建设方案模板,网站seo的主要优化内容,网站备案号怎么修改牛客网Verilog刷题——VL51 题目答案 题目 请编写一个十六进制计数器模块#xff0c;计数器输出信号递增每次到达0#xff0c;给出指示信号zero#xff0c;当置位信号set 有效时#xff0c;将当前输出置为输入的数值set_num。模块的接口信号图如下#xff1a; 模块的时序图… 牛客网Verilog刷题——VL51 题目答案 题目 请编写一个十六进制计数器模块计数器输出信号递增每次到达0给出指示信号zero当置位信号set 有效时将当前输出置为输入的数值set_num。模块的接口信号图如下 模块的时序图如下 输入输出描述
信号类型输入/输出位宽描述clkwireInput1系统时钟信号rst_nwireInput1异步复位信号低电平有效setwireInput1置位指示信号当该信号有效时表示将输出信号强制置为set_numset_numwireInput44比特信号当set信号有效时将该信号的数字赋予输出信号numberzeroregOutput1过零指示信号当number计数到0时该信号为1其余时刻为0numberregOutput44比特位宽表示计数器的当前读数
答案
timescale 1ns/1nsmodule count_module(input clk,input rst_n,input set,input [3:0] set_num,output reg [3:0]number,output reg zero);reg [3:0] r_number;always (posedge clk or negedge rst_n)if(!rst_n)r_number 4d0;else if(set)r_number set_num;else if(r_number 4d15)r_number 4d0;elser_number r_number 1b1;always (posedge clk or negedge rst_n) if(!rst_n)zero 1b0;else if(r_numberd0)zero 1b1;elsezero 1b0;always (posedge clk or negedge rst_n) if(!rst_n)number d0;elsenumber r_number;endmodule