求verilog的十进制计数器

来源:百度知道 编辑:UC知道 时间:2024/06/09 12:39:18
要求计数器异步清零,高电平计数,低电平保持,有进位输出端。 谢谢各位了!!

module DecCnt(
reset_n,
clk,
in_ena,
cnt,
carry_ena
);

input clk;
input reset_n;
input in_ena;
output [3:0]cnt;
output carry_ena;

reg [3:0]cnt;
reg carry_ena;

always@(posedge clk or negedge reset_n) begin
if(!reset)
cnt <= 4'b0;
else if(in_ena && cnt==4'd10)
cnt <= 4'b0;
else if (in_ena && cnt < 4'd10)
cnt <= cnt + 1'b1;
end

always@(posedge clk or negedge reset_n) begin
if(!reset)
carry_ina <= 1'b0;
else if(in_ena && cnt==4'd10)
carry_ina <= 1'b1;
else
carry_ina <= 1'b0;
end

endmodule