要求计数器从0到9,且到9的下一个时钟置0;
暂停功能为0时,暂停计数;
reset为1时置零。
module top_module (
input clk,
input slowena,
input reset,
output [3:0] q);
always@(posedge clk)begin
if(reset)q<=0;
else if(slowena&q!=9)q<=q+1;
else if(~slowena&q==9)q<=9;
else if(slowena&q==9)q<=0;
end
endmodule
思路就是暂停功能没激活的时候才开始计数。其他的跟上一题是一样的。
需要注意的是,计数到9的时候要判断暂停功能是否激活,以免直接计数到9的下一个时钟就置0