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

📄 time_run.v

📁 verilog描述 年月日
💻 V
📖 第 1 页 / 共 2 页
字号:
			                   end    			        		                   else                             begin		                     if(dayback[3:0] == 0)							         begin							     dayback[3:0] = 4'h9;							     dayback[7:4] = dayback[7:4] - 1;					               end                           else												            dayback[3:0] = dayback[3:0] - 1;                           end                      end  			 					 end              circs = 4'h5; 					            end			 		end			default :           begin                 settime=0;					  circs = 0;           end					  				endcase 			    end  end			end//--------------------------if normal set begin ---second ,minute ,hour' time going-----------------------------always @(posedge clk)begin  if(adj == 1 & settime == 0 )   change = change + 1;               //change is 0 means 24hours     ;    is 1   means 12hoursendalways @(posedge clk)begin if(clm==1)   begin   if(dclk4==12)	   begin		  dclk4 = 0 ;		  AMorPM = ~ AMorPM ;		end    else	  dclk4 = dclk4 + 1 ;    endendalways @(posedge clk )                                           //hour runing     begin	 if(circs == 4'h1)	   showh = hback ;	  else	if(set == 0 && clm ==1)	      begin			   if( mode == 0)	               begin             			if(change == 0)                 												 begin 	                   if(AMorPM==1 & showh <=11 & flag ==1 )						        begin						              flag = 0 ;							                begin							                    if( showh == 8'h00 )						                          showh = 8'h12;					                          else if(showh == 8'h01)					                          showh = 8'h13;					                          else if(showh == 8'h02)					                          showh = 8'h14;					                          else if(showh == 8'h03)					                          showh = 8'h15;					                          else if(showh == 8'h04)					                          showh = 8'h16;						                       else if(showh == 8'h05)					                          showh = 8'h17;					                          else if(showh == 8'h06)					                          showh = 8'h18;					                          else if(showh == 8'h07)					                          showh = 8'h19;					                          else if(showh == 8'h08)					                          showh = 8'h20;					                          else if(showh == 8'h09)					                          showh = 8'h21;					                          else if(showh == 8'h10)					                          showh = 8'h22;					                          else if(showh == 8'h11)					                          showh = 8'h23;														                   end								    end					  						 else						    begin	                       if(showh[7:4]==4'h2)                            	                         begin	                           if(showh[3:0] == 4'h3)							          showh = 0;		                        else							         showh[3:0]=showh[3:0]+1;					                            			                   end    			        		                   else                             begin		                     if(showh[3:0] == 4'h9)							         begin							      showh[3:0] =0;							      showh[7:4] = showh[7:4]+1;					               end                           else												            showh[3:0]=showh[3:0]+1;                           end							  end								  flag = 0 ;                    end							  						            else					begin					flag = 1 ;					  begin                 if( showh == 8'h12 )						     showh = 8'h00;					  else if(showh == 8'h13)					    showh = 8'h01;					  else if(showh == 8'h14)					    showh = 8'h02;					  else if(showh == 8'h15)					    showh = 8'h03;					  else if(showh == 8'h16)					    showh = 8'h04;						  else if(showh == 8'h17)					    showh = 8'h05;					  else if(showh == 8'h18)					    showh = 8'h06;					  else if(showh == 8'h19)					    showh = 8'h07;					  else if(showh == 8'h20)					    showh = 8'h08;					  else if(showh == 8'h21)					    showh = 8'h09;					  else if(showh == 8'h22)					    showh = 8'h10;					  else if(showh == 8'h23)					    showh = 8'h11;                  					  						else						   begin                          								  	                       if(showh[7:4]==4'h1)                            	                         begin	                           if(showh[3:0] == 4'h1)							          showh = 0;		                        else							         showh[3:0]=showh[3:0]+1;					                            			                   end    			        		                   else                             begin		                     if(showh[3:0] == 4'h9)							         begin							      showh[3:0] =0;							      showh[7:4] = showh[7:4]+1;					               end                           else												            showh[3:0]=showh[3:0]+1;                           end                      end								end                 end       								     			end	          	endendalways @(posedge clk  )                                //minute runing   begin			if(circs == 4'h2)            showm = mback;          else	if(set == 0 && cls ==1)						begin	                       if(showm[7:4]==4'b0101)                            	                         begin	                           if(showm[3:0]== 4'b1001)							          begin										 showm = 0;		                         end							         else							         showm[3:0]=showm[3:0]+1;					                            			                   end    			        		                   else                             begin		                     if(showm[3:0] == 4'b1001)							         begin							      showm[3:0] =0;							      showm[7:4] = showm[7:4]+1;					               end                           else												            showm[3:0]=showm[3:0]+1;                           end 		             				   end          end				always @(posedge clk   )begin if( set==0)                                             //second runing	 begin			           	                       if(shows[7:4]==4'h5)                            	                         begin	                           if(shows[3:0]== 4'h9)							          begin										 shows = 0;		                         end							         else							         shows[3:0]=shows[3:0]+1;					                            			                   end    			        		                   else                             begin		                     if(shows[3:0] == 4'h9)							         begin							      shows[3:0] =0;							      shows[7:4] = shows[7:4]+1;					               end                           else												            shows[3:0]=shows[3:0]+1;                           end 		             	  end	   end 						//--------------------normal state ,day ,week ,  month  ,year' time going------------------------------always @(posedge clk)  begin  if(circs == 4'h3)    year = yearback;	                                  else if(circs == 4'h4)    month = monthback;	  else if(circs == 4'h5)   begin	 day = dayback ;	 week = weekback;	end  else 	  if(clh == 1)	begin					    if( month==8'h04  ||   month==8'h06  ||  month==8'h09  ||  month==8'h11) //  month is 4,6,9,11-----30 daysbegin		  if(day==8'h30)		  	begin		     day=8'h01;          		      if(week==3'b111)                  // if week is 7,reset 1		       week = 3'b001;                    		      else		      week=week+1;                      //else week addself 1				if(month[3:0]==4'h9)                    //if m'low 4bit is 9,clear m'low 4bit,m'high 4bit addself 1				 begin				  month[3:0]=4'h0;                      				  month[7:4]=month[7:4]+1;                     				 end				 else                                   //else m'low 4 bit addself 1 				month[3:0]=month[3:0]+1;           end                 //day is not 30   else                                           	begin                  		if(day[3:0]==4'h9)      //if day'low 4bit is 9,reset low 4bit 0, high 4bit addself        begin                      		   day[3:0] = 4'h0;			day[7:4] = day[7:4]+1; 		                   		        if(week==3'b111)                  //if week is 7 ,reset 1  		        week = 3'b001;                     		        else		        week = week+1;                     //else week addself 1		  end		else                     //else  day'low 4bit addself 1		   begin 		    day[3:0]=day[3:0]+1;		    if(week==3'b111)                    //if week is 7 ,reset 1		    week = 3'b001;		    else                                 //else week addself 1		    week = week+1;		   end	endend	                                              //-----------month is february  02-----------------------															 															 else if(month ==8'h02)       begin		if(leap_year == 1)        		   begin			      if(day == 8'h29)			           begin				        day = 8'h01;						  month = month+1;				           if(week==3'b111)      week = 3'b001;		                 else       	         week = week+1;				           				        end			       else				        begin				         if(day[3:0]==4'h9)		                  begin				            day[3:0] = 4'h0;						      day[7:4] = day[7:4]+1;				        				              if(week==3'b111)    week = 3'b001;		                    else                week = week+1;				            end				         else				           begin				           day[3:0]=day[3:0]+1;				           if(week==3'b111)        week = 3'b001;		                 else			           week = week+1;				           end				        end			end		 else                			  begin			    if(day == 8'h28)			        begin				     month = month+1;					  day = 8'h01;				       if(week==3'b111)            week = 3'b001;		             else                        week = week+1;				       				     end			   else				  begin				    if(day[3:0]==4'h09)		              begin				        day[7:4] = day[7:4]+1;				        day[3:0] = 4'h0;				        if(week==3'b111)            week = 3'b001;		              else    				         week = week+1;				        end				    else				      begin				      day[3:0]=day[3:0]+1;				      if(week==3'b111)              week = 3'b001;		            else        				      week = week+1;				      end				 end			 endend                                       //-------------- month is 1  3  5  7  8  10  12   ,31days--------------else        begin	 if(day==8'h31)	   	    begin  	                   day=8'h01;		          if(week==3'b111)					 week = 3'b001;		          else					 week=week+1;					    //--------------------------12 months to year-----------------------------------		             begin						 if(month[7:4]>4'h0)            //run nian , 2000  years begin , if it is 12 months				          begin				            if(month[3:0]==4'h2)						          begin        									 month = 8'h01;    circle = circle +1;						            if(circle == 4'h4)						               begin 									      circle = 4'h0;							            leap_year = 1'b1;							            end							          else								          leap_year =1'b0;						                if(year[3:0]==4'h9)							                 begin								               if(year[7:4]==4'h9)								                  begin															               year[15:0]=16'h2000;									               leap_year = 1'b1;									               circle = 4'h1;									               end															                else						                        begin								                   year[3:0]=4'h0;								                   year[7:4]=year[7:4]+1;								                   end							                  end							              else							                  year[3:0]=year[3:0]+1;					             end					          else					            month[3:0]=month[3:0]+1;				           end		              else		                   if(month[3:0]==8'h9)			                    begin			                    month[3:0]=4'h0;			                    month[7:4]=month[7:4]+1;			                    end		                    else			                   month[3:0]=month[3:0]+1;                    end						 //--------------------------12 months to year-----------------------------------					end	   else	    begin	 	   if(day[3:0]==4'h9)            begin		      day[7:4] = day[7:4]+1;		      day[3:0] = 4'h0;		        if(week==3'b111)		         week = 3'b001;		        else		        week = week+1;		      end		   else		      begin		      day[3:0]=day[3:0]+1;		        if(week==3'b111)		        week = 3'b001;		        else		        week = week+1;		      end		 end end  end        //first  begin to endend  endmodule

⌨️ 快捷键说明

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