用verilog写二进制计数器

如题所述

302进制计数器,就是从0开始计数,计数到301后,再从0开始重新计数,就像十进制计数一样,从0开始计数,计数到9后回到0重新开始计数。 //---302位计数器,从0开始计数,最大值是100101101(=301);(9位)-----// module counter302(clk,rst,Q); input clk; input rst; output reg [8:0] Q; always @(posedge clk or negedge rst) begin if(!rst) begin Q <= 9'b000000000; //复位后输出Q赋值0; end else begin //时钟上升沿开始计数 if(Q==9'b100101101) begin Q <= 9'b000000000; //计数到最大值(301)后,回到0重新计数; end else begin Q <= Q+1; end end end endmodule //------------------------------------------------------------------------------//
温馨提示:答案为网友推荐,仅供参考
相似回答