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

📄 syv.v

📁 针对串行存储器M25P80应用的verilog程序
💻 V
📖 第 1 页 / 共 2 页
字号:
		   else	if (st_wr == 24)			                
    					`b
						  st_wr <= 25;
						`e 
			else	if (st_wr == 25)			               
    					`b
						  st_wr <= 26;
						`e	
    		else  if (st_wr == 26)			                
    					`b
						  st_wr <= 27;	
    					`e 
         else  if (st_wr == 27)			                
    			 		`b
						  st_wr <= 28; 
    					`e            
			else  if (st_wr == 28)			                
    					`b
						  st_wr <= 29;		
    					`e 
		   else	if (st_wr == 29)			                
    					`b											 	
						  st_wr <= 30 ;
						`e
			else	if (st_wr == 30)			                
    					`b
						 if (count_era<30000)
						 
						 st_wr <= 22 ;									//等待21s	每一状态0.1ms
						 else
						 st_wr <= 31 ;
						`e


			//------------------- 开始写M25P80 ------------
				else	if (st_wr == 31)
						`b  
						  s_m25 <= 0;								 //片选信号拉低
						  led_chip1  <= 0;								 //led_chip1====s_m25
						  st_wr<= 32;
						`e
    			else	if (st_wr == 32)			               
    					`b
                    datam25_in <= 1; 						 //输入写允许位置1指令
						  st_wr <= 33;
						`e	
    				
    			else	if (st_wr == 33)			                
    					`b
                    s_m25 <= 1; 								 //片选信号拉高
						  led_chip1  <= 1;								 //led_chip1====s_m25
						  st_wr <= 34;	
    					`e 
				else	if (st_wr == 34)			                
						  st_wr <= 35;	
				else	if (st_wr == 35)			                
						  st_wr <= 36;	
				else	if (st_wr == 36)			                
						  st_wr <= 37;	
				else	if (st_wr == 37)			                
						  st_wr <= 38;	
				else	if (st_wr == 38)			                
						  st_wr <= 39;	
            else  if (st_wr == 39)			                
    					`b
                    s_m25 <= 0;								//片选信号拉低
						  led_chip1 <= 0;								//led_chip1====s_m25
						  st_wr <= 40; 						   
    					`e            
				else  if (st_wr == 40)			               //开始发送页编程指令02H
    					`b
                    datam25_in <= 0; 						//	0
						  st_wr <= 41;		
    					`e 
		   	else	if (st_wr == 41)			                
    					`b
                    datam25_in <= 0; 						//	0
						  st_wr <= 42;
						`e 
				else	if (st_wr == 42)			               
    					`b
                    datam25_in <= 0; 						//	0
						  st_wr <= 43;
						`e	
    			else	if (st_wr == 43)			                
    					`b
                    datam25_in <= 0; 						// 0
						  st_wr <= 44;	
    					`e 
            else if (st_wr == 44)			                
    					`b
                    datam25_in <= 0;
						  st_wr <= 45; 							//	0
    					`e            
				else if (st_wr == 45)			                
    					`b
                    datam25_in <= 0; 					   //	0
						  st_wr <= 46;		
    					`e 
		   	else if (st_wr == 46)			                
    					`b											 	
                    datam25_in <= 1;						//	2
						  st_wr <= 47 ;
						  i<=0 ;
//						  j<=0 ;
						  k<=0 ;
						`e
				else if (st_wr == 47)			                
    					`b
                    datam25_in <= 0;						//	0
						  st_wr <= 48;

						`e
				else if (st_wr == 48)			               // 输入3字节地址 ;
    					`b
						 if(i<24) 
						  `b
                    datam25_in<= w_addr24[i];
						  i<=i+1		 ;
						  st_wr <=48 ;
						  `e
			  	   	 else
						  st_wr <=49 ;
						`e
				else if (st_wr == 49)			               // 输入一字节数据  
    					`b
						   if (j<8)                        
						  	 `b                   
                       datam25_in<= da_tp1[j];
							  j=j+1 ;
							  st_wr <=49 ;
							 `e
							else
					           st_wr <=50 ;
						`e	
				else if (st_wr == 50)			              // 输入一页数据256BYTE  
					     if (k<256)
						  	`b 			 
	//							da_tp1<=da_tp1+1		 ;
								k<=k+1		 ;
								st_wr <=49 ;
							`e	
						  else
						      st_wr <=51 ;
				else if (st_wr == 51)			               
    					`b
                    s_m25 <= 1; 								 //片选信号拉高
						  led_chip1  <= 1;							    //led_chip1====s_m25
						  st_wr <= 52;
						`e	
    			else if (st_wr == 52)	
						 if (count_pp<60)						    //延时6ms			每一状态0.1ms
						  `b
						  	   count_pp<=count_pp+1 ;              
						      st_wr <= 52;	
						  `e
						 else
						      st_wr <= 53;

		  	//--------------开始读M25P80 -----------------------

            else if (st_wr == 53)
						`b		                
						  st_wr <= 54; 
						  led_rd4<= 0;						
						  s_m25 <= 0; 	
						  led_chip1  <= 0;
						 `e							
				else if (st_wr == 54)	
						 `b
						  datam25_in <= 0; 					  //	 开始输入读数据指令03H
	//					  ce
						  st_wr <= 55;
						 `e	
            else if (st_wr == 55)	
						 `b
						  datam25_in <= 0; 	                
						  st_wr <= 56; 
						 `e 							
				else if (st_wr == 56)
						 `b		                
						  datam25_in <= 0;
						  st_wr <= 57; 
						 `e
				else if (st_wr == 57)
						 `b
						  datam25_in <= 0;                
						  st_wr <= 58;	
						 `e
            else if (st_wr == 58)
						 `b		  
						  datam25_in <= 0;              
						  st_wr <= 59; 
						 `e 						
				else if (st_wr == 59)
						 `b		  
						  datam25_in <= 0;              
						  st_wr <= 60; 
						 `e 	
				else if (st_wr == 60)	
						 `b		  
						  datam25_in <= 1;              
						  st_wr <= 61; 
						 `e 		                
            else if (st_wr == 61)	
						 `b
						  datam25_in <= 1;                // 输入读数据指令03H结束
						  st_wr <= 62;
						  i<=0 ;
						  f<=0 ;
						  k<=0 ;
						  ce<=1 ;
						 `e							
				else if (st_wr == 62)
    					`b											 // 输入3字节地址
						 if(i<24) 
						  `b
                    datam25_in<= w_addr24[i];
						  i<=i+1		 ;
						  st_wr <=62 ;
						  `e
			  	   	 else
						  st_wr <=63 ;
						`e
								                

				else if (st_wr == 63)
					  `b
						wr_mem	<=0 ;							   ////sdram
					   if (f<8)                        
						  	 `b                   
                       da_tp3[f]<=datam25_fpga;  
							  f<=f+1 ;
							  st_wr <=63 ;
							 `e
						else
							 `b
						     st_wr <= 64;	
							  wr_mem	<=1 ;	
							  memaddr <=memaddr+1;			               
						`e    `e  	

 		      else if (st_wr == 64)
 				     `b
	 		        if (k<256)                        
	 					`b 
	 					 k<=k+1 ;
	 				    st_wr <=63 ;
	 				   `e
		  			  else
		 			 	 st_wr <=65 ;
					  `e
				 else if (st_wr == 65)
						`b	
						  ce	<= 0;
						  s_m25 <= 1; 								 //片选信号拉高
						  led_chip1  <= 1;
						  memaddr<= 0;
					   	if (count_rd<60)						 //延时6ms			每一状态0.1ms
						    `b
						  	   count_rd<=count_rd+1 ;              
						      st_wr <= 65;	
						    `e
						   else
							  st_wr <= 66;
						`e				                
				else if (st_wr == 66)
						`b	
							rd_mem<=0;	                
						   st_wr <= 67;
						`e		
				else if (st_wr == 67)
						`b	
						   da_tp4 <= data_mem;       
						   st_wr <= 68;		
						`e	
				else if (st_wr == 68)
						`b	
							rd_mem<=1;			                
						   st_wr <= 69;
						`e				
								
				else if (st_wr == 69)
						`b	
						memaddr <=memaddr+1;		                
						   st_wr <= 70;
						`e			
	      	else if (st_wr == 70)
						`b	
						  if (!usbtxein)
						  `b
							wr_usb <= 1;
							st_wr <= 71;
						   `e
						 else
							st_wr <= 70;
						`e
				else if (st_wr == 71)
						`b	
						   data_ft <=da_tp4;		                
						   st_wr <= 72;
						`e		
				else if (st_wr == 72)
						`b	
						   wr_usb <= 0;		                
						   st_wr <= 73;
						`e		
				else if (st_wr == 73)
						`b	
					     if (memaddr<256)		                
						  `b  
						 	st_wr <= 66;
						  `e		
					     else
							st_wr <= 74;
						`e
				else if (st_wr == 74)
						`b	
						   st_wr <= 0;
						`e	
						   
					`e		
					
			 `e
endmodule

⌨️ 快捷键说明

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