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

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

?? sdcnt.v

?? 高速AD采集卡應用程序及SDRAM控制器
?? V
?? 第 1 頁 / 共 3 頁
字號:


		 	//counter_wait<=13'd0;
			
		 end
	else  
		begin
     			counter_wait<=counter_wait+1;
                     next_state<=`state_wait;
              end
   end     

//---------------------------------------------------------------------------------------------------------------------------------------------------

    // PRECHARGE  all banks        	
    `state_precharge:  begin
       sd_wr_l     <= `LO;
       // sd_cs_l     <= `LO;
    	sd_ras_l    <= `LO;
    	sd_cas_l    <= `HI;

       //sd_dqm      <= 4'hF;
		 sd_dqm<=4'd0;
       sd_addx10_mux <= 2'b11;      // A10 = 1'b1   	 precharge all banks
	                            
	//	doing_precharge<= `LO;	 //下個周期PRECHARGE進行完畢

			if(sddata_ena)
				sddata_ena<=`LO;//關閉sddata總線的輸出
     // next_state<=`state_idle;				 // 對于50M的時鐘,20ns的間隔已經能夠滿足trp的要求,可以進入了idle狀態
       // if (do_write_ack)
           // do_write_ack<= `LO;         // done acknowledging the write request
        if (do_read_ack)
            do_read_ack <= `LO;         // done acknowledging the read request
		
		next_state  <= `state_precharge_dly;
    end  
//-----------------------------------------------------------------------------------------------------------------------------------
   /* // Delay Trp 
    // this delay is needed to meet the minimum precharge to new command
    // delay.  For most parts, this is 20nS, which means you need 1 clock cycle
    // of NOP at 100MHz
    `state_delay_Trp:  begin
        sd_wr_l     <= `HI;
        sd_cs_l     <= `HI;
      	sd_ras_l    <= `HI;
        if ( (refresh_cntr == cntr_limit) & (pwrup == `HI) ) begin
            doing_refresh <= `LO;                // refresh cycle is done
            refresh_cntr_l  <= `LO;             // ..reset refresh counter
            next_state <= `state_modeset;      // if this was power-up, then go and set mode reg
        end else begin
            doing_refresh <= `HI;        // indicate that we're doing refresh
            next_state	 <= `state_auto_refresh;
	    end
    end  */

//------------------------------------------------------------------------------------------------------------------
 //delay trp(precharge delay)
 //this delay is needed to meet the minimum precharge to new command
 // delay.  For most parts, this is 20nS, which means you need 1 clock cycle
 // of NOP at 100MHz
																										
 	

    `state_precharge_dly:
       begin
          sd_wr_l     <= `HI;
          //sd_cs_l     <= `HI;
      	 sd_ras_l    <= `HI;

       	 doing_precharge<=`LO;		//PRECHARGE finished

          next_state	 <= `state_idle;	   
       end  

 

//--------------------------------------------------------------------------------------------------------------------
    // Autorefresh
    `state_auto_refresh: begin
       sd_wr_l     <= `HI;
       // sd_cs_l     <= `LO;
    	sd_ras_l    <= `LO;
    	sd_cas_l    <= `LO;
        sd_addx10_mux <= 2'b01;      // A10 = 0   
        next_state  <= `state_auto_refresh_dly;
        autorefresh_cntr_l  <= `HI;  //allow refresh delay cntr (Trc) to tick
        do_refresh_ack <= `HI;      // acknowledge refresh request
     end    

//-------------------------------------------------------------------------------------------------------------------

    //  Trc delay.(Auto Refersh delay)
    // this delay is the delay from the refresh command to the next valid command
    // most parts require this to be 60 to 70nS.  So at 100MHz, we need at least
    // 6 NOPs.  
	 
    `state_auto_refresh_dly:  begin
          sd_wr_l     <= `HI;
        //  sd_cs_l     <= `HI;
          sd_ras_l    <= `HI;
          sd_cas_l    <= `HI;
          sd_addx10_mux <= 2'b00;      // select ROW again A10 = A20   

        // Wait for Trc
	 //if Trc has expired, new command can be sent to sdram
        if (autorefresh_cntr == 4'h6) 
		         begin  
              autorefresh_cntr_l <= `LO;  // reset Trc delay counter
              // Check if the number of specified back-back refreshes are done
              if (refresh_cntr == cntr_limit)   begin  
                   doing_refresh <= `LO;             // refresh cycle is done
                   refresh_cntr_l  <= `LO;           // reset refresh counter
                   // if this is not a power-up sequence, and there are pending 
                   // requests, then service it.
                   if (~pwrup)
                      if (do_write | do_read)
                          next_state <= `state_set_ras; // go service a pending read or write if any
                      else
                          next_state <= `state_idle;    // if there are no peding RD or WR, then go to idle state

                   // if this is part of power-up sequencing, we need to go and
                   // set mode register.
                   else
                      next_state <= `state_modeset;
              end 
        
              // IF refresh cycles not done yet, keep issuing autorefresh commands
             else
                   next_state <= `state_auto_refresh; 
           end


        // If Trc has not expired
        else begin
              next_state <= `state_auto_refresh_dly;
              do_refresh_ack <= `LO;
        end

    end
//---------------------------------------------------------------------------------------------------------------------------------------

    // MODE SET state
    `state_modeset:  begin
        next_state  <= `state_idle;
        sd_wr_l     <= `LO;
        //sd_cs_l     <= `LO;
        sd_ras_l    <= `LO;
        sd_cas_l    <= `LO;
        sd_addx_mux <= 2'b10;//set mode register
        sd_addx10_mux <= 2'b10;//set mode register
        doing_refresh <= `LO;   // deassert 
        if (pwrup)
           pwrup    <= `LO;                 // ..no more in power up mode
        //if (do_mode_set)
           // do_modeset_ack <= `LO;
    end

//--------------------------------------------------------------------------------------------------------------------------------------

    // IDLE state
    `state_idle:  begin
        sd_wr_l     <= `HI;
        //sd_cs_l     <= `HI;
        sd_ras_l	<= `HI;
        sd_cas_l	<= `HI;
  //      sd_wr_ena <= `LO;         // turn off the data bus drivers
     //   mp_data_mux <= `LO;         // drive the SD data bus with normal data  ???
        sd_addx_mux <= 2'b00;   // select ROW (A[19:10]) of mp_addx to SDRAM,and bank 
        sd_addx10_mux <= 2'b00; // select ROW (A[20])    "      "

        // if we've just come out of system reset (or powerup)
        // then we need to go and do initialization sequence.
        // Or, if a refresh is requested, go and service it.
        if (do_refresh | pwrup) begin
           doing_refresh <= `HI;        // indicate that we're doing refresh
           refresh_cntr_l <= `HI;		// allow refresh cycle counter to count up
           next_state <= `state_auto_refresh;
	    end

        // if a single word rad or write request is pending, go and service it
 		else if (do_write | do_read )          
           next_state <= `state_set_ras;  ///active  bank and row

        // if a mode register set is requested, go and service it//這種情況應該不會出現,因為set mode register的上一個狀態是autorefresh

        /*
	else if (do_mode_set) begin
           do_modeset_ack <= `HI;  // acknowledge the mode set request
           next_state <= `state_modeset;
           doing_refresh <= `HI;		// techincally we're not doing refresh, but 
        end                             // this signal is used to prevent the do_write be deasserted
        								// by the mode_set command.
        */
    end    


//-------------------------------------------------------------------------------------------------------------------------

    // SET RAS state   作用相當于active
    `state_set_ras:  begin
       // sd_cs_l     <= `LO;     // enable SDRAM 
        sd_ras_l    <= `LO;     // enable the RAS
		  
		   next_state  <= `state_ras_dly;   // wait for a bit

    end

//----------------------------------------------------------------------------------------------------------------------
    // RAS delay state.  
    // This delay is needed to meet Trcd delay.  This is the RAS to CAS delay.
    // for most parts this is 20nS.  So for 100MHz operation, there needs to be 
    // at least 1 NOP cycle.
	 //這里 ras delay=18ns,對于105M需要1個周期延時
    `state_ras_dly:  begin
       // sd_cs_l     <= `HI;     // disable SDRAM 
        sd_ras_l    <= `HI;     // disble the RAS
        sd_addx_mux <= 2'b01;   // select COLUMN 為下一個狀態提供列地址和bANK地址,注意對于全頁猝發寫入,列地址應該為全零
        sd_addx10_mux <= 2'b01; // select COLUMN 為下一個狀態提供列地址

        if (do_write)  begin
   //         sd_wr_ena <= `HI;     // turn on  the data bus drivers
           // sd_dqm      <= decoded_dqm;  // masks the data which is meant to be////
				 sd_dqm<=4'h0;
				 do_write_ack<= `HI;     //  下一個周期寫數據有效,提前打開AD_FIFO
	
				 //burst_cntr_ena <= `HI;      // enable the burst lenght counter
            //next_state  <= `state_write;      // if write, do the write  
				next_state  <= `state_write_delay;      // if write, do the write     
        end else begin
            sd_dqm      <= 4'h0;
            next_state  <= `state_set_cas;    // if read, do the read
        end
    end
//--------------------------------------------------------------
		`state_write_delay:		 //將寫命令延時一個周期發出,等待sddata_in數據有效
									
			begin
				sd_ras_l<=`HI;// no operation
				sd_cas_l<=`HI;// no operation
				sd_wr_l <=`HI;// no operation
				sd_dqm      <= 4'h0;

				burst_cntr_ena <= `HI;      // enable the burst lenght counter
            next_state  <= `state_write;      // if write, do the write   


		end

//------------------------------------------------------------------------------------------------------------
    /*
    // WRITE state
    `state_write:  begin
        sd_cs_l     <= `LO;     // enable SDRAM 
        sd_cas_l    <= `LO;     // enable the CAS
        sd_wr_l     <= `LO;     // enable the write
        do_write_ack<= `HI;     // acknowledge the write request
        sd_dqm      <= 4'hF;///?????
        next_state  <= `state_delay_Tras1;
    end

    `state_delay_Tras1:  begin  //功能不明

        sd_wr_l     <= `HI;
        sd_cs_l     <= `HI;
        sd_ras_l	<= `HI;
        sd_cas_l	<= `HI;
        sd_dqm      <= 4'hF;
        sd_addx_mux <= 2'b00;   // send ROW (A[19:10]) of mp_addx to SDRAM 
        sd_addx10_mux <= 2'b00; // send ROW (A[20])    "      "
        mp_data_mux <= `HI;         // drive the SD data bus with all zeros
        next_state  <= `state_delay_Tras2;
    end

    `state_delay_Tras2:  begin
        next_state  <= `state_precharge;
    end   
   */
//-------------------------------------------------------------------------------------------------------

//state write   //全頁猝發寫入  
`state_write:
	begin
		sd_cas_l <=`LO;
		sd_wr_l  <=`LO;
	//	do_write_ack<= `HI;     // acknowledge the write request
		sddata_ena<=`HI;		  //控制sddata總線輸出
		sd_dqm      <= 4'h0;
                             //對于全頁猝發 列地址應該為全零!!!!!
		 next_state  <= `state_write_wait;

		 
             

	end

//-----------------------------------------------------------------------------------------------------

//state write wait   //等待寫猝發結束 !!!
`state_write_wait:
	begin
			sd_wr_l     <= `HI;  //NOP        	
        	sd_ras_l	<= `HI;  //NOP
        	sd_cas_l	<= `HI;  //NOP
		   sd_dqm      <= 4'h0;


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕一区二区三区四区| 99久久精品国产一区| 欧美又粗又大又爽| 日韩码欧中文字| 色综合色狠狠天天综合色| 日韩一区在线免费观看| 一本久道久久综合中文字幕| 亚洲午夜影视影院在线观看| 91精品欧美久久久久久动漫| 精品综合久久久久久8888| 久久久亚洲综合| 92国产精品观看| 偷窥少妇高潮呻吟av久久免费| 日韩久久久精品| 国产成人免费在线观看不卡| 中文字幕一区三区| 在线不卡一区二区| 国产成都精品91一区二区三| 亚洲高清视频中文字幕| 日韩片之四级片| 91亚洲精品乱码久久久久久蜜桃| 亚洲国产va精品久久久不卡综合| 久久综合999| 日本道色综合久久| 老司机精品视频在线| 亚洲欧洲综合另类在线| 日韩一区二区在线看| 91在线高清观看| 久久精品免费看| 亚洲免费av网站| 欧美精品一区二区三区一线天视频| 97久久超碰国产精品电影| 日本 国产 欧美色综合| 专区另类欧美日韩| 精品国产伦一区二区三区免费| 91在线观看高清| 国产精品亚洲午夜一区二区三区| 亚洲宅男天堂在线观看无病毒| 久久久噜噜噜久久人人看| 日本国产一区二区| 粉嫩在线一区二区三区视频| 日韩av一区二区三区四区| 中文字幕日韩av资源站| 26uuu欧美日本| 欧美性色综合网| 国产91精品在线观看| 日产国产欧美视频一区精品| 亚洲精品日日夜夜| 国产农村妇女毛片精品久久麻豆 | 亚洲不卡一区二区三区| 久久久欧美精品sm网站| 在线播放中文一区| 色呦呦一区二区三区| 国产.精品.日韩.另类.中文.在线.播放| 亚洲国产裸拍裸体视频在线观看乱了| 中文字幕av免费专区久久| 精品久久久久一区| 91精品国产免费| 欧美日产在线观看| 91国产精品成人| 色综合久久99| caoporn国产精品| av在线不卡观看免费观看| 国产毛片精品一区| 国产精品一区二区在线播放| 久久se精品一区二区| 日韩福利电影在线观看| 午夜视频久久久久久| 亚洲国产成人porn| 亚洲大尺度视频在线观看| 一区二区三区在线免费| 一区二区三区四区蜜桃| 亚洲情趣在线观看| 一区二区三区精密机械公司| 一区二区三区在线高清| 一区av在线播放| 亚洲最大色网站| 亚洲成av人片一区二区| 日韩电影免费在线观看网站| 奇米影视一区二区三区| 久久成人免费网站| 国产在线一区观看| 高清beeg欧美| 99麻豆久久久国产精品免费优播| 91蜜桃免费观看视频| 在线精品视频免费播放| 欧美精品一卡二卡| 精品久久久影院| 亚洲欧美综合网| 一区二区三区不卡在线观看| 亚洲国产精品一区二区久久 | 欧美国产视频在线| 中文字幕av一区二区三区| 亚洲女人****多毛耸耸8| 亚洲精品va在线观看| 日韩精品午夜视频| 精品一区二区三区免费毛片爱 | 激情综合色播五月| 成人性生交大片免费看中文| 色综合天天天天做夜夜夜夜做| 91成人在线精品| 精品免费国产一区二区三区四区| 精品国产乱码久久久久久图片 | 婷婷夜色潮精品综合在线| 日本91福利区| 99国产精品视频免费观看| 欧美三级在线看| 久久精品一区蜜桃臀影院| 亚洲欧洲日产国码二区| 亚洲va欧美va天堂v国产综合| 久久成人精品无人区| 成人a级免费电影| 欧美日韩一区二区三区不卡 | 色综合天天性综合| 制服丝袜亚洲色图| 国产女人水真多18毛片18精品视频| 亚洲综合999| 国产九色精品成人porny | 91日韩精品一区| 欧美一区二区大片| 中文字幕在线一区二区三区| 日韩经典中文字幕一区| 99久久免费精品高清特色大片| 欧美一区二区二区| 亚洲综合精品久久| 国产成人在线网站| 在线不卡中文字幕播放| 国产精品系列在线| 久久国产精品区| 欧美亚男人的天堂| 国产精品久久久久久久久免费相片| 日韩国产欧美在线观看| 色狠狠桃花综合| 欧美国产精品久久| 国产综合色精品一区二区三区| 欧美撒尿777hd撒尿| 日本一区二区视频在线| 麻豆91在线观看| 欧美日韩国产另类不卡| 国产精品理伦片| 国产乱码字幕精品高清av| 欧美日产国产精品| 亚洲欧洲精品天堂一级| 国产酒店精品激情| 精品免费99久久| 蜜桃一区二区三区在线| 欧美日韩成人一区二区| 一区二区三区资源| 色欲综合视频天天天| 国产精品国产三级国产普通话蜜臀 | 一区二区高清免费观看影视大全| gogo大胆日本视频一区| 欧美国产日韩一二三区| 国产尤物一区二区| 日韩精品中文字幕在线一区| 秋霞影院一区二区| 在线成人av网站| 日韩精品一区第一页| 欧美日韩国产影片| 视频精品一区二区| 欧美一二三四区在线| 日本亚洲欧美天堂免费| 欧美美女激情18p| 天堂蜜桃一区二区三区 | 久久亚洲捆绑美女| 韩国v欧美v亚洲v日本v| 日韩一区二区精品在线观看| 亚洲国产一区视频| 欧美亚洲另类激情小说| 一区二区三区av电影| 欧美综合欧美视频| 污片在线观看一区二区| 欧美精品粉嫩高潮一区二区| 午夜av电影一区| 精品美女一区二区| 国产99久久精品| 亚洲色图制服诱惑 | 精品视频资源站| 日日摸夜夜添夜夜添精品视频| 欧美日韩国产综合一区二区| 免费成人在线观看| 久久久国产精华| 99久久精品国产一区二区三区 | 欧美在线一区二区| 天堂精品中文字幕在线| 精品国内片67194| kk眼镜猥琐国模调教系列一区二区| 亚洲精品日韩综合观看成人91| 欧美人妇做爰xxxⅹ性高电影| 美女mm1313爽爽久久久蜜臀| 中文字幕精品—区二区四季| 色婷婷综合久色| 免费观看91视频大全| 国产精品视频yy9299一区| 在线观看亚洲一区| 久久er精品视频| 一区二区视频免费在线观看| 日韩三级免费观看| 99精品桃花视频在线观看| 婷婷成人激情在线网|