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

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

?? mem_interface_top_ddr_controller_0.txt

?? 基于FPGA 實現DDR SDRAM的控制器
?? TXT
?? 第 1 頁 / 共 4 頁
字號:
      else
        dummy_read_en <= dummy_read_en;
   end

   // ctrl_Dummyread_Start signal generation to the data path module
   always @ (posedge clk_0) begin
      if (rst_r)
        ctrl_Dummyread_Start_r1 <= 1'b0;
      else if ((dummy_read_en == 1'b1) && (cas_count == 3'b000))
        ctrl_Dummyread_Start_r1 <= 1'b1;
      else if (phy_Dly_Slct_Done == 1'b1)
        ctrl_Dummyread_Start_r1 <= 1'b0;
      else
        ctrl_Dummyread_Start_r1 <= ctrl_Dummyread_Start_r1;
   end

   // register ctrl_Dummyread_Start signal
   always @ (posedge clk_0) begin
      if (rst_r) begin
         ctrl_Dummyread_Start_r2 <= 1'b0;
         ctrl_Dummyread_Start_r3 <= 1'b0;
         ctrl_Dummyread_Start_r4 <= 1'b0;
         ctrl_Dummyread_Start <= 1'b0;
      end
      else begin
         ctrl_Dummyread_Start_r2 <=  ctrl_Dummyread_Start_r1;
         ctrl_Dummyread_Start_r3 <=  ctrl_Dummyread_Start_r2;
         ctrl_Dummyread_Start_r4 <=  ctrl_Dummyread_Start_r3;
         ctrl_Dummyread_Start <=  ctrl_Dummyread_Start_r4;
      end
   end // always @ (posedge clk_0)

   // read_wait/write_wait to idle count
   // the state machine waits for 15 clock cycles in the write wait state for
   //  any wr/rd commands to be issued. If no commands are issued in 15 clock
   // cycles, the statemachine issues enters the idle state and stays in the
   // idle state until an auto refresh is required.

   always @ (posedge clk_0) begin
      if (rst_r)
        idle_cnt[3:0] <= 4'b0000;
      else if (read_write_state)
        idle_cnt[3:0] <= 4'b1111 ;
      else if (idle_cnt[3:0] != 4'b0000)
        idle_cnt[3:0] <= idle_cnt[3:0] - 1;
      else
        idle_cnt[3:0] <= 4'b0000;
   end

   always @ (posedge clk_0) begin
      if (rst_r)
        cas_check_count[3:0] <= 4'b0000;
      else if (first_read_state_r2 || pattern_read_state_1_r2)
        cas_check_count[3:0] <= (CAS_LATENCY_VALUE - 1);
      else if (cas_check_count[3:0] != 4'b0000)
        cas_check_count[3:0] <= cas_check_count[3:0] - 1;
      else
        cas_check_count[3:0] <= 4'b0000;
   end

   always @ (posedge clk_0) begin
      if (rst_r) begin
         rdburst_cnt[2:0] <= 3'b000;
         ctrl_RdEn_r <= 1'b0;
      end
      else if ((cas_check_count == 4'b0001) && (!burst_read_state_r3)) begin
         rdburst_cnt[2:0] <= burst_cnt[2:0];
         ctrl_RdEn_r <= 1'b1;
      end
      else if(burst_read_state_r3 || pattern_read_state_r3) begin
        if(burst_cnt == 3'd4)
          rdburst_cnt[2:0] <= CAS_LATENCY_VALUE + burst_cnt/2;
        else if (burst_cnt == 3'd2)
          rdburst_cnt[2:0] <= CAS_LATENCY_VALUE;
        else
          rdburst_cnt[2:0] <= CAS_LATENCY_VALUE - burst_cnt;
      if(burst_read_state_r3)
        ctrl_RdEn_r <= 1'b1;
      end
      else if (rdburst_cnt[2:0] != 3'b000) begin
         rdburst_cnt[2:0] <= rdburst_cnt[2:0] - 1'b1;
         if(rdburst_cnt == 3'd1)
           ctrl_RdEn_r <= 1'b0;
      end
      else
         rdburst_cnt[2:0] <= 3'b000;
   end

   always@(posedge clk_0) begin
      if(rst_r)
        ctrl_RdEn_r1 <= 1'b0;
      else
        ctrl_RdEn_r1 <= ctrl_RdEn_r;
   end

   assign ctrl_RdEn = (registered_dimm) ? ctrl_RdEn_r1 : ctrl_RdEn_r;


   // write address FIFO read enable signals

   assign af_rden = (read_write_state || ((state == MODE_REGISTER_WAIT) & LMR_r &
                                          !mrd_count) ||((state == PRECHARGE )&&
                                                         PRE_r) ||
                     ((state == AUTO_REFRESH) && REF_r) || ((state == ACTIVE )&& ACT_r));


   // write data fifo read enable
   always @ (posedge clk_0) begin
      if (rst_r)
        wdf_rden_r  <= 1'b0;
      else if (write_state )
        wdf_rden_r  <= 1'b1;
      else
        wdf_rden_r  <= 1'b0;
   end

   always @ (posedge clk_0) begin
      if (rst_r) begin
         wdf_rden_r2 <= 1'b0;
         wdf_rden_r3 <= 1'b0;
         wdf_rden_r4 <= 1'b0;
      end
      else begin
         wdf_rden_r2 <= wdf_rden_r;
         wdf_rden_r3 <= wdf_rden_r2;
         wdf_rden_r4 <= wdf_rden_r3;
      end // else: !if(rst_r)
   end // always @ (posedge clk_0)

   // Read enable to the data fifo
   always @ (burst_cnt or wdf_rden_r or wdf_rden_r2 or wdf_rden_r3 or wdf_rden_r4 ) begin
      if (burst_cnt == 3'b001)
        ctrl_Wdf_RdEn_r <= (wdf_rden_r ) ;
      else if (burst_cnt == 3'b010)
        ctrl_Wdf_RdEn_r <= (wdf_rden_r | wdf_rden_r2) ;
      else if (burst_cnt == 3'b100)
             ctrl_Wdf_RdEn_r <= (wdf_rden_r | wdf_rden_r2 | wdf_rden_r3 | wdf_rden_r4) ;
      else ctrl_Wdf_RdEn_r <= 1'b0;
   end

   always@(posedge clk_0) begin
      if(rst_r)
        ctrl_Wdf_RdEn_r1 <= 1'b0;
      else
        ctrl_Wdf_RdEn_r1 <= ctrl_Wdf_RdEn_r;
   end

   assign ctrl_Wdf_RdEn = (registered_dimm) ? ctrl_Wdf_RdEn_r1 : ctrl_Wdf_RdEn_r;

   always @ (posedge clk_0) begin
      if(rst_r)
        dummy_write_flag <= 1'b0;
      else
        dummy_write_flag <= phy_Dly_Slct_Done && ~(comp_done);
   end

   always @ (posedge clk_0) begin
      if (rst_r)
        state <= IDLE;
      else
        state <= next_state;
   end

   always @ (posedge clk_0) begin
      if (rst_r)
        init_state <= INIT_IDLE;
      else
        init_state <= init_next_state;
   end

   always@(posedge clk_0) begin
      if(rst_r)
        count5 <= 5'b00000;
      else begin
         case (init_state)
           INIT_PRECHARGE_WAIT, INIT_MODE_REGISTER_WAIT, INIT_AUTO_REFRESH_WAIT,
           INIT_DUMMY_WRITE_READ, INIT_PATTERN_READ_WAIT,INIT_DUMMY_READ_WAIT,
           INIT_DUMMY_ACTIVE_WAIT :
             begin
                count5 <= count5 + 1;
             end

           default:
             count5 <= 5'b00000;
         endcase
      end
   end

   //Initialization state machine
   always @ (*) begin
      init_next_state = init_state;
      case (init_state)
        INIT_IDLE : begin
           if (init_memory && done_200us == 1'b1) begin
              case (init_count )
                4'h0 : init_next_state = INIT_INITCOUNT_200;
                4'h1 : init_next_state = INIT_PRECHARGE;
                4'h2 :init_next_state = INIT_LOAD_MODE_REG_ST;
                4'h3 :init_next_state = INIT_LOAD_MODE_REG_ST;
                4'h4 :init_next_state = INIT_INITCOUNT_200;
                4'h5 :init_next_state = INIT_PRECHARGE;
                4'h6 :init_next_state = INIT_AUTO_REFRESH;
                4'h7 :init_next_state = INIT_AUTO_REFRESH;
                4'h8 :init_next_state = INIT_LOAD_MODE_REG_ST;
                4'h9 :  begin
                   if( (chip_cnt < `no_of_cs-1))
                     init_next_state = INIT_DEEP_MEMORY_ST;
                   else  if (`Phy_Mode  && count_200cycle_done_r)
                     init_next_state = INIT_DUMMY_READ_CYCLES;
                   else
                     init_next_state = INIT_IDLE;
                end
                4'hA :  begin
                   if (phy_Dly_Slct_Done) begin
                      init_next_state = INIT_IDLE;
                   end
                end
                default: init_next_state = INIT_IDLE;

              endcase // case(init_count )
           end
        end // case: `idle

        INIT_DEEP_MEMORY_ST :    init_next_state = INIT_IDLE;

        INIT_INITCOUNT_200 : init_next_state = INIT_INITCOUNT_200_WAIT;

        INIT_INITCOUNT_200_WAIT     : begin
           if (count_200cycle_done_r)
             init_next_state = INIT_IDLE;
           else
             init_next_state = INIT_INITCOUNT_200_WAIT;
        end

        INIT_DUMMY_READ_CYCLES  : init_next_state = INIT_DUMMY_ACTIVE;


        INIT_DUMMY_ACTIVE       : init_next_state = INIT_DUMMY_ACTIVE_WAIT;

        INIT_DUMMY_ACTIVE_WAIT  : begin
           if (count5 == cntnext)
             if(dummy_write_flag)
               init_next_state = INIT_DUMMY_WRITE1;
             else
               init_next_state = INIT_DUMMY_FIRST_READ;
           else
             init_next_state = INIT_DUMMY_ACTIVE_WAIT;
        end

        INIT_DUMMY_FIRST_READ  :
           init_next_state = INIT_DUMMY_READ_WAIT;

        INIT_DUMMY_READ        : begin
           if((burst_cnt == 3'd1) && (~phy_Dly_Slct_Done))
             init_next_state = INIT_DUMMY_READ;
           else
             init_next_state = INIT_DUMMY_READ_WAIT;
        end

        INIT_DUMMY_READ_WAIT    : begin
           if (phy_Dly_Slct_Done) begin
              if(count5 == cntnext)
                if(auto_ref == 1'b1)
                  init_next_state = INIT_PRECHARGE;
                else
                  init_next_state = INIT_DUMMY_WRITE1;
              else
                init_next_state = INIT_DUMMY_READ_WAIT;
           end
           else
             init_next_state = INIT_DUMMY_READ;
        end

        INIT_DUMMY_WRITE1 :
          begin
             if ( burst_cnt == 3'd1 )
               init_next_state = INIT_DUMMY_WRITE2;
             else
               init_next_state = INIT_DUMMY_WRITE_READ;
          end

        INIT_DUMMY_WRITE2 : init_next_state = INIT_DUMMY_WRITE_READ;

        INIT_DUMMY_WRITE_READ:
          begin
             if (count5 == cntnext)
               init_next_state = INIT_PATTERN_READ1;
             else
               init_next_state = INIT_DUMMY_WRITE_READ;
          end

        INIT_PATTERN_READ1 :
          begin
             if ( burst_cnt == 3'd1 )
               init_next_state = INIT_PATTERN_READ2;
             else
               init_next_state = INIT_PATTERN_READ_WAIT;
          end

        INIT_PATTERN_READ2 :
          init_next_state = INIT_PATTERN_READ_WAIT;

        INIT_PATTERN_READ_WAIT:
          begin
             if(comp_done)
               init_next_state = INIT_PRECHARGE;
             else
               init_next_state = INIT_PATTERN_READ_WAIT;
          end

        INIT_PRECHARGE  :init_next_state = INIT_PRECHARGE_WAIT;


        INIT_PRECHARGE_WAIT     : begin
           if (count5 == cntnext)
             if (auto_ref && dummy_write_flag)
               init_next_state = INIT_AUTO_REFRESH;
             else
               init_next_state = INIT_IDLE;
           else
             init_next_state = INIT_PRECHARGE_WAIT;
        end // case

        INIT_LOAD_MODE_REG_ST      : init_next_state = INIT_MODE_REGISTER_WAIT;

        INIT_MODE_REGISTER_WAIT : begin
           if (count5 == cntnext)
             init_next_state = INIT_IDLE;
           else
             init_next_state = INIT_MODE_REGISTER_WAIT;

        end

        INIT_AUTO_REFRESH       :init_next_state = INIT_AUTO_REFRESH_WAIT;

        INIT_AUTO_REFRESH_WAIT  : begin
           if ((count5 == cntnext) && (phy_Dly_Slct_Done))
             init_next_state = INIT_DUMMY_ACTIVE;
           else if (count5 == cntnext)
             init_next_state = INIT_IDLE;
           else
             init_next_state = INIT_AUTO_REFRESH_WAIT;
        end
      endcase
   end

   //main controller state machine
   always @ (*) begin
      next_state = state;
      case (state)
        IDLE : begin
           if ((conflict_detect_r || LMR_PRE_REF_ACT_cmd_r || auto_ref) &&
               ras_count == 4'b0000 && init_done_int)
             next_state = PRECHARGE;
           else if ((WR_r  || RD_r ) && (ras_count == 4'b0000)) begin
              next_state = ACTIVE;
           end
        end

        LOAD_MODE_REG_ST      : next_state = MODE_REGISTER_WAIT;

        MODE_REGISTER_WAIT : begin
           if (mrd_count == 1'b0)
             next_state = IDLE;
           else
             next_state = MODE_REGISTER_WAIT;
        end

        PRECHARGE          :next_state = PRECHARGE_WAIT;

        PRECHARGE_WAIT     : begin
           if (rp_count == 3'b000) begin
              if (auto_ref || REF_r) begin
                 next_state = AUTO_REFRESH;
              end else if (LMR_r) begin
                 next_state = LOAD_MODE_REG_ST;
              end else if (conflict_detect_r || ACT_r) begin
                 next_state = ACTIVE;
              end else  begin
                 next_state = IDLE;
              end
           end else begin
              next_state = PRECHARGE_WAIT;
           end
        end

        AUTO_REFRESH       :next_state = AUTO_REFRESH_WAIT;

        AUTO_REFRESH_WAIT  : begin

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国精品国产| 欧亚洲嫩模精品一区三区| 精品日韩在线一区| 极品美女销魂一区二区三区| 精品国产成人在线影院| 国内偷窥港台综合视频在线播放| 国产亚洲一区二区三区在线观看| 国产999精品久久| 中文字幕日韩一区| 欧美亚洲动漫制服丝袜| 美腿丝袜亚洲综合| 国产精品亲子乱子伦xxxx裸| 色婷婷综合五月| 美女网站在线免费欧美精品| 久久久久久一二三区| 99国产精品国产精品毛片| 亚洲午夜免费视频| 欧美tickling网站挠脚心| 国产成人精品免费网站| 亚洲一区在线免费观看| 精品久久人人做人人爽| 97久久精品人人爽人人爽蜜臀| 亚洲国产精品人人做人人爽| 日韩三级av在线播放| 成人美女在线观看| 日本成人在线视频网站| ...xxx性欧美| 欧美sm美女调教| 在线中文字幕一区| 国产主播一区二区三区| 亚洲电影一级片| 国产欧美日韩视频在线观看| 欧美日韩亚洲综合在线| 成人一区二区三区| 日本美女视频一区二区| 亚洲欧美日韩国产另类专区| 精品美女一区二区| 欧美日本精品一区二区三区| 成人av手机在线观看| 免费黄网站欧美| 一区二区三区四区精品在线视频| 26uuu欧美| 欧美精品九九99久久| 色一情一乱一乱一91av| 国产乱码精品一品二品| 日韩精彩视频在线观看| 亚洲制服丝袜一区| 中国av一区二区三区| 精品国产免费久久| 91麻豆精品91久久久久同性| 色综合天天性综合| 成av人片一区二区| 国产一区二区三区国产| 久久精品国产澳门| 香蕉影视欧美成人| 一区二区高清视频在线观看| 中文一区一区三区高中清不卡| 欧美日韩高清在线| 欧美午夜一区二区三区| 91视频国产观看| 97精品国产露脸对白| 国产精品 欧美精品| 国产在线一区二区| 久草这里只有精品视频| 日韩电影在线观看电影| 亚洲第一综合色| 午夜欧美在线一二页| 亚洲午夜精品17c| 一区二区三区欧美| 亚洲人成人一区二区在线观看| 亚洲国产激情av| 国产精品久久影院| 亚洲日本电影在线| 中文字幕一区二区在线观看| 国产精品不卡视频| 亚洲乱码中文字幕综合| 亚洲男女一区二区三区| 亚洲美女精品一区| 亚洲一区二区精品视频| 午夜电影网一区| 奇米影视一区二区三区| 老司机精品视频导航| 国产老女人精品毛片久久| 国产成人在线影院| 94-欧美-setu| 欧美性受xxxx黑人xyx性爽| 欧美三级蜜桃2在线观看| 欧美日本精品一区二区三区| 制服丝袜国产精品| 精品久久国产老人久久综合| 久久综合丝袜日本网| 国产精品网曝门| 亚洲蜜桃精久久久久久久| 亚瑟在线精品视频| 久久电影网站中文字幕| 国产999精品久久| 91国偷自产一区二区三区观看| 欧美日韩在线播放三区四区| 91精品国产综合久久久久久久| 欧美一级高清大全免费观看| 久久蜜桃香蕉精品一区二区三区| 国产欧美精品一区二区色综合朱莉| 久久久亚洲欧洲日产国码αv| 中文字幕国产一区二区| 亚洲午夜影视影院在线观看| 加勒比av一区二区| av在线播放不卡| 欧美日韩国产一二三| 久久蜜桃av一区精品变态类天堂| 亚洲欧美日韩人成在线播放| 日韩国产成人精品| 顶级嫩模精品视频在线看| 在线观看亚洲a| 久久免费美女视频| 亚洲国产精品久久人人爱蜜臀| 久久99国产精品麻豆| 97久久超碰国产精品电影| 日韩一区二区三区电影在线观看 | 欧美一区二区三区免费观看视频| 久久美女艺术照精彩视频福利播放| 中文字幕一区二区三区不卡在线 | 亚洲品质自拍视频网站| 日韩国产欧美一区二区三区| 懂色av一区二区在线播放| 欧美日韩国产三级| 国产精品久久久久影视| 美女任你摸久久| 日本韩国精品在线| 久久久久久久电影| 免费高清成人在线| 欧美视频精品在线观看| 中文字幕一区日韩精品欧美| 久久精品国产精品亚洲红杏| 欧美日韩在线精品一区二区三区激情| 久久久亚洲综合| 久久国产精品区| 在线播放一区二区三区| 亚洲欧美区自拍先锋| 国产在线一区观看| 日韩一级片在线观看| 亚洲成人自拍一区| 色又黄又爽网站www久久| 国产日韩欧美精品电影三级在线| 蜜桃视频一区二区三区在线观看| 欧美色图在线观看| 一区二区三区四区高清精品免费观看 | 色综合天天做天天爱| 国产午夜亚洲精品午夜鲁丝片| 青青草伊人久久| 88在线观看91蜜桃国自产| 一区二区三区日韩精品视频| 99久久夜色精品国产网站| 国产亚洲精品资源在线26u| 久久99蜜桃精品| 欧美一级午夜免费电影| 日本在线不卡视频| 日韩一区二区免费在线电影| 天堂va蜜桃一区二区三区漫画版 | 99精品桃花视频在线观看| 欧美国产视频在线| 福利视频网站一区二区三区| 久久久综合激的五月天| 国产精品99久久久| 国产日韩视频一区二区三区| 国产真实乱对白精彩久久| 久久精品在线免费观看| 丁香婷婷综合色啪| 国产精品久久99| av不卡在线观看| 亚洲日本乱码在线观看| 欧美在线观看视频在线| 亚洲mv在线观看| 欧美一区二区视频网站| 久久99久久99| 久久久精品黄色| 成人小视频免费在线观看| 中文字幕亚洲在| 欧日韩精品视频| 免费成人av在线| 2020日本不卡一区二区视频| 高清不卡在线观看| 亚洲视频免费在线观看| 色综合视频一区二区三区高清| 一区二区免费在线播放| 制服丝袜亚洲播放| 国产九色精品成人porny| 国产精品国产a| 欧美日韩亚洲综合一区二区三区| 蜜臀av性久久久久蜜臀aⅴ四虎| 久久免费电影网| 一本色道亚洲精品aⅴ| 视频一区视频二区中文字幕| 久久综合99re88久久爱| 91在线你懂得| 免费人成精品欧美精品| 国产精品色呦呦| 欧美日韩黄视频| 国产美女视频91| 亚洲国产日韩一级| 久久久三级国产网站|