要求:
设计一个数x,它先递增10次,然后递减10次,又递增10次,循环反复。
代码:
module count
//---------------------<端口声明>-------------------------------------------
(
input wire clk , //时钟,50Mhz
input wire rst_n , //复位,低电平有效
output reg [3:0] x ,
output reg flag_x
);
//--------------------------------------------------------------------------
//-- 程序开始
//--------------------------------------------------------------------------
always @(posedge clk or negedge rst_n) begin
if (!rst_n)
x <= 0;
else if(flag_x==0 && x<9)
x <= x + 1;
else if(flag_x==1 && x>0)
x <= x - 1;
end
always @(posedge clk or negedge rst_n) begin
if (!rst_n)
flag_x <= 0;
else if(flag_x==0 && x==9)
flag_x <= 1;
else if(flag_x==1 && x==0)
flag_x <= 0;
end
endmodule