stopwatch.v

来自「基于Altera公司系列FPGA(Cyclone EP1C3T144C8)、Ve」· Verilog 代码 · 共 90 行

V
90
字号
// StopWatch.v	 		秒表模块		2006-11-5		version:1.0		作者:田世坤
//输入:
//		
//		
//输出:

module StopWatch(ClkIn, KeyIn, State, 
					DSW7, DSW6, DSW5, DSW4, DSW3, DSW2, DSW1, DSW0);
input ClkIn;
input [7:0]KeyIn;
input [11:0]State;
output [3:0] DSW7, DSW6, DSW4, DSW3, DSW1, DSW0;
reg    [3:0] DSW7, DSW6, DSW4, DSW3, DSW1, DSW0;
output [3:0] DSW5, DSW2;
assign DSW2 = 4'ha;					
assign DSW5 = 4'ha;

parameter SSW =  12'b0111_00000000, SSWRun =  12'b0111_00000100, SSWPause =  12'b0111_00000001;

integer i = 1;

always @(posedge ClkIn)
begin
	case(State)
		SSW:
			begin
				i = 1;
				DSW0 = 4'h0;
				DSW1 = 4'h0;
				//DSW2 = 4'ha;
				DSW3 = 4'h0;
				DSW4 = 4'h0;
				//DSW5 = 4'ha;
				DSW6 = 4'h0;
				DSW7 = 4'h0;
			end
		SSWRun:
			begin
				i = i + 1;
			end
		SSWPause:
			begin
				i = i;
			end
		default:
			begin
				
			end
	endcase
	
	if(i == 200)
		begin
			i = 1;			//时、分、秒
			
			DSW0 = DSW0 + 4'h1;
			if(DSW0 > 4'h9)
			begin
				DSW0 = 4'h0;
				DSW1 = DSW1 + 4'h1;
			end
			if(DSW1 > 4'h9)
			begin
				DSW1 = 4'h0;
				DSW3 = DSW3 + 4'h1;
			end
			if(DSW3 > 4'h9)
			begin
				DSW3 = 4'h0;
				DSW4 = DSW4 + 4'h1;
			end
			if(DSW4 > 4'h5)
			begin
				DSW4 = 4'h0;
				DSW6 = DSW6 + 4'h1;
			end
			if(DSW6 > 4'h9)
			begin
				DSW6 = 4'h0;
				DSW7 = DSW7 + 4'h1;
			end
			if(DSW7 > 4'h5)
			begin
				DSW6 = 4'h0;
				DSW7 = 4'h0;
			end
		end

end

endmodule

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?