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

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

?? ddr1_controller.vhd

?? The xapp851.zip archive includes the following subdirectories. The specific contents of each subdi
?? VHD
?? 第 1 頁 / 共 3 頁
字號:
-- rtp count - read to precharge
process (clk0)
begin
 if(clk0'event and clk0 = '1') then
    if(rst = '1') then
       rtp_count(3 downto 0) <= "0000";
   elsif (read_state = '1') then
       rtp_count(2 downto 0) <= trtp_count_value ;
   elsif (rtp_count(3 downto 1) = "000") then
       if (rtp_count(0) /= '0') then
              rtp_count(0) <= '0';
       end if;
   else
       rtp_count(3 downto 0) <= rtp_count(3 downto 0) - 1;
  end if;
 end if;
end process;

-- WL+BL/2+TWR
-- wtp count - write to precharge
process (clk0)
begin
 if(clk0'event and clk0 = '1') then
    if(rst = '1') then
       wtp_count(3 downto 0) <= "0000";
   elsif (write_state = '1') then
       wtp_count(2 downto 0) <= twr_count_value  ;
   elsif (wtp_count(3 downto 1) = "000") then
       if (wtp_count(0) /= '0') then
              wtp_count(0) <= '0';
       end if;
   else
       wtp_count(3 downto 0) <= wtp_count(3 downto 0) - 1;
  end if;
 end if;
end process;

-- write to read counter
process (clk0)
begin
 if(clk0'event and clk0 = '1') then
    if(rst = '1') then
       wr_to_rd_count(3 downto 0) <= "0000";
   elsif (write_state = '1') then
       wr_to_rd_count(2 downto 0) <= twtr_count_value;
   elsif (wr_to_rd_count(3 downto 0) /= "0000") then
       wr_to_rd_count(3 downto 0) <= wr_to_rd_count(3 downto 0) - 1;
   else
     wr_to_rd_count(3 downto 0) <= "0000";
  end if;
 end if;
end process;

-- read to write counter
process (clk0)
begin
 if(clk0'event and clk0 = '1') then
    if(rst = '1') then
      rd_to_wr_count(3 downto 0) <= "0000";
   elsif (read_state = '1') then
      -- MODIFIED, RCHIU, 06/28/06
      -- Fixed CL=2.5 read-write spacing bug
      rd_to_wr_count(3 downto 0) <=  registered + burst_cnt + rd_to_wr_cas_delay;
--      rd_to_wr_count(3 downto 0) <=  registered + burst_cnt + CAS_LATENCY_VALUE(0);
   elsif (rd_to_wr_count(3 downto 0) /= "0000") then
      rd_to_wr_count(3 downto 0) <= rd_to_wr_count(3 downto 0) - 1;
   else
     rd_to_wr_count(3 downto 0) <= "0000";
  end if;
 end if;
end process;

-- auto refresh interval counter in refresh_clk domain
process (refresh_clk)
begin
 if(refresh_clk'event and refresh_clk = '1') then
   if(rst = '1') then
      refi_count <= (others => '0');
   elsif (refi_count = max_ref_cnt ) then
      refi_count <= (others => '0');
   else
      refi_count <= refi_count + 1;
  end if;
 end if;
end process;

 ref_flag <= '1' when ((refi_count = max_ref_cnt) and (done_200us = '1') ) else
	    '0';

--200us counter for cke
-- Commented for later use
--process (refresh_clk)
--begin
-- if(refresh_clk'event and refresh_clk = '1') then
--  if (rst = '1') then
--    cke_200us_cnt <= "11011";
--  elsif (refi_count(max_ref_width-1  downto  0) =  max_ref_cnt) then
--    cke_200us_cnt  <=  cke_200us_cnt - 1;
--  else
--    cke_200us_cnt  <= cke_200us_cnt;
--  end if;
-- end if;
--end process;

-- refresh detect in 266 MHz clock
process (clk0)
begin
 if(clk0'event and clk0 = '1') then
    if(rst = '1') then
      ref_flag_266   <= '0';
      ref_flag_266_r <= '0';
      done_200us <= '0';
   else
      ref_flag_266   <= ref_flag;
      ref_flag_266_r <= ref_flag_266;
--      if (done_200us = '0' and (cke_200us_cnt = "00000")) then --comment should be removed later
	done_200us <= '1';
--      end if;
  end if;
 end if;
end process;

--refresh flag detect
--auto_ref high indicates auto_refresh requirement
--auto_ref is held high until auto refresh command is issued.
process(clk0)
begin
 if(clk0'event and clk0 = '1') then
    if(rst = '1') then
       auto_ref <= '0';
    elsif (ref_flag_266 = '1' and ref_flag_266_r = '0') then
       auto_ref <= '1';
    elsif (state = AUTO_REFRESH) then
       auto_ref <= '0';
    else
       auto_ref <= auto_ref;
  end if;
 end if;
end process;


burst_cnt           <= "0010" when (BURST_LENGTH_VALUE = "010") else
                       "0100" when (BURST_LENGTH_VALUE = "011") else
		       "0001";
burst_cnt_by2	     <= "001" when (BURST_LENGTH_VALUE = "010") else
                       "010" when (BURST_LENGTH_VALUE = "011") else
		       "000";

-- write burst count
process (clk0)
begin
 if(clk0'event and clk0 = '1') then
    if(rst = '1') then
       wrburst_cnt(2 downto 0) <= "000";
   elsif (write_state = '1') then
       wrburst_cnt(2 downto 0) <= burst_cnt(2 downto 0);
   elsif (wrburst_cnt(2 downto 0) /= "000") then
       wrburst_cnt(2 downto 0) <= wrburst_cnt(2 downto 0) - 1;
   else wrburst_cnt(2 downto 0) <= "000";
  end if;
 end if;
end process;

-- read burst count for state machine
process (clk0)
begin
 if(clk0'event and clk0 = '1') then
    if(rst = '1') then
       read_burst_cnt(2 downto 0) <= "000";
   elsif (read_state = '1') then
       read_burst_cnt(2 downto 0) <= burst_cnt(2 downto 0);
   elsif (read_burst_cnt(2 downto 0) /= "000") then
       read_burst_cnt(2 downto 0) <= read_burst_cnt(2 downto 0) - 1;
   else read_burst_cnt(2 downto 0) <= "000";
  end if;
 end if;
end process;

-- count to generate write enable to the data path
process (clk0)
begin
 if(clk0'event and clk0 = '1') then
    if(rst = '1') then
       ctrl_WrEn_cnt(2 downto 0) <= "000";
   elsif (wdf_rden_r = '1') then
       ctrl_WrEn_cnt(2 downto 0) <= burst_cnt(2 downto 0);
   elsif (ctrl_WrEn_cnt(2 downto 0) /= "000") then
       ctrl_WrEn_cnt(2 downto 0) <= ctrl_WrEn_cnt(2 downto 0) -1;
   else
       ctrl_WrEn_cnt(2 downto 0) <= "000";
  end if;
 end if;
end process;

--write enable to data path
process (ctrl_WrEn_cnt)
begin
     if (ctrl_WrEn_cnt(2 downto 0) /= "000") then
        ctrl_WrEn_r <= '1';
     else
        ctrl_WrEn_r <= '0';
     end if;
end process;

process(clk0)
begin
 if(clk0'event and clk0 = '1') then
    if(rst = '1') then
	ctrl_WrEn_r1 <= '0';
    else
	ctrl_WrEn_r1 <= ctrl_WrEn_r;
    end if;
 end if;
end process;

ctrl_WrEn <= ctrl_WrEn_r1 when (REGISTERED_VALUE = '1') else
	     ctrl_WrEn_r;


-- DQS reset to data path
process (clk0)
begin
 if(clk0'event and clk0 = '1') then
    if(rst = '1') then
      ctrl_Dqs_Rst_r <= '0';
   elsif (first_write_state = '1') then
      ctrl_Dqs_Rst_r <= '1';
   else
      ctrl_Dqs_Rst_r <= '0';
  end if;
 end if;
end process;

process(clk0)
begin
 if(clk0'event and clk0 = '1') then
    if(rst = '1') then
	ctrl_Dqs_Rst_r1 <= '0';
    else
	ctrl_Dqs_Rst_r1 <= ctrl_Dqs_Rst_r;
    end if;
 end if;
end process;

ctrl_Dqs_Rst <= ctrl_Dqs_Rst_r1 when (REGISTERED_VALUE = '1') else
		ctrl_Dqs_Rst_r;

-- DQS enable to data path
process (clk0)
begin
 if(clk0'event and clk0 = '1') then
    if(rst = '1') then
      ctrl_Dqs_En_r <= '0';
   elsif ((write_state = '1') or (wrburst_cnt /= "000")) then
      ctrl_Dqs_En_r <= '1';
   else
      ctrl_Dqs_En_r <= '0';
  end if;
 end if;
end process;

process(clk0)
begin
 if(clk0'event and clk0 = '1') then
    if(rst = '1') then
	ctrl_Dqs_En_r1 <= '0';
    else
	ctrl_Dqs_En_r1 <= ctrl_Dqs_En_r;
    end if;
 end if;
end process;

ctrl_Dqs_En <= ctrl_Dqs_En_r1 when (REGISTERED_VALUE = '1') else
	       ctrl_Dqs_En_r;


-- 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.

process (clk0)
begin
 if(clk0'event and clk0 = '1') then
    if(rst = '1') then
       idle_cnt(3 downto 0) <= "0000";
   elsif (read_write_state = '1') then
       idle_cnt(3 downto 0) <= "1111" ;
   elsif (idle_cnt(3 downto 0) /= "0000") then
       idle_cnt(3 downto 0) <= idle_cnt(3 downto 0) - 1;
   else idle_cnt(3 downto 0) <= "0000";
  end if;
 end if;
end process;

process (clk0)
begin
 if(clk0'event and clk0 = '1') then
    if(rst = '1') then
       cas_check_count(3 downto 0) <= "0000";
   elsif (first_read_state_r2 = '1')  then
          cas_check_count(3 downto 0) <= (CAS_LATENCY_VALUE - 1);
   elsif (cas_check_count(3 downto 0) /= "0000") then
       cas_check_count(3 downto 0) <= cas_check_count(3 downto 0) - 1;
   else
     cas_check_count(3 downto 0) <= "0000";
  end if;
 end if;
end process;

process (clk0)
begin
 if(clk0'event and clk0 = '1') then
    if (rst = '1') then
      rdburst_cnt(2 downto 0) <= "000";
      ctrl_RdEn_r <= '0';
   elsif ((cas_check_count = "0001") and (burst_read_state_r3 = '0')) then
      rdburst_cnt(2 downto 0) <= burst_cnt(2 downto 0);
      ctrl_RdEn_r <= '1';
   elsif(burst_read_state_r3 = '1') then
      if(burst_cnt = "0100") then
	rdburst_cnt(2 downto 0) <= CAS_LATENCY_VALUE(2 downto 0) + burst_cnt_by2;
      elsif (burst_cnt = "010") then
        rdburst_cnt(2 downto 0) <= CAS_LATENCY_VALUE(2 downto 0);
      else
	rdburst_cnt(2 downto 0) <= CAS_LATENCY_VALUE(2 downto 0) - burst_cnt(2 downto 0);
      end if;
      ctrl_RdEn_r <= '1';
   elsif (rdburst_cnt(2 downto 0) /= "000") then
      rdburst_cnt(2 downto 0) <= rdburst_cnt(2 downto 0) - '1';
      if(rdburst_cnt = "001") then
        ctrl_RdEn_r <= '0';
      end if;
   else
     rdburst_cnt(2 downto 0) <= "000";
  end if;
 end if;
end process;

process(clk0)
begin
 if(clk0'event and clk0 = '1') then
    if (rst = '1') then
	ctrl_RdEn_r1 <= '0';
    else
	ctrl_RdEn_r1 <= ctrl_RdEn_r;
    end if;
 end if;
end process;

ctrl_RdEn <= ctrl_RdEn_r1 when (REGISTERED_VALUE = '1') else
	     ctrl_RdEn_r;

-- write address FIFO read enable signals

af_rden <= '1' when ((read_write_state = '1') or ((state = MODE_REGISTER_WAIT) and LMR_r = '1' and (mrd_count = '0')) or
                     ((state = PRECHARGE )and PRE_r = '1') or ((state = AUTO_REFRESH) and REF_r = '1')
                     or ((state = ACTIVE )and ACT_r = '1')) else '0';

-- write data fifo read enable
process (clk0)
begin
 if(clk0'event and clk0 = '1') then
    if (rst = '1')  then
       wdf_rden_r  <= '0';
   elsif (write_state = '1') then -- place holder for burst_write
       wdf_rden_r  <= '1';
   else
     wdf_rden_r  <= '0';
  end if;
 end if;
end process;

process (clk0)
begin
 if(clk0'event and clk0 = '1') then
    if (rst = '1') then
       wdf_rden_r2 <= '0';
       wdf_rden_r3 <= '0';
       wdf_rden_r4 <= '0';
   else
       wdf_rden_r2 <= wdf_rden_r;
       wdf_rden_r3 <= wdf_rden_r2;
       wdf_rden_r4 <= wdf_rden_r3;
  end if;
 end if;
end process;

-- Read enable to the data fifo

process (burst_cnt, wdf_rden_r, wdf_rden_r2, wdf_rden_r3, wdf_rden_r4)
begin
   if (burst_cnt = "001") then
       ctrl_Wdf_RdEn_r<= (wdf_rden_r ) ;
   elsif (burst_cnt = "010") then
       ctrl_Wdf_RdEn_r<= (wdf_rden_r or wdf_rden_r2) ;
   elsif (burst_cnt = "100") then
       ctrl_Wdf_RdEn_r<= (wdf_rden_r or wdf_rden_r2 or wdf_rden_r3 or wdf_rden_r4) ;
   else
       ctrl_Wdf_RdEn_r<= '0';
   end if;
end process;

process (clk0)
begin

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久青草欧美一区二区三区| 色综合一区二区三区| 欧美一区二区三区四区五区| 亚洲午夜av在线| 欧美日韩免费一区二区三区| 亚洲国产裸拍裸体视频在线观看乱了| 欧美亚洲动漫精品| 天天综合色天天| 久久久久青草大香线综合精品| 国产ts人妖一区二区| 中文子幕无线码一区tr| 91香蕉国产在线观看软件| 一区二区三区.www| 日韩欧美国产1| 国产成人激情av| 亚洲日本韩国一区| 九九九久久久精品| 国产精品私人影院| 91国偷自产一区二区三区观看| 亚洲一区二区视频| 日韩午夜在线观看| 99久久精品国产麻豆演员表| 亚洲v中文字幕| 久久蜜桃av一区二区天堂| 91亚洲精品久久久蜜桃| 日韩精品乱码免费| 国产精品美女久久久久久久久久久 | 亚洲精品视频在线观看免费 | 51精品秘密在线观看| 狠狠色丁香婷婷综合| 亚洲欧洲中文日韩久久av乱码| 欧美日韩精品专区| 国产成人综合在线观看| 亚洲综合成人在线| 国产亚洲精品福利| 在线成人av影院| 成人免费视频视频在线观看免费 | 欧美成人精品1314www| 99精品国产视频| 久久99精品一区二区三区| 亚洲精品中文在线| 久久女同性恋中文字幕| 欧美乱妇15p| 色婷婷亚洲综合| 国产乱对白刺激视频不卡| 日韩精品亚洲一区| 亚洲激情图片qvod| 国产精品视频九色porn| 精品国内二区三区| 欧美人牲a欧美精品| 97精品国产露脸对白| 国产成人夜色高潮福利影视| 日本不卡1234视频| 亚洲永久精品大片| 亚洲欧洲日韩av| 国产精品色哟哟| 欧美精品一区二区三区高清aⅴ | 亚洲国产精品传媒在线观看| 欧美一卡2卡3卡4卡| 色激情天天射综合网| 大白屁股一区二区视频| 国产中文字幕精品| 喷水一区二区三区| 日精品一区二区| 亚洲h在线观看| 亚洲国产精品一区二区www| 亚洲精品自拍动漫在线| 亚洲精品亚洲人成人网| 《视频一区视频二区| 国产精品久久久久影院| 久久久久久久久久久久久夜| 亚洲精品在线观看网站| 精品免费一区二区三区| 日韩精品一区国产麻豆| 欧美一级淫片007| 欧美一区二区三区四区在线观看| 91.麻豆视频| 91精品久久久久久久99蜜桃| 666欧美在线视频| 欧美裸体一区二区三区| 7777精品伊人久久久大香线蕉| 欧美伦理影视网| 日韩三级高清在线| 日韩午夜激情视频| 精品剧情v国产在线观看在线| 欧美成人猛片aaaaaaa| 精品欧美乱码久久久久久 | 国产精品久久久久久久久久久免费看 | 亚洲女人的天堂| 一区二区三区欧美日| 一区二区三区欧美久久| 亚州成人在线电影| 五月综合激情婷婷六月色窝| 免费观看30秒视频久久| 国产在线精品一区二区| 国产91精品久久久久久久网曝门 | 亚洲精品伦理在线| 亚洲国产色一区| 日本在线不卡视频| 久久国产生活片100| 国产91清纯白嫩初高中在线观看| 99国产精品久久久久| 日本韩国精品在线| 日韩一区二区电影在线| 久久久九九九九| 伊人色综合久久天天人手人婷| 亚洲高清三级视频| 极品少妇一区二区| 色综合久久中文字幕| 91精品国产aⅴ一区二区| 久久女同精品一区二区| 亚洲激情av在线| 捆绑调教一区二区三区| 成人免费看片app下载| 欧美日韩另类一区| 国产午夜精品福利| 亚洲二区在线视频| 国产精品羞羞答答xxdd| 在线观看一区二区精品视频| 亚洲精品在线电影| 亚洲视频一二三区| 蜜臀av一区二区在线观看| 成人美女视频在线看| 欧美精品99久久久**| 久久精品一区二区三区不卡| 亚洲综合网站在线观看| 国产一区二区主播在线| 在线观看一区二区视频| 国产日韩av一区| 日韩精品色哟哟| 91在线视频免费观看| 精品少妇一区二区三区免费观看 | 久久中文字幕电影| 一区二区三区**美女毛片| 国模一区二区三区白浆| 欧美亚洲禁片免费| 欧美经典一区二区三区| 蜜桃视频在线观看一区二区| 91视视频在线观看入口直接观看www | 亚洲欧洲性图库| 久久99久久精品欧美| 欧美色图片你懂的| 中文字幕av不卡| 国产一区二区在线观看免费| 51午夜精品国产| 亚洲一区二三区| 97国产精品videossex| 国产三区在线成人av| 强制捆绑调教一区二区| 色94色欧美sute亚洲线路一久 | 亚洲国产成人午夜在线一区| 久久99精品国产麻豆婷婷洗澡| 欧美视频一区在线观看| 亚洲三级在线看| 成人avav影音| 国产精品丝袜久久久久久app| 国产一区二区三区观看| 欧美一区午夜视频在线观看| 亚洲一区二区三区中文字幕 | 欧美视频一区二区三区| 亚洲欧洲精品成人久久奇米网| 国产一区在线精品| 精品久久久久久最新网址| 日韩福利视频网| 91精品国产综合久久久久久久| 亚洲国产美国国产综合一区二区| 在线视频一区二区免费| 亚洲精品国产视频| 欧洲精品一区二区| 亚洲在线视频网站| 欧美日韩三级一区| 日本欧美肥老太交大片| 欧美xingq一区二区| 国产一区二区三区免费| 国产欧美久久久精品影院| 成人高清在线视频| 中文字幕日韩欧美一区二区三区| 99re这里都是精品| 一区二区欧美视频| 欧美三级视频在线播放| 日本中文在线一区| 精品国精品国产| 成人理论电影网| 亚洲欧美电影一区二区| 欧美日韩一区二区三区四区| 日本三级亚洲精品| www国产成人| 成人激情免费网站| 日韩理论片网站| 欧美日本视频在线| 麻豆精品久久精品色综合| 久久精品男人的天堂| av不卡一区二区三区| 亚洲综合av网| 欧美成人猛片aaaaaaa| 成人一区二区三区视频在线观看| 亚洲区小说区图片区qvod| 欧美老肥妇做.爰bbww| 久久91精品久久久久久秒播| 国产精品视频麻豆|