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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? mem_interface_top_ddr_controller_0.txt

?? 基于Xilinx FPGA的DDRSDRAM的Verilog控制代碼
?? TXT
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
      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

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线视频国产一区| 欧美视频一区二区三区四区| 不卡一卡二卡三乱码免费网站| 亚洲综合一二区| 亚洲美女在线一区| 日本欧美一区二区三区| 国产成人在线色| 欧美写真视频网站| 久久午夜电影网| 亚洲综合色丁香婷婷六月图片| 免费看日韩a级影片| 99久久免费精品高清特色大片| 欧美精品一二三| 亚洲国产激情av| 日韩制服丝袜av| 成人福利在线看| 欧美一级免费大片| 最新国产精品久久精品| 日日嗨av一区二区三区四区| 国产精品亚洲专一区二区三区| 欧美三日本三级三级在线播放| 欧美精品一区二| 亚洲国产成人精品视频| 国产福利精品导航| 欧美一区二区在线视频| 亚洲男人电影天堂| 国产精品一品二品| 91精品国产综合久久精品图片| 中文字幕第一区第二区| 久久精品理论片| 精品视频一区二区三区免费| 国产精品久久久久久久久久免费看| 日韩电影一区二区三区| 日本韩国欧美一区二区三区| 国产午夜精品在线观看| 蜜桃久久久久久| 欧美日韩一卡二卡| 亚洲日本免费电影| 国产伦精品一区二区三区视频青涩| 欧美三级电影网站| 综合久久国产九一剧情麻豆| 国产传媒欧美日韩成人| 日韩精品在线网站| 天堂久久一区二区三区| 色网综合在线观看| 17c精品麻豆一区二区免费| 国产麻豆欧美日韩一区| 欧美xxxxx牲另类人与| 午夜电影网一区| 欧美午夜在线一二页| 中文字幕亚洲在| 成人午夜激情在线| 国产免费成人在线视频| 狠狠色丁香久久婷婷综| 日韩久久久精品| 免费成人在线视频观看| 在线播放欧美女士性生活| 亚洲国产成人av网| 欧美日韩精品一区二区| 亚洲国产wwwccc36天堂| 欧美在线观看你懂的| 亚洲免费观看视频| 色呦呦日韩精品| 玉米视频成人免费看| 色婷婷国产精品久久包臀| 1024成人网| 色婷婷久久综合| 亚洲精品中文在线影院| 日本道免费精品一区二区三区| 亚洲欧美日韩一区二区 | 欧美丝袜丝交足nylons| 一区二区三区中文字幕在线观看| 99国产麻豆精品| 亚洲欧美电影院| 色噜噜狠狠一区二区三区果冻| 亚洲三级久久久| 欧美亚洲日本一区| 亚洲国产aⅴ成人精品无吗| 欧美美女网站色| 日韩高清不卡一区二区| 日韩视频在线永久播放| 久久99国产精品免费| 久久亚洲欧美国产精品乐播| 国产精品一线二线三线精华| 中文字幕不卡在线播放| 91免费视频大全| 午夜精品123| 精品国产伦一区二区三区观看方式 | 国产专区综合网| 国产日韩欧美综合在线| 91影院在线免费观看| 一二三四社区欧美黄| 91精品国产色综合久久ai换脸 | 久久精品在这里| 午夜av一区二区| 26uuu久久天堂性欧美| 成人av电影观看| 亚洲成人av福利| 精品久久一区二区三区| 不卡高清视频专区| 亚洲午夜影视影院在线观看| 91精品久久久久久久91蜜桃 | 国产精品第13页| 欧美在线影院一区二区| 奇米亚洲午夜久久精品| 日本一区二区三区在线不卡| 91久久奴性调教| 六月丁香婷婷色狠狠久久| 国产精品三级视频| 欧美日韩一级片在线观看| 国产一本一道久久香蕉| 亚洲欧美日韩人成在线播放| 日韩美女一区二区三区| 99久久99久久精品免费观看| 天堂成人免费av电影一区| 国产欧美综合在线观看第十页| 欧美亚洲高清一区| 国产一区二区中文字幕| 亚洲伊人色欲综合网| 久久综合成人精品亚洲另类欧美 | 日韩精品亚洲一区二区三区免费| 久久免费电影网| 欧美午夜精品一区二区三区| 国产美女一区二区| 亚洲一区二区三区国产| 久久久久久影视| 在线91免费看| 99国产欧美久久久精品| 激情久久五月天| 亚洲电影一区二区三区| 国产欧美一区在线| 91精品麻豆日日躁夜夜躁| 91免费看片在线观看| 国产在线播精品第三| 五月天国产精品| 亚洲精品第一国产综合野| 久久久久久久综合| 欧美精品久久久久久久多人混战| 岛国一区二区三区| 麻豆一区二区在线| 亚洲成人在线免费| 亚洲婷婷在线视频| 国产亚洲自拍一区| 欧美不卡在线视频| 欧美福利视频一区| 日本丰满少妇一区二区三区| 风流少妇一区二区| 九九精品视频在线看| 亚洲va中文字幕| 亚洲黄色性网站| 亚洲日本韩国一区| 欧美激情中文不卡| 久久天天做天天爱综合色| 日韩一卡二卡三卡| 91.com视频| 精品视频在线免费观看| 色婷婷久久一区二区三区麻豆| 成人高清视频在线| 国产精品77777| 精东粉嫩av免费一区二区三区| 日韩精品电影在线| 亚洲图片一区二区| 亚洲精品免费电影| 亚洲欧美日韩在线不卡| 自拍偷拍亚洲激情| 中文字幕日韩一区二区| 欧美韩日一区二区三区| 国产亚洲精品精华液| 久久日一线二线三线suv| 日韩精品在线一区| 精品少妇一区二区三区视频免付费 | 欧美国产精品中文字幕| 久久亚洲精华国产精华液 | 国产成人精品午夜视频免费| 国产最新精品精品你懂的| 韩国毛片一区二区三区| 韩国女主播成人在线| 国产真实乱对白精彩久久| 激情综合色综合久久| 国产一区二区免费视频| 国产精品亚洲成人| 成人中文字幕在线| 成人97人人超碰人人99| 99精品久久久久久| 97aⅴ精品视频一二三区| 99国产欧美另类久久久精品| 91麻豆精品在线观看| 欧洲一区在线观看| 欧美三级电影在线看| 91精品免费在线| 精品国产露脸精彩对白| 久久一区二区三区四区| 欧美激情一区二区三区全黄| 国产精品乱人伦一区二区| 中文字幕一区av| 亚洲午夜精品网| 免费在线观看视频一区| 极品少妇一区二区三区精品视频| 国产激情偷乱视频一区二区三区| 丁香亚洲综合激情啪啪综合|