⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 paobiao.v

📁 一个基于FPGA的数字跑表系统的设计
💻 V
字号:
module paobiao(CLK,CLR,PAUSE,MSH,MSL,SH,SL,MH,ML);
		//端口说明
		input CLK,CLR;
		input PAUSE;
		output[3:0] MSH,MSL,SH,SL,MH,ML;
		//内部信号说明
		reg[3:0] MSH,MSL,SH,SL,MH,ML;
		reg cn1,cn2; 				//cn1 为百分秒向秒的进位,cn2 为秒向分的进位
		
		//百分秒计数模块,每计满100,cn1 产生一个进位
		always @(posedge CLK or posedge CLR) begin
			if(CLR) begin 		//异步复位
				{MSH,MSL}<=8'h00;
				cn1<=0;
			end
			else if(!PAUSE) begin 	//PAUSE 为0 时正常计数,为1 时暂停计数
				if(MSL==9) begin
					MSL<=0;		//低位计数至10时,低位归零
					if(MSH==9) begin
						MSH<=0; 	//低、高位计数至10时,高位归零
						cn1<=1; 	//低、高位计数至10时,触发进位位
					end
					else			//低位计数至10,高位计数未至10时,高位计数
						MSH<=MSH+1;	
				end
				else begin
					MSL<=MSL+1;	 //低位计数未至10时,低位计数
					cn1<=0;		//低位计数未至10时,不触发进位位
				end
			end
		end
	
		//秒计数模块,每计满60,cn2 产生一个进位
		always @(posedge cn1 or posedge CLR) begin
			if(CLR) begin 		//异步复位
				{SH,SL}<=8'h00;
				cn2<=0;
			end
			else if(SL==9) begin 	
				SL<=0;			//低位计数至10时,低位归零
				if(SH==5) begin
					SH<=0;		//低位计数至10,高位计数至6时,高位归零
					cn2<=1;		//低位计数至10,高位计数至6时,触发进位位
				end
				else
					SH<=SH+1;		//低位计数至10,高位计未数至6时,高位计数
			end
			else begin
				SL<=SL+1;			//低位计数未至10时,低位计数
				cn2<=0;			//低位计数未至10时,不触发进位位
			end
		end

		//分钟计数模块,每计满60,系统自动清零
		always @(posedge cn2 or posedge CLR) begin
			if(CLR) begin 		//异步复位
				{MH,ML}<=8'h00;	
			end
			else if(ML==9) begin
				ML<=0;			//低位计数至10时,低位归零
				if(MH==5)
					MH<=0; 		//低位计数至10,高位计数至6时,高位归零
				else
					MH<=MH+1;		//低位计数至10,高位计未数至6时,高位计数
			end
			else
				ML<=ML+1;			//低位计数未至10时,低位计数
			end

endmodule

⌨️ 快捷键说明

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