亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
香蕉久久一区二区不卡无毒影院| 亚洲大片精品永久免费| 亚洲美女视频在线观看| 天天综合网天天综合色| 成人在线视频首页| 日韩欧美黄色影院| 亚洲综合丝袜美腿| 99久久国产综合精品色伊| 日韩精品一区二区在线| 亚洲国产精品久久久男人的天堂 | 色综合天天在线| 久久免费的精品国产v∧| 亚洲成人午夜电影| 色婷婷国产精品| 国产精品久久久久国产精品日日| 乱中年女人伦av一区二区| 欧美午夜精品理论片a级按摩| 国产精品美女一区二区三区| 韩国欧美一区二区| 日韩欧美一级片| 日韩精品电影一区亚洲| 在线观看亚洲一区| 亚洲美女电影在线| 一本到不卡免费一区二区| 国产精品伦一区| 东方aⅴ免费观看久久av| 精品成人免费观看| 国产综合色精品一区二区三区| 51久久夜色精品国产麻豆| 五月综合激情网| 91精品国产综合久久精品app| 亚洲综合色婷婷| 欧美美女黄视频| 偷拍一区二区三区| 欧美一级欧美一级在线播放| 日韩中文欧美在线| 日韩欧美色综合网站| 免费成人小视频| 精品日产卡一卡二卡麻豆| 99国产欧美另类久久久精品 | 亚洲婷婷综合久久一本伊一区 | 国产精品女主播在线观看| 国产91高潮流白浆在线麻豆 | 国产欧美日韩在线视频| 成人性生交大片免费看在线播放| 国产精品日日摸夜夜摸av| 99久久精品费精品国产一区二区| 亚洲黄色免费电影| 欧美久久久一区| 久久丁香综合五月国产三级网站| 欧美精品一区二区三区在线| 处破女av一区二区| 夜夜嗨av一区二区三区四季av | 天堂成人免费av电影一区| 9191成人精品久久| 国产一区二区成人久久免费影院| 欧美国产激情一区二区三区蜜月| 91视频在线观看免费| 亚洲777理论| 精品国产伦一区二区三区免费| 国产91清纯白嫩初高中在线观看| 亚洲蜜臀av乱码久久精品| 欧美老人xxxx18| 国产91丝袜在线18| 三级精品在线观看| 国产精品久久久久久一区二区三区| 在线欧美日韩国产| 韩国av一区二区三区四区 | 久久精品视频一区二区三区| 91尤物视频在线观看| 青青草视频一区| 国产精品精品国产色婷婷| 欧美午夜精品久久久久久孕妇| 韩国v欧美v日本v亚洲v| 亚洲一区在线观看网站| 国产无人区一区二区三区| 欧美日韩中文精品| 国产iv一区二区三区| 香港成人在线视频| 国产精品福利影院| 日韩欧美你懂的| 欧美日韩亚洲国产综合| av亚洲精华国产精华精华| 老汉av免费一区二区三区 | 中文字幕久久午夜不卡| 欧美日韩综合在线免费观看| a级高清视频欧美日韩| 经典一区二区三区| 水蜜桃久久夜色精品一区的特点| 欧美国产禁国产网站cc| 欧美成人一区二区| 国产精品国产自产拍在线| 7777精品伊人久久久大香线蕉经典版下载| 处破女av一区二区| 国产精品456露脸| 免费人成在线不卡| 日韩中文字幕区一区有砖一区| 亚洲欧洲综合另类| 国产精品情趣视频| 国产日韩成人精品| 久久久久久久久久电影| 日韩免费在线观看| 欧美一区二区三区视频| 欧美日韩一卡二卡| 欧美色男人天堂| 奇米综合一区二区三区精品视频 | 免费人成黄页网站在线一区二区| 欧美二区三区的天堂| 蜜桃av一区二区三区| 亚洲成人在线免费| 国产精品午夜久久| 欧美日韩国产另类一区| 成人综合在线观看| 美女一区二区视频| 一区二区三区丝袜| 久久久久久久久岛国免费| 欧美日韩夫妻久久| 91免费视频网| 亚洲色欲色欲www| 国产欧美日韩麻豆91| 精品视频在线免费| 色香蕉久久蜜桃| 亚洲综合另类小说| 久久福利资源站| ...xxx性欧美| 亚洲精品一区在线观看| 欧美刺激午夜性久久久久久久| 亚洲精品视频观看| 欧美一二三在线| 7878成人国产在线观看| 日韩午夜在线观看视频| 久久亚洲综合色一区二区三区| 日韩av电影一区| 欧美高清在线精品一区| 亚洲精品成人天堂一二三| 午夜影院在线观看欧美| 男人的天堂亚洲一区| 国产精品99久| 色综合天天天天做夜夜夜夜做| 欧美日韩国产影片| 久久美女艺术照精彩视频福利播放 | 日韩一区二区在线观看| 精品剧情在线观看| 国产精品国产三级国产a| 亚洲国产日韩av| 国产一区二区0| 91国产精品成人| 欧美成人video| 亚洲视频在线观看三级| 日本欧美肥老太交大片| 粉嫩av一区二区三区| 欧美性xxxxxxxx| 欧美va亚洲va在线观看蝴蝶网| 国产精品每日更新在线播放网址 | 欧美日韩国产综合一区二区| 日韩精品一区二区三区在线| 中文字幕一区二区三区不卡| 日韩经典一区二区| 97精品视频在线观看自产线路二| 8x8x8国产精品| 综合久久给合久久狠狠狠97色| 日韩成人免费电影| 不卡一区二区三区四区| 日韩欧美你懂的| 亚洲mv在线观看| 91一区在线观看| 国产欧美日韩视频一区二区| 日日骚欧美日韩| 欧美亚洲综合久久| 国产精品毛片久久久久久| 全部av―极品视觉盛宴亚洲| 91一区一区三区| 国产精品久久影院| 国产一区二区导航在线播放| 欧美日韩成人激情| 亚洲美女屁股眼交| 成人午夜短视频| 久久久久久久av麻豆果冻| 蜜桃一区二区三区在线| 欧美电影在线免费观看| 综合电影一区二区三区| 粉嫩蜜臀av国产精品网站| 欧美大度的电影原声| 无码av中文一区二区三区桃花岛| 91一区二区三区在线播放| 国产精品久久久久影视| 国模无码大尺度一区二区三区| 日韩一二三区不卡| 日本不卡一区二区三区高清视频| 在线精品视频一区二区三四 | 97成人超碰视| 国产精品丝袜久久久久久app| 国精产品一区一区三区mba桃花| 日韩一区二区三区精品视频| 亚洲乱码日产精品bd| 91美女片黄在线观看91美女| 国产精品色在线观看| 成人午夜免费电影| 中文字幕制服丝袜成人av| 成人免费av资源|