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

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

?? mem_interface_top_ddr_controller_0.txt

?? 該項(xiàng)對(duì)于設(shè)計(jì)DDSRAM有很大的幫助
?? TXT
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
        ext_mode_reg         <=  af_addr [`row_address-1:0];
   end

   //to initialize memory
   always @ (posedge clk_0) begin
      if ((rst_r)|| (init_state == INIT_DEEP_MEMORY_ST)) begin
         init_memory <= 1'b1;
      end
      else if (init_count_cp == 4'hA) begin
         init_memory <= 1'b0;
      end
           else begin
              init_memory <= init_memory;
           end
   end

   // mrd count
   always @ (posedge clk_0) begin
      if (rst_r)
         mrd_count <= 1'b0;
      else if (state == LOAD_MODE_REG_ST)
        mrd_count <= `mrd_count_value;
      else if (mrd_count != 1'b0)
        mrd_count <= 1'b0;
      else
        mrd_count <= 1'b0;
   end

   // rp count
   always @ (posedge clk_0) begin
      if (rst_r)
        rp_count[2:0] <= 3'b000;
      else if (state == PRECHARGE)
        rp_count[2:0] <= `rp_count_value;
      else if (rp_count[2:0] != 3'b000)
        rp_count[2:0] <= rp_count[2:0] - 1;
      else
        rp_count[2:0] <= 3'b000;
   end

   // rfc count
   always @ ( posedge clk_0) begin
      if (rst_r)
        rfc_count[5:0] <= 6'b000000;
      else if (state == AUTO_REFRESH)
        rfc_count[5:0] <= `rfc_count_value;
      else if (rfc_count[5:0] != 6'b000000)
        rfc_count[5:0] <= rfc_count[5:0] - 1;
      else
        rfc_count[5:0] <= 6'b00_0000;
   end

   // rcd count - 20ns
   always @ ( posedge clk_0) begin
      if (rst_r)
        rcd_count[2:0] <= 3'b000;
      else if (state == ACTIVE)
        rcd_count[2:0] <= `rcd_count_value;
      else if (rcd_count[2:0] != 3'b000)
        rcd_count[2:0] <= rcd_count[2:0] - 1;
      else
        rcd_count[2:0] <=  3'b000;
   end


   // ras count - active to precharge
   always @ ( posedge clk_0) begin
      if (rst_r)
         ras_count[3:0] <= 4'b0000;
      else if (state == ACTIVE)
         ras_count[3:0] <= `ras_count_value;
      else if (ras_count[3:1] == 3'b000) begin
         if (ras_count[0] != 1'b0)
           ras_count[0] <= 1'b0;
      end
      else  begin
         ras_count[3:0] <= ras_count[3:0] - 1;
      end
   end // always @ ( posedge clk_0)

   //AL+BL/2+TRTP-2
   // rtp count - read to precharge
   always @ ( posedge clk_0) begin
      if (rst_r)
        rtp_count[3:0] <= 4'b0000;
      else if (read_state)
        rtp_count[3:0] <= (`trtp_count_value ) ;
      else if (rtp_count[3:1] == 3'b000) begin
       if (rtp_count[0] != 1'b0)
         rtp_count[0] <= 1'b0;
      end
      else begin
       rtp_count[3:0] <= rtp_count[3:0] - 1;
      end
   end // always @ ( posedge clk_0)

   // WL+BL/2+TWR
   // wtp count - write to precharge
   always @ ( posedge clk_0) begin
      if (rst_r)
       wtp_count[3:0] <= 4'b0000;
      else if (write_state)
       wtp_count[3:0] <= (`twr_count_value)  ;
      else if (wtp_count[3:1] == 3'b000) begin
       if (wtp_count[0] != 1'b0)
              wtp_count[0] <= 1'b0;
      end
      else
       wtp_count[3:0] <= wtp_count[3:0] - 1;
   end // always @ ( posedge clk_0)

   // write to read counter
   always @ (posedge clk_0) begin
      if (rst_r)
        wr_to_rd_count[3:0] <= 4'b0000;
      else if (write_state)
        wr_to_rd_count[3:0] <= (`twtr_count_value );
      else if (wr_to_rd_count[3:0] != 4'b0000)
         wr_to_rd_count[3:0] <= wr_to_rd_count[3:0] - 1;
      else
        wr_to_rd_count[3:0] <= 4'b0000;
   end

   // read to write counter
   always @ (posedge clk_0) begin
      if (rst_r)
        rd_to_wr_count[3:0] <= 4'b0000;
      else if (read_state)
        rd_to_wr_count[3:0] <= ( `registered + burst_cnt + load_mode_reg[6] +
                                 load_mode_reg[4]);
      else if (rd_to_wr_count[3:0] != 4'b0000)
        rd_to_wr_count[3:0] <= rd_to_wr_count[3:0] - 1;
      else
        rd_to_wr_count[3:0] <= 4'b0000;
   end

   // auto refresh interval counter in clk_0 domain
   always @ (posedge clk_0) begin
      if (rst_r)
        refi_count <= 8'h00;
      else if (refi_count == `max_ref_cnt )
        refi_count <= 8'h00;
      else
        refi_count <= refi_count + 1;
   end

   assign ref_flag = ((refi_count == `max_ref_cnt) && (done_200us == 1'b1) )
                                ? 1'b1 : 1'b0;

   //200us counter for cke
   always @ (posedge clk_0) begin
      if (rst_r )
        cke_200us_cnt <= 5'b11011;
      else if (refi_count[`max_ref_width-1 : 0] ==  `max_ref_cnt)
        cke_200us_cnt  <=  cke_200us_cnt - 1;
           else
             cke_200us_cnt  <= cke_200us_cnt;
   end

   // refresh detect
   always @ (posedge clk_0) begin
      if (rst_r) begin
         ref_flag_0   <= 1'b0;
         ref_flag_0_r <= 1'b0;
         done_200us <= 1'b0;
      end
      else begin
         ref_flag_0   <= ref_flag;
         ref_flag_0_r <= ref_flag_0;
      `ifdef simulation
         done_200us <= 1'b1;
      `else
         if (done_200us == 1'b0)
           done_200us <= (cke_200us_cnt == 5'b00000);
      `endif
      end
   end // always @ (posedge clk_0)

   //refresh flag detect
   //auto_ref high indicates auto_refresh requirement
   //auto_ref is held high until auto refresh command is issued.
   always @(posedge clk_0) begin
      if (rst_r)
        auto_ref <= 1'b0;
      else if (ref_flag_0 == 1'b1 && ref_flag_0_r == 1'b0)
        auto_ref <= 1'b1;
      else if ((state == AUTO_REFRESH) || (init_state == INIT_AUTO_REFRESH))
        auto_ref <= 1'b0;
      else
        auto_ref <= auto_ref;
   end

   // 200 clocks counter - count value : C8
   // required for initialization
   always @ (posedge clk_0) begin
      if (rst_r)
        count_200_cycle[7:0] <= 8'h00;
      else if (init_state == INIT_INITCOUNT_200)
        count_200_cycle[7:0] <= 8'hC8;
      else if (count_200_cycle[7:0] != 8'h00)
        count_200_cycle[7:0] <= count_200_cycle[7:0] - 1;
      else
        count_200_cycle[7:0] <= 8'h00;
   end

   always @ (posedge clk_0) begin
      if (rst_r)
         count_200cycle_done_r<= 1'b0;
      else if (init_memory && (count_200_cycle == 8'h00))
        count_200cycle_done_r<= 1'b1;
      else
        count_200cycle_done_r<= 1'b0;
   end

   always @ (posedge clk_0) begin
      if (rst_r)
         init_done_int <= 1'b0;
      else if ((`Phy_Mode == 1'b1) && (comp_done==1'b1) && (count5 == 5'b10100)) begin
        init_done_int <= 1'b1;
      //synthesis translate_off
        $display ("Calibration completed");
      //synthesis translate_on
      end else
        init_done_int <= init_done_int;
   end

   assign ctrl_init_done      = init_done_int;

   always @ (posedge clk_0)
     init_done <= init_done_int;

   assign burst_cnt           = (BURST_LENGTH_VALUE == 3'b010) ? 3'b010 :
          (BURST_LENGTH_VALUE == 3'b011) ? 3'b100 : 3'b001;

   assign ddr_address_BL      = `row_address'h0002;

   always @ (posedge clk_0) begin
      if ((rst_r)|| (init_state == INIT_DEEP_MEMORY_ST))
         init_count[3:0] <= 4'b0000;
      else if (init_memory ) begin
         if (init_state==INIT_LOAD_MODE_REG_ST || init_state==INIT_PRECHARGE
             || init_state==INIT_AUTO_REFRESH || init_state==INIT_DUMMY_READ_CYCLES
             || init_state==INIT_INITCOUNT_200 || init_state==INIT_DEEP_MEMORY_ST)
           init_count[3:0] <= init_count[3:0] + 1;
         else if(init_count == 4'hA )
           init_count[3:0] <= 4'h0;
         else
           init_count[3:0] <= init_count[3:0];
      end
   end // always @ (posedge clk_0)

   always @ (posedge clk_0) begin
      if ((rst_r)|| (init_state == INIT_DEEP_MEMORY_ST))
        init_count_cp[3:0] <= 4'b0000;
      else if (init_memory  ) begin
         if (init_state == INIT_LOAD_MODE_REG_ST || init_state == INIT_PRECHARGE
             || init_state==INIT_AUTO_REFRESH || init_state==INIT_DUMMY_READ_CYCLES
             || init_state==INIT_INITCOUNT_200 || init_state==INIT_DEEP_MEMORY_ST)
           init_count_cp[3:0] <= init_count_cp[3:0] + 1;
         else if(init_count_cp == 4'hA )
           init_count_cp[3:0] <= 4'h0;
         else
           init_count_cp[3:0] <= init_count_cp[3:0];
      end
   end // always @ (posedge clk_0)

   always @ (posedge clk_0 ) begin
      if (rst_r)
        chip_cnt <= 2'b00;
      else if ( init_state ==INIT_DEEP_MEMORY_ST)
        chip_cnt <= chip_cnt + 2'b01;
      else
        chip_cnt <= chip_cnt;
   end

   // write burst count
   always @ (posedge clk_0) begin
      if (rst_r)
        wrburst_cnt[2:0] <= 3'b000;
      else if (write_state || dummy_write_state)
        wrburst_cnt[2:0] <= burst_cnt[2:0];
      else if (wrburst_cnt[2:0] != 3'b000)
        wrburst_cnt[2:0] <= wrburst_cnt[2:0] - 1;
      else
        wrburst_cnt[2:0] <= 3'b000;
   end

   // read burst count for state machine
   always @ (posedge clk_0) begin
      if (rst_r)
        read_burst_cnt[2:0] <= 3'b000;
      else if (read_state)
        read_burst_cnt[2:0] <= burst_cnt[2:0];
      else if (read_burst_cnt[2:0] != 3'b000)
        read_burst_cnt[2:0] <= read_burst_cnt[2:0] - 1;
      else
        read_burst_cnt[2:0] <= 3'b000;
   end

   // count to generate write enable to the data path
   always @ (posedge clk_0) begin
      if (rst_r)
        ctrl_WrEn_cnt[2:0] <= 3'b000;
      else if (wdf_rden_r || dummy_write_state_r)
        ctrl_WrEn_cnt[2:0] <= burst_cnt[2:0];
      else if (ctrl_WrEn_cnt[2:0] != 3'b000)
        ctrl_WrEn_cnt[2:0] <= ctrl_WrEn_cnt[2:0] -1;
      else
        ctrl_WrEn_cnt[2:0] <= 3'b000;
   end

   //write enable to data path

   always @ (ctrl_WrEn_cnt) begin
      if (ctrl_WrEn_cnt[2:0] != 3'b000)
        ctrl_WrEn_r <= 1'b1;
      else
        ctrl_WrEn_r <= 1'b0;
   end

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

   assign ctrl_WrEn = (registered_dimm) ? ctrl_WrEn_r1 : ctrl_WrEn_r;

   // DQS reset to data path
   always @ (posedge clk_0) begin
      if (rst_r)
        ctrl_Dqs_Rst_r <= 1'b0;
      else if ((first_write_state) || (dummy_write_state_1))
        ctrl_Dqs_Rst_r <= 1'b1;
      else
        ctrl_Dqs_Rst_r <= 1'b0;
   end

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

   assign ctrl_Dqs_Rst = (registered_dimm) ? ctrl_Dqs_Rst_r1 : ctrl_Dqs_Rst_r;


   // DQS enable to data path

   always @ (posedge clk_0) begin
      if (rst_r)
         ctrl_Dqs_En_r <= 1'b0;
      else if ((write_state) ||(wrburst_cnt != 3'b000) || (dummy_write_state))
         ctrl_Dqs_En_r <= 1'b1;
      else
        ctrl_Dqs_En_r <= 1'b0;
   end

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

   assign ctrl_Dqs_En = (registered_dimm) ? ctrl_Dqs_En_r1 : ctrl_Dqs_En_r;

   // cas count
   always @ (posedge clk_0) begin
      if (rst_r)
        cas_count[2:0] <= 3'b000;
      else if (init_state == INIT_DUMMY_FIRST_READ)
        cas_count[2:0] <= CAS_LATENCY_VALUE + `registered;
      else if (cas_count[2:0] != 3'b000)
        cas_count[2:0] <= cas_count[2:0] - 1;
      else
        cas_count[2:0] <= 3'b000;
   end

   //dummy_read enable
   always @ (posedge clk_0) begin
      if (rst_r)
        dummy_read_en <= 1'b0;
      else if (init_state == INIT_DUMMY_READ)
        dummy_read_en <= 1'b1;
      else if (phy_Dly_Slct_Done == 1'b1)
        dummy_read_en <= 1'b0;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美做爰猛烈大尺度电影无法无天| 国产一区二区精品久久99| 日韩视频在线你懂得| 成人手机在线视频| 麻豆91在线播放免费| 一区二区三区91| 久久久蜜桃精品| 欧美一区二区三区白人| 91日韩一区二区三区| 国产在线精品免费| 婷婷久久综合九色综合伊人色| 国产精品久久久久久久久久久免费看| 日韩一区二区三区三四区视频在线观看| 成人在线视频首页| 国产一区二区三区日韩 | 五月婷婷综合网| 国产丝袜欧美中文另类| 91精品国产综合久久香蕉麻豆 | 另类小说综合欧美亚洲| 亚洲成人精品在线观看| 亚洲精品视频在线| 日韩高清一区二区| 婷婷久久综合九色综合绿巨人| 一区二区三区蜜桃网| 亚洲色图一区二区三区| 中文字幕视频一区| 亚洲一区二区三区在线看| 中文子幕无线码一区tr| 久久综合九色综合久久久精品综合| 欧美日韩成人一区| 欧美在线影院一区二区| 欧美在线免费视屏| 91久久精品国产91性色tv| 色综合欧美在线| 一本色道综合亚洲| 欧美羞羞免费网站| 欧美午夜精品免费| 欧美麻豆精品久久久久久| 欧美色窝79yyyycom| 欧美日韩一区视频| 欧美日韩一区二区三区免费看| 欧美午夜精品久久久久久超碰| 在线国产电影不卡| 欧美日韩国产免费| 日韩一区二区精品葵司在线| 欧美一区二区黄色| 亚洲综合在线电影| 亚洲另类一区二区| 一区二区视频在线| 亚洲网友自拍偷拍| 亚洲1区2区3区视频| 视频一区二区三区在线| 蜜桃在线一区二区三区| 国内精品自线一区二区三区视频| 经典三级一区二区| 成人美女视频在线观看18| 91片黄在线观看| 91久久精品网| 宅男噜噜噜66一区二区66| 欧美精品视频www在线观看| 欧美一二三区在线观看| 国产亚洲综合av| 亚洲视频图片小说| 午夜日韩在线电影| 黄网站免费久久| 成人中文字幕合集| 欧美私人免费视频| 911精品产国品一二三产区| 欧美肥妇free| 久久精品视频一区二区| 日韩一区在线看| 日韩1区2区日韩1区2区| 国产精品亚洲一区二区三区妖精| 国产主播一区二区| 在线精品视频免费观看| 777久久久精品| 国产精品网站在线| 亚洲国产一区二区在线播放| 久久www免费人成看片高清| 成人精品在线视频观看| 欧洲精品在线观看| www国产亚洲精品久久麻豆| 亚洲男人的天堂av| 激情图区综合网| 欧美视频一区在线观看| 久久综合色综合88| 亚洲综合在线电影| 国产一区二区免费在线| 欧美亚洲丝袜传媒另类| 久久夜色精品一区| 亚洲18影院在线观看| 国产一区 二区| 欧美日韩精品欧美日韩精品 | 日韩欧美高清在线| 亚洲精品国产无天堂网2021| 国产一区二区三区免费播放| 欧美性xxxxx极品少妇| 国产女主播视频一区二区| 视频一区视频二区中文字幕| 97久久超碰国产精品| 久久精品亚洲乱码伦伦中文| 日韩精品一二三四| 色久综合一二码| 欧美韩国日本一区| 精品一区在线看| 欧美日韩成人综合在线一区二区| 中文字幕在线不卡一区二区三区| 蜜桃av一区二区三区| 欧美日韩精品一区视频| 一区二区三区精品在线观看| 成人网男人的天堂| 久久亚洲综合色一区二区三区| 日韩国产精品91| 欧美性猛片aaaaaaa做受| 日韩毛片在线免费观看| 国产91精品免费| 久久精品人人做人人爽97| 久久激情五月婷婷| 91精品国产入口| 五月天一区二区| 欧洲生活片亚洲生活在线观看| 中文字幕亚洲一区二区av在线| 国产成人综合亚洲91猫咪| 久久先锋影音av鲁色资源网| 久久精品国产精品亚洲红杏| 91.xcao| 亚洲男同1069视频| 91原创在线视频| **网站欧美大片在线观看| 99视频一区二区| 亚洲欧美日韩一区| 色综合久久综合| 一区二区三区日韩欧美精品| 色综合久久综合网97色综合| 亚洲欧美日韩国产手机在线| www.亚洲精品| 亚洲色图在线视频| 在线精品视频一区二区| 亚洲一区二区三区爽爽爽爽爽| 欧美视频一区在线| 日本伊人午夜精品| 日韩视频一区二区三区在线播放| 蜜臀91精品一区二区三区| 精品少妇一区二区三区免费观看 | 福利一区在线观看| 国产精品污污网站在线观看| 97se狠狠狠综合亚洲狠狠| 一区二区三区电影在线播| 欧美性高清videossexo| 日韩主播视频在线| 欧美tickling挠脚心丨vk| 国产精品一区久久久久| 国产精品的网站| 欧美在线制服丝袜| 亚洲mv在线观看| 26uuu国产电影一区二区| 99久久婷婷国产| 亚洲国产精品久久不卡毛片 | 一本大道综合伊人精品热热| 丁香亚洲综合激情啪啪综合| 亚洲美女偷拍久久| 欧美一三区三区四区免费在线看| 黑人巨大精品欧美黑白配亚洲| 国产欧美久久久精品影院| 色综合欧美在线视频区| 免费成人性网站| 日本一区二区电影| 欧美亚洲另类激情小说| 狠狠色狠狠色综合| 一区视频在线播放| 欧美一区二区三区视频免费播放 | 免费成人在线网站| 国产精品美女久久久久aⅴ| 欧美日精品一区视频| 国产真实乱对白精彩久久| 亚洲男人电影天堂| 精品国产sm最大网站免费看| av福利精品导航| 蜜臀va亚洲va欧美va天堂| 亚洲欧洲美洲综合色网| 欧美一级电影网站| 色综合久久中文字幕综合网| 久久电影国产免费久久电影| 亚洲美女偷拍久久| www国产成人免费观看视频 深夜成人网| 97精品电影院| 国产在线视频一区二区三区| 亚洲国产婷婷综合在线精品| 国产三级一区二区| 欧美精品久久99久久在免费线| av亚洲产国偷v产偷v自拍| 麻豆成人91精品二区三区| 亚洲精品伦理在线| 国产视频一区二区在线观看| 91麻豆精品国产综合久久久久久| 国产成人亚洲综合a∨猫咪| 天堂av在线一区| 国产精品电影院| 久久在线观看免费| 欧美在线视频日韩|