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

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

?? ddr_cntl_a_controller_0.v

?? arm控制FPGA的DDR測試代碼
?? V
?? 第 1 頁 / 共 4 頁
字號:
   begin
     DQS_enable1     <= 1'b0;
     DQS_enable2     <= 1'b0;
     DQS_enable3     <= 1'b0;
     DQS_enable4     <= 1'b0; 
     DQS_reset1_clk0 <= 1'b0;
     DQS_reset2_clk0 <= 1'b0;
     DQS_reset3_clk0 <= 1'b0;
     DQS_reset4_clk0 <= 1'b0;
   end
 else
   begin                 
     DQS_enable1     <= DQS_enable_int;
     DQS_enable2     <= DQS_enable1;
     DQS_enable3     <= DQS_enable2;
     DQS_enable4     <= DQS_enable3;
     DQS_reset1_clk0 <= DQS_reset_int;
     DQS_reset2_clk0 <= DQS_reset1_clk0;
     DQS_reset3_clk0 <= DQS_reset2_clk0;
     DQS_reset4_clk0 <= DQS_reset3_clk0;
   end
end
                       
//****************************************************************************************************
//Generating WRITE and READ enable signals
//*****************************************************************************************************

assign write_enable_out = ((wrburst_chk == 1'b1) || (wrburst_end_cnt != 3'b000)) ? 1'b1 : 1'b0; 

  assign read_enable_out = ((CAS_COUNT != 3'b000) || (rdburst_chk == 1'b1)) ? 1'b1 : 1'b0; //BL=8
                   
assign read_enable_out_r = read_enable_out || rdburst_end_r;
                      


always @(negedge clk)    //(posedge clk180)
begin
  if (rst180_r == 1'b1)
   write_enable <= 1'b0;
  else
   write_enable <= write_enable_out;
end


assign cmd_ack = ack_reg;

FD ACK_REG_INST1 (  
                  .Q(ack_reg),
                  .D(ack_o),                             
                  .C(~clk) //.C(clk180)
                  );                            

assign ack_o = ((write_cmd_in == 1'b1) || (write_cmd1 == 1'b1) || (read_cmd1 == 1'b1)); //Sarala, June22

assign read_write_state = ((next_state1 == FIRST_WRITE) || (next_state1 == BURST_WRITE) || (next_state1 == BURST_READ)) ? 1'b1 : 1'b0;

//*********************************************************************************************
//  to initialize memory
//*********************************************************************************************
always @ (negedge clk)       //(posedge clk180)
begin
  if (rst180_r == 1'b1)
    begin
     init_memory <= 1'b0;
     INIT_DONE   <= 1'b0;
    end
  else
    begin
     init_memory <= init_mem;
     INIT_DONE   <= init_done_value && ~INIT_DONE || INIT_DONE;
    end
end

assign init_mem = (initialize_memory == 1'b1) ? 1'b1 :
                   ((INIT_COUNT == 3'b111) && (mrdCnt0 == 1'b1)) ? 1'b0 :
                   init_memory;

// counter for Memory Initialization sequence

assign INIT_COUNT_value = ((precharge_flag || ldMdReg_flag || aref_flag)) ? (INIT_COUNT + 1'b1) :
                          INIT_COUNT;
                    
assign init_done_value =  ((INIT_COUNT == 3'b111) && (DLL_RST_COUNT == 8'b0000_0001)) ? 1'b1 : 1'b0;                    

//Counter for DLL Reset complete
assign DLL_RST_COUNT_value = (INIT_COUNT == 3'b010) ? 'd200 :      //200
                             (DLL_RST_COUNT != 8'b0000_0001)? (DLL_RST_COUNT - 8'b0000_0001):
                              8'b0000_0001;   

//Signal to go directly to ACTIVE state instead of LMR state after Write/Read cmd_in from user 
assign GO_TO_ACTIVE_value =( ((write_cmd_in == 1'b1) && (write_cmd1 != 1'b1))|| ((read_cmd == 1'b1) && (read_cmd1 != 1'b1)) )? 1'b1 : 1'b0;

// To check if there is a bank conflict after an ACTIVE command has been issued for a particular bank

assign CONFLICT_value  = ((RRD_COUNT == 2'b01) && (BA_address_conflict == 1'b1)) ? 1'b1 : 1'b0;
    
always @ (negedge clk)       //(posedge clk180)
begin
  if (rst180_r == 1'b1)
   begin
     CONFLICT   <= 1'b0;
     GO_TO_ACTIVE <= 1'b0;
   end
  else
   begin
     CONFLICT   <= CONFLICT_value;
     GO_TO_ACTIVE <= GO_TO_ACTIVE_value;
   end
end

//**********************************************************************************************
// Register counter values
//**********************************************************************************************
always @ (negedge clk)       //(posedge clk180)
begin
  if (rst180_r == 1'b1)
    begin
     INIT_COUNT     <= 3'b000;
     DLL_RST_COUNT  <= 8'b0000_0000;
     RP_COUNT       <= 3'b000;

     rpCnt0         <= 1'b1;
     rpCnt1         <= 1'b0;

     mrdCnt0          <= 1'b1;
     mrdCnt1          <= 1'b0;

     rcdrCnt0        <= 1'b1;
     rcdrCnt1        <= 1'b0;
     
     rcdwCnt0       <= 1'b1;
     rcdwCnt1       <= 1'b0;
     rcCnt0         <= 1'b1;

     MRD_COUNT      <= 2'b00;

     
     RFC_COUNT      <= 5'b00000;
     RAS_COUNT      <= 4'b0000;
     CAS_COUNT      <= 3'b000;  //BL = 8
     RRD_COUNT      <= 2'b00;
     RCDR_COUNT     <= 3'b000;
     RCDW_COUNT     <= 2'b00;
     RC_COUNT       <= 4'b0000;
     RDBURST_END_CNT <= 3'b000;
     wrburst_end_cnt <= 3'b000;  
     WR_COUNT        <= 2'b00;
     RFC_COUNT_reg   <= 1'b0;
     AR_Done_reg     <= 1'b0;
    end
  else
    begin
     INIT_COUNT     <= init_memory  ? INIT_COUNT_value : INIT_COUNT;
     DLL_RST_COUNT  <= DLL_RST_COUNT_value;
     RP_COUNT       <= rp_cnt_value;
     MRD_COUNT      <= MRD_COUNT_value;
     RFC_COUNT      <= RFC_COUNT_value;
     RAS_COUNT      <= ras_count_value;
     CAS_COUNT      <= cas_count_value;
     RRD_COUNT      <= RRD_COUNT_value;
     RCDR_COUNT     <= RCDR_COUNT_value;
     RCDW_COUNT     <= RCDW_COUNT_value;
     RC_COUNT       <= RC_COUNT_value;
     wrburst_end_cnt <= wrburst_end_cnt_value;
     RDBURST_END_CNT <= rdburst_end_cnt_value;
     WR_COUNT        <= WR_COUNT_value;

     mrdCnt0        <= (MRD_COUNT[1]  == 1'b0  &&  MRD_COUNT_value[1:0] != 2'b11);
     mrdCnt1        <= (MRD_COUNT == 2'b10);

     rpCnt0         <= (RP_COUNT[2] == 1'b0 &&  RP_COUNT[1] == 1'b0 &&  !rp_cnt_value[2]);

     rpCnt1         <= (RP_COUNT == 3'b010);


     rcdrCnt0        <= (RCDR_COUNT[2] == 1'b0 && RCDR_COUNT[1] == 1'b0 &&  !RCDR_COUNT_value[2]);
     
     rcdrCnt1        <= (RCDR_COUNT == 3'b010);


     rcdwCnt0        <= (RCDW_COUNT[1] == 1'b0 && RCDW_COUNT_value[1:0]  != 2'b11 );

     rcdwCnt1        <= (RCDW_COUNT == 2'b10);

    rcCnt0           <= (RC_COUNT[3] == 1'b0 && RC_COUNT[2] == 1'b0  && RC_COUNT[1] == 1'b0 && RC_COUNT_value[3:2] != 2'b11);
 
     if(RFC_COUNT == 5'b00010 ) //2
        AR_Done_reg <= 1'b1;
     else
       AR_Done_reg <= 1'b0;
       
     if(AR_Done_reg == 1'b1) 
        RFC_COUNT_reg <= 1'b1;
     else if (Auto_Ref_issued_p == 1'b1) 
        RFC_COUNT_reg <= 1'b0;
     else        
       RFC_COUNT_reg <= RFC_COUNT_reg;

    end
end

//*********************************************************************************************
// to check current state for the address bus
//*********************************************************************************************
always @ (negedge clk)       //(posedge clk180)
begin
  if (rst180_r == 1'b1)
   begin
      next_state    <= IDLE;
   end
  else
   begin
      if (precharge_flag)
      begin
         next_state <= PRECHARGE;
      end
      else if (ldMdReg_flag)
      begin
          next_state <= LOAD_MODE_REG; 
      end
      else if (aref_flag)
      begin
         next_state <= AUTO_REFRESH;
      end
      else if (idle_flag)
      begin
         next_state <= IDLE;
      end
      else
      begin
         next_state    <= next_state1;
      end
   end
end

//*********************************************************************************************
// main state machine
//*********************************************************************************************
always @ (next_state or rst180_r or init_memory or RP_COUNT or INIT_COUNT or MRD_COUNT or RFC_COUNT or PRECHARGE_CMD
          or CONFLICT or RCDW_COUNT or write_cmd or RCDR_COUNT or read_rcd_end or burst_length or
          wrburst_end or wrburst_end_cnt or rdburst_end or CAS_COUNT  or WR_COUNT or GO_TO_ACTIVE or ld_mode or
          auto_ref or RFC_COUNT_reg or write_cmd3 or read_cmd5 or rpCnt0 or rpCnt1 or mrdCnt0 or mrdCnt1 
		or rcdrCnt1 or rcdwCnt1)

begin
if (rst180_r == 1'b1)
begin
	next_state1 <= IDLE;
	precharge_flag <= 1'b0;
	ldMdReg_flag <= 1'b0;
	aref_flag <= 1'b0;
	idle_flag <= 1'b0;
 end

else
  begin
  	next_state1 <= IDLE;
	precharge_flag <= 1'b0;
	ldMdReg_flag <= 1'b0;
	aref_flag <= 1'b0;
	idle_flag <= 1'b0;

    case (next_state)
        IDLE : begin
               if (init_memory == 1'b1)
                 begin
                  case (INIT_COUNT)
                   3'b000 :
                   begin
                         precharge_flag <= 1'b1;
                         
                   end
                   3'b001 : 
                         begin
                           if (rpCnt1 == 1'b1)
                           begin                        
                           ldMdReg_flag <= 1'b1;
                           end            
                         else
                           begin
                           idle_flag <= 1'b1;
                          end
                         end
                   3'b010 : 
                         begin
                            if (mrdCnt1 == 1'b1)
                          begin                         
                         ldMdReg_flag <= 1'b1;
                         end
                         else
                         begin                          
                            idle_flag <= 1'b1;
                           end
                         end
                   3'b011 :
                         begin
                          if (mrdCnt1 == 1'b1)
                          begin
                           precharge_flag <= 1'b1;
                          end
                         else
                         begin                         
                          idle_flag <= 1'b1;
                         end
                         end
                   3'b100 :
                         begin
                           if (rpCnt1 == 1'b1)
                             begin                        
                             aref_flag <= 1'b1;
                             end
                           else
                             begin
                             idle_flag <= 1'b1;
                             end 
                         end
                   3'b101 :
                         begin
                         if (RFC_COUNT_reg == 1'b1)
                         begin                       
                          aref_flag <= 1'b1;
                        end
                      else 
                         begin
                           idle_flag <= 1'b1;
                           end
                         end
                   3'b110 :
                         begin
                         if (RFC_COUNT_reg == 1'b1)
                          begin                  
                          ldMdReg_flag <= 1'b1;
                         end
                         else
                           begin

                          idle_flag <= 1'b1;

                           end
                         end
                   3'b111 :
                         begin
                           if (mrdCnt0 != 1'b1)

                            begin

                           idle_flag <= 1'b1;

                            end
	  	         else
   			    next_state1 <=next_state ;
                         end
                   default :

                       idle_flag <= 1'b1;
                   endcase 
                 end
                 else if ( auto_ref == 1'b1 && RFC_COUNT_reg == 1'b1 && rpCnt0 == 1'b1)
	          aref_flag <= 1'b1;
	   
               else if (PRECHARGE_CMD == 1'b1)

		 precharge_flag <= 1'b1;
               else if (ld_mode == 1'b1)
		 ldMdReg_flag <= 1'b1;
	       else if (GO_TO_ACTIVE == 1'b1 || CONFLICT == 1'b1)
                  next_state1 <= ACTIVE; 
               else

                 idle_flag <= 1'b1;
               end

         PRECHARGE :

	    idle_flag <= 1'b1;

            
         LOAD_MODE_REG :

	     idle_flag <= 1'b1;
      
         AUTO_REFRESH :

	    idle_flag <= 1'b1;
         
         ACTIVE :
              next_state1 <= ACTIVE_WAIT;
            
         ACTIVE_WAIT :
              begin  

                 if ((rcdwCnt1 == 1'b1) && (write_cmd3 == 1'b1))
                    next_state1 <= FIRST_WRITE;

                  else if ((rcdrCnt1 == 1'b1) && (read_cmd5 == 1'b1))
                    next_state1 <= BURST_READ;
                else    
                    next_state1 <= ACTIVE_WAIT;
              end      
         
         FIRST_WRITE :
              begin
	      if ((burst_length == 3'b001) && (wrburst_end == 1'b0))   //Added for BL = 2
                        next_state1 <= BURST_WRITE;
             else if ((burst_length == 3'b001) && (wrburst_end == 1'b1))
				next_state1 <= PRECHARGE_AFTER_WRITE;  
               else
                  next_state1 <= WRITE_WAIT;
              end
    
         WRITE_WAIT :
                     begin
                     case(wrburst_end)
                       1'b1 :
                         next_state1 <= PRECHARGE_AFTER_WRITE;  
                       1'b0 :
                         begin
                            if (wrburst_end_cnt == 3'b001)  // (wrburst_end_cnt == 3'b001)  
                                 next_state1 <= BURST_WRITE;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩精品是欧美日韩精品| 精品对白一区国产伦| 久久久www成人免费毛片麻豆| 一区av在线播放| 91影视在线播放| 亚洲色图欧美偷拍| 91美女蜜桃在线| 欧美一区二区视频网站| 日韩激情av在线| 91麻豆精品国产自产在线观看一区| 亚洲尤物视频在线| 欧美性三三影院| 亚洲不卡在线观看| 99国产精品99久久久久久| 亚洲欧美另类图片小说| 在线观看一区二区视频| 国产精品亚洲专一区二区三区| 日韩一区二区电影| 一区二区三区在线视频播放| 欧美日韩一区在线| 久久精品国产在热久久| 精品国产91久久久久久久妲己 | 高清成人免费视频| 国产精品看片你懂得| 色吧成人激情小说| 国产精品高潮久久久久无| 91麻豆视频网站| 午夜久久久久久| 日韩欧美的一区| 丁香亚洲综合激情啪啪综合| 亚洲美女淫视频| 色视频欧美一区二区三区| 亚洲午夜久久久久久久久电影院 | 91精品国产综合久久精品| 丝袜亚洲另类丝袜在线| 欧美一区二区三区人| 老司机免费视频一区二区| 日本一区二区免费在线| 日本丰满少妇一区二区三区| 日韩精品亚洲专区| 国产色婷婷亚洲99精品小说| 91福利资源站| 国产一区二区三区观看| 国产精品成人免费精品自在线观看| 欧美性做爰猛烈叫床潮| 国产资源精品在线观看| 亚洲精品美国一| 在线播放视频一区| 不卡一卡二卡三乱码免费网站| 亚洲国产精品欧美一二99| 久久久99精品免费观看不卡| 欧美色图激情小说| 美腿丝袜一区二区三区| 亚洲欧美日韩在线不卡| 337p粉嫩大胆色噜噜噜噜亚洲| 色综合中文字幕国产 | 色综合久久久网| 裸体歌舞表演一区二区| 综合在线观看色| 精品免费视频.| 欧美亚洲综合色| 丁香亚洲综合激情啪啪综合| 日韩激情一区二区| 亚洲欧美日韩国产综合在线| 久久久久久久久岛国免费| 91福利视频久久久久| 国产电影一区在线| 另类小说综合欧美亚洲| 中文字幕亚洲不卡| 久久久久国产精品免费免费搜索| 欧美肥胖老妇做爰| 欧美性色欧美a在线播放| eeuss鲁片一区二区三区在线看| 乱一区二区av| 麻豆精品一区二区三区| 亚洲国产精品一区二区久久| 亚洲男人都懂的| 国产精品天天摸av网| 国产午夜一区二区三区| 在线播放欧美女士性生活| 色拍拍在线精品视频8848| yourporn久久国产精品| 国产一区二区三区久久悠悠色av| 青草av.久久免费一区| 亚洲美女精品一区| 亚洲欧美另类久久久精品| 中文字幕一区二区三区av| 91精品国产一区二区三区 | 欧美最新大片在线看| 99久久精品国产导航| 丁香啪啪综合成人亚洲小说| 国产一区美女在线| 国产酒店精品激情| 国产91精品一区二区| 国产91露脸合集magnet| 国产 日韩 欧美大片| 大胆亚洲人体视频| 9人人澡人人爽人人精品| 国产精品夜夜嗨| 成人性色生活片| 99久久精品免费看国产| 91丨porny丨首页| 91麻豆自制传媒国产之光| 欧美网站一区二区| 欧美www视频| 亚洲人快播电影网| 麻豆成人在线观看| 99视频一区二区| 538在线一区二区精品国产| 久久久久亚洲综合| 亚洲在线免费播放| 国产一区在线视频| 在线精品视频一区二区三四| 精品国产成人在线影院| 亚洲欧美日韩系列| 麻豆精品久久精品色综合| av成人动漫在线观看| 日韩一区二区三免费高清| 日本一区二区三区视频视频| 亚洲午夜在线观看视频在线| 国产一区二区看久久| 欧美三级三级三级| 国产精品美女久久久久aⅴ| 日韩电影在线观看一区| 99久久夜色精品国产网站| 3751色影院一区二区三区| 国产精品视频九色porn| 日本vs亚洲vs韩国一区三区二区| 99精品国产热久久91蜜凸| 精品盗摄一区二区三区| 亚洲一区二三区| 成人精品国产一区二区4080 | 精品对白一区国产伦| 亚洲一区二区三区美女| 成人h版在线观看| 精品少妇一区二区三区免费观看| 夜夜精品视频一区二区| 成人av免费在线播放| 精品国产乱码久久久久久蜜臀| 亚洲成av人影院| 色一情一乱一乱一91av| 日本一区二区三区久久久久久久久不 | 日韩欧美黄色影院| 洋洋av久久久久久久一区| 成人午夜激情在线| 精品成人一区二区| 久久成人久久爱| 欧美一区二区三区视频免费播放| 一区二区在线看| av爱爱亚洲一区| 国产精品成人一区二区艾草| 丁香婷婷综合网| 国产午夜精品一区二区| 国产露脸91国语对白| 精品国产一区a| 韩国欧美国产一区| 精品国产乱码91久久久久久网站| 欧美aaaaa成人免费观看视频| 欧美裸体bbwbbwbbw| 五月婷婷综合网| 欧美日韩三级视频| 亚洲一区二区三区中文字幕在线| 色婷婷狠狠综合| 国产剧情一区二区| 国产亚洲精品资源在线26u| 国产专区综合网| 国产女人18毛片水真多成人如厕 | 日本vs亚洲vs韩国一区三区| 欧美疯狂做受xxxx富婆| 亚洲午夜免费福利视频| 欧美丰满一区二区免费视频| 午夜精品成人在线视频| 91麻豆精品久久久久蜜臀| 亚洲电影你懂得| 精品视频一区三区九区| 亚洲风情在线资源站| 欧美一区二区三区免费观看视频| 免费在线观看一区| 精品国产乱子伦一区| 国产69精品久久777的优势| 国产精品传媒入口麻豆| 色综合天天综合色综合av| 亚洲国产精品久久久久秋霞影院 | 99re6这里只有精品视频在线观看| 国产日产亚洲精品系列| 99视频超级精品| 亚洲福利国产精品| 久久综合资源网| 91色乱码一区二区三区| 天堂久久久久va久久久久| 久久亚洲一级片| 91啦中文在线观看| 日本成人在线看| 中日韩av电影| 欧洲色大大久久| 精品一区二区久久久| 亚洲人123区| 欧美成人猛片aaaaaaa| 成人污污视频在线观看| 亚洲第一精品在线|