亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? eeprom_wr.v

?? verilog數字系統(tǒng)設計教程 所有例題的源程
?? V
?? 第 1 頁 / 共 2 頁
字號:


/****************************************************************************
模塊名稱:EEPROM_WR  文件名:eeprom_wr.v
模塊功能:EEPROM讀寫器,可以根據MCU的并行數據、地址線和讀/寫的控制
          線對EEPROM (AT24C02/4/8/16)的行為模塊進行隨機的讀寫操作。
          而且本模塊為教學目的做了許多簡化,只能做隨機的讀寫操作,功能
          不完整,不能用做商業(yè)目的。
模塊說明:本模塊為可綜合模塊,可綜合為門級網表。
****************************************************************************/

`timescale 1ns/1ns 
module EEPROM_WR(SDA,SCL,ACK,RESET,CLK,WR,RD,ADDR,DATA);
output SCL;                //串行時鐘線
output ACK;               //讀寫一個周期的應答信號
input  RESET;             //復位信號
input  CLK;               //時鐘信號輸入
input  WR,RD;             //讀寫信號 
input[10:0] ADDR;           //地址線
inout SDA;                 //串行數據線
inout[7:0] DATA;            //并行數據線
reg ACK;
reg SCL;
reg WF,RF;                //讀寫操作標志
reg FF;                    //標志寄存器
reg [1:0] head_buf;        //啟動信號寄存器
reg[1:0] stop_buf;           //停止信號寄存器 
reg [7:0] sh8out_buf;         //EEPROM寫寄存器
reg [8:0] sh8out_state;        //EEPROM 寫狀態(tài)寄存器
reg [9:0] sh8in_state;         //EEPROM 讀狀態(tài)寄存器
reg [2:0] head_state;          //啟動狀態(tài)寄存器
reg [2:0] stop_state;          //停止狀態(tài)寄存器
reg [10:0] main_state;        //主狀態(tài)寄存器  
reg [7:0] data_from_rm;      //EEPROM讀寄存器
reg link_sda;               //SDA 數據輸入EEPROM開關  
reg link_read;               //EEPROM讀操作開關   
reg link_head;               //啟動信號開關
reg link_write;              //EEPROM寫操作開關
reg link_stop;               //停止信號開關 
wire sda1,sda2,sda3,sda4;   
 
//--------------串行數據在開關的控制下有次序的輸出或輸入-------------------
assign sda1  = (link_head)     ?   head_buf[1]    :  1'b0;
assign sda2  = (link_write)    ?   sh8out_buf[7]   :  1'b0;
assign sda3  = (link_stop)     ?   stop_buf[1]     :  1'b0;
assign sda4  = (sda1 | sda2 | sda3);
assign SDA  = (link_sda)       ?  sda4          :  1'bz;
assign DATA = (link_read)      ?  data_from_rm   :  8'hzz;

//--------------------------------主狀態(tài)機狀態(tài)定義------------------------------------------
parameter		
                  Idle        = 11'b00000000001,
                    Ready     = 11'b00000000010,	
               Write_start    = 11'b00000000100,    
                Ctrl_write    = 11'b00000001000,	
                  Addr_write  = 11'b00000010000, 
		         Data_write   = 11'b00000100000,	 
		        Read_start    = 11'b00001000000,	    
		        Ctrl_read     = 11'b00010000000,	     
		         Data_read    = 11'b00100000000,	     
		         Stop         = 11'b01000000000,	     
 		          Ackn        = 11'b10000000000,

//-------------------------并行數據串行輸出狀態(tài)-----------------------------
                sh8out_bit7     = 9'b000000001,
                sh8out_bit6     = 9'b000000010,
                sh8out_bit5     = 9'b000000100,
                sh8out_bit4     = 9'b000001000,		
                sh8out_bit3     = 9'b000010000,
                sh8out_bit2     = 9'b000100000,
                sh8out_bit1     = 9'b001000000,
                sh8out_bit0     = 9'b010000000,
                sh8out_end     = 9'b100000000;
//--------------------------串行數據并行輸出狀態(tài)----------------------------
 parameter      sh8in_begin    = 10'b0000000001,
                sh8in_bit7     = 10'b0000000010,
                sh8in_bit6     = 10'b0000000100,
                sh8in_bit5     = 10'b0000001000,		
                sh8in_bit4     = 10'b0000010000,
                sh8in_bit3     = 10'b0000100000,
                sh8in_bit2     = 10'b0001000000,
                sh8in_bit1     = 10'b0010000000,
                sh8in_bit0     = 10'b0100000000,
                sh8in_end      = 10'b1000000000,
//---------------------------------啟動狀態(tài)----------------------------------     
                head_begin   = 3'b001,
                head_bit     = 3'b010,
                head_end     = 3'b100,                
//---------------------------------停止狀態(tài)----------------------------------
                stop_begin   = 3'b001,
                stop_bit     = 3'b010,
                stop_end     = 3'b100;
                
 parameter       YES             = 1,
                 NO              = 0;                

//-------------產生串行時鐘scl,為輸入時鐘的二分頻-------------------
always @(negedge CLK)    
  if(RESET)
     SCL <= 0;
  else   	  
     SCL <= ~SCL; 

//-----------------------------主狀態(tài)機程序----------------------------------
always @ (posedge CLK)
  if(RESET)
    begin     
     link_read  <= NO;
     link_write <= NO;
     link_head  <= NO;
     link_stop  <= NO;
     link_sda   <= NO;
     ACK        <= 0;
     RF         <= 0;
     WF         <= 0;
     FF         <= 0;
     main_state <= Idle; 
    end
  else
   begin   
     casex(main_state)
            Idle:
                 begin
                  link_read  <= NO;
                  link_write <= NO;
                  link_head  <= NO;
                  link_stop  <= NO;
                  link_sda   <= NO;
                  if(WR)
                    begin
                    	 WF <= 1;
                    	 main_state <= Ready ;
                    	end
                  else if(RD)
                    begin
                    	 RF <= 1;
                    	 main_state <= Ready ;
                    	end
                 else
                   begin
                    WF <= 0;
                    RF <= 0; 
                    main_state <= Idle;
                   end
                 end 
         Ready:  
      	       begin
      		       link_read        <= NO; 
 	   	       link_write       <= NO;
 	              link_stop        <= NO;
 	              link_head        <= YES;
 	              link_sda         <= YES;			 
	              head_buf[1:0]    <= 2'b10;	
 	              stop_buf[1:0]    <= 2'b01;	
 	              head_state       <= head_begin;
	              FF               <= 0;	
	              ACK         	    <= 0;	 
	              main_state       <= Write_start;
	            end
  Write_start: 
     	          if(FF == 0)
	               shift_head;		 
		          else 
		            begin
		              sh8out_buf[7:0]  <= {1'b1,1'b0,1'b1,1'b0,ADDR[10:8],1'b0};
		              link_head        <= NO;
		              link_write       <= YES;
		              FF               <= 0;   
		              sh8out_state     <= sh8out_bit6;
		              main_state       <= Ctrl_write;
		            end
  Ctrl_write: 
                if(FF ==0)
	               shift8_out;
 	   	       else
 	   	         begin
 	   	              sh8out_state    <= sh8out_bit7;
		              sh8out_buf[7:0] <= ADDR[7:0];
		              FF              <= 0;
		              main_state      <= Addr_write;
		           end	      	    
  Addr_write: 
                if(FF == 0)
		            shift8_out;
		          else 
		            begin
		              FF <= 0;	
		              if(WF)
		                begin	 
		                  sh8out_state    <= sh8out_bit7;		                  
		                  sh8out_buf[7:0] <= DATA;
		                  main_state      <= Data_write;
		                end
		              if(RF)
		                begin
		                  head_buf        <= 2'b10;
		                  head_state       <= head_begin;
		                  main_state      <= Read_start; 
		                end
		            end  	  
  Data_write:  
                 if(FF == 0)
		             shift8_out;
      		     else  
		            begin	
		             stop_state       <= stop_begin;
		             main_state       <= Stop;
		             link_write       <= NO;
		             FF               <= 0;
		            end

  Read_start:  
                if(FF == 0)
	                shift_head;
	             else 
		            begin	
		              sh8out_buf       <= {1'b1,1'b0,1'b1,1'b0,ADDR[10:8],1'b1};
		              link_head        <= NO;
                            link_sda         <= YES;
		              link_write       <= YES;
		              FF               <= 0;
		              sh8out_state     <= sh8out_bit6;
		              main_state       <= Ctrl_read;
 		            end
  Ctrl_read:	
                if(FF == 0)	
	               shift8_out; 
      	       else  
		            begin	
		              link_sda         <= NO;
		              link_write       <= NO;
		              FF               <= 0;
		              sh8in_state      <= sh8in_begin;
		              main_state       <= Data_read;
	               end
  Data_read:	
               if(FF == 0) 
	              shift8in;
   	         else 
		           begin	
		              link_stop        <= YES;
		              link_sda         <= YES;
		              stop_state       <= stop_bit;
		              FF               <= 0;
		              main_state       <= Stop;
		           end  
  Stop: 
               if(FF == 0)
		           shift_stop;
  		         else 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕欧美国产| 精品久久国产字幕高潮| 一区二区不卡在线播放| 一本色道久久综合亚洲aⅴ蜜桃 | 91黄色免费观看| 亚洲黄色免费电影| 欧美蜜桃一区二区三区| 久久国产精品免费| 久久一二三国产| 91在线视频播放| 亚洲一区免费观看| 欧美变态凌虐bdsm| 成人免费视频视频在线观看免费 | 欧美日韩一卡二卡三卡| 亚洲成人激情自拍| 久久伊人蜜桃av一区二区| av在线不卡网| 污片在线观看一区二区| 久久亚洲二区三区| 色综合一个色综合| 蜜臀久久久久久久| 一区二区中文字幕在线| 51午夜精品国产| 成人免费毛片高清视频| 午夜视频一区在线观看| 国产日韩在线不卡| 欧美日韩午夜在线视频| 国内精品不卡在线| 一区二区免费视频| 久久久久久久综合| 在线免费观看一区| 国产福利91精品| 香蕉av福利精品导航| 国产精品久久久久久久第一福利| 欧美日韩综合不卡| 成人亚洲精品久久久久软件| 免费成人结看片| 一区二区三区久久| 国产亚洲精品资源在线26u| 欧美午夜片在线观看| 国产黄色精品网站| 丝袜美腿亚洲色图| 亚洲欧美偷拍三级| 久久久久久久久97黄色工厂| 欧美日韩成人综合| 91国产精品成人| 国产高清精品久久久久| 日韩av二区在线播放| 艳妇臀荡乳欲伦亚洲一区| 国产欧美精品日韩区二区麻豆天美| 欧美天天综合网| 色综合一区二区三区| 不卡av在线免费观看| 精品无码三级在线观看视频| 亚洲国产美女搞黄色| 亚洲欧美乱综合| 国产精品久久久久久久岛一牛影视 | 丁香五精品蜜臀久久久久99网站| 亚洲电影欧美电影有声小说| 亚洲色图在线视频| 中文字幕在线播放不卡一区| 久久精品亚洲麻豆av一区二区 | 床上的激情91.| 精品中文字幕一区二区| 日韩电影免费在线看| 亚洲1区2区3区4区| 亚洲国产成人高清精品| 亚洲已满18点击进入久久| ㊣最新国产の精品bt伙计久久| 久久综合九色综合欧美就去吻| 91精品午夜视频| 欧美日韩国产经典色站一区二区三区 | 欧美一区二区三区啪啪| 欧美另类高清zo欧美| 欧美天堂亚洲电影院在线播放| 一本到不卡精品视频在线观看| youjizz久久| 色综合中文字幕国产| 成人高清视频免费观看| 高清在线不卡av| 波多野结衣的一区二区三区| 成人av一区二区三区| jlzzjlzz欧美大全| 色哟哟精品一区| 在线观看日韩高清av| 欧美日韩国产综合一区二区三区| 欧美一a一片一级一片| 欧美性xxxxxx少妇| 91.com视频| 2023国产精华国产精品| 国产欧美一区二区精品秋霞影院 | 精品国产一区二区三区忘忧草| 欧美精品一区二区不卡| 欧美国产一区二区在线观看| 国产精品美女久久久久久2018| 亚洲精品欧美激情| 日韩高清不卡一区二区三区| 久久99精品一区二区三区| 懂色av一区二区在线播放| 91丨porny丨中文| 欧美视频一区在线| 日韩精品一区二区三区视频 | 国产精品久久福利| 亚洲一区二区在线视频| 免费高清在线视频一区·| 国产精品一区2区| 91福利在线导航| 日韩欧美的一区二区| 国产精品国产三级国产专播品爱网| 亚洲一区二区在线免费看| 另类中文字幕网| 91视频国产观看| 精品久久久网站| 亚洲激情第一区| 精品无人码麻豆乱码1区2区| 色欧美片视频在线观看| 精品欧美乱码久久久久久| 综合在线观看色| 久久精品国产一区二区| 91亚洲大成网污www| 日韩欧美视频一区| 亚洲品质自拍视频网站| 九九**精品视频免费播放| 91视频www| 久久影院午夜片一区| 亚洲国产一二三| 99免费精品视频| 日韩精品在线看片z| 一卡二卡三卡日韩欧美| 国产成a人亚洲| 91精品国产综合久久久久久漫画 | 亚洲影视资源网| 国产99久久久国产精品潘金| 欧美美女网站色| 亚洲图片激情小说| 国产美女久久久久| 欧美一区二区在线视频| 亚洲激情一二三区| 国产91高潮流白浆在线麻豆 | 不卡的av电影| 欧美精品一区二区三区视频| 亚洲大片在线观看| 91污在线观看| 国产精品国产三级国产普通话三级| 男男视频亚洲欧美| 精品视频1区2区3区| 亚洲欧美二区三区| 成人国产亚洲欧美成人综合网| 欧美成人video| 久久国内精品视频| 日韩一区二区三区三四区视频在线观看 | 日本精品免费观看高清观看| 国产精品天天看| 紧缚奴在线一区二区三区| 555夜色666亚洲国产免| 婷婷亚洲久悠悠色悠在线播放| 欧洲亚洲国产日韩| 亚洲人123区| 色视频成人在线观看免| 亚洲精品久久7777| 91久久一区二区| 亚洲午夜私人影院| 91国在线观看| 午夜精品福利在线| 欧美日韩国产123区| 亚洲一二三区视频在线观看| 欧美日韩在线三区| 亚洲国产精品天堂| 欧美日韩一区在线观看| 亚洲v日本v欧美v久久精品| 欧美日韩五月天| 免费观看在线综合| 精品欧美乱码久久久久久1区2区 | 99国产一区二区三精品乱码| 中文字幕在线不卡国产视频| 色婷婷国产精品| 亚洲高清一区二区三区| 欧美一区日韩一区| 免费高清视频精品| 久久综合五月天婷婷伊人| 丰满放荡岳乱妇91ww| 国产精品拍天天在线| 99精品久久只有精品| 亚洲一区二区视频在线观看| 717成人午夜免费福利电影| 日韩vs国产vs欧美| 国产日韩亚洲欧美综合| 91女神在线视频| 美女在线观看视频一区二区| 久久欧美一区二区| 91视频免费播放| 日韩不卡一区二区三区 | 一本大道av伊人久久综合| 亚洲最新视频在线播放| 91精品国产综合久久婷婷香蕉| 精品一区二区三区免费播放| 国产精品青草综合久久久久99| 精品视频免费在线| 国产精品一区在线观看乱码| 亚洲精品国产精品乱码不99|