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

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

?? ddr1_controller.vhd

?? The xapp851.zip archive includes the following subdirectories. The specific contents of each subdi
?? VHD
?? 第 1 頁 / 共 3 頁
字號:
 if(clk0'event and clk0 = '1') then
   if(rst = '1') then
	ctrl_Wdf_RdEn_r1 <= '0';
   else
	ctrl_Wdf_RdEn_r1 <= ctrl_Wdf_RdEn_r;
   end if;
 end if;
end process;

ctrl_Wdf_RdEn <= ctrl_Wdf_RdEn_r1 when (REGISTERED_VALUE = '1') else
		 ctrl_Wdf_RdEn_r;

process (clk0)
begin
 if(clk0'event and clk0 = '1') then
   if(rst = '1') then
      state <= IDLE;
  else
     state <= next_state;
  end if;
 end if;
end process;

--Main control state machine
process (ACT_r, LMR_PRE_REF_ACT_cmd_r, LMR_r, RD
	 , RD_r, REF_r, WR, WR_r, auto_ref
	 , conflict_detect, conflict_detect_r
	 , conflict_resolved_r, idle_cnt, mrd_count, ras_count, rcd_count
	 , rd_to_wr_count, read_burst_cnt, rfc_count, rp_count
	 , rtp_count, state, wr_to_rd_count, wrburst_cnt
	 , wtp_count,burst_cnt, af_empty_r)
begin

   next_state <= state;
   case state is
	when IDLE =>
	if ((conflict_detect_r = '1' or LMR_PRE_REF_ACT_cmd_r = '1' or auto_ref = '1') and ras_count = "0000") then
	   next_state <= PRECHARGE;
	elsif ((WR_r= '1'  or RD_r= '1') and (ras_count = "0000")) then
	   next_state <= ACTIVE;
	end if;

        when LOAD_MODE_REG_ST  => next_state <= MODE_REGISTER_WAIT;

	when MODE_REGISTER_WAIT =>
        if (mrd_count = '0') then
          next_state <= IDLE;
        else
          next_state <= MODE_REGISTER_WAIT;
        end if;

	when PRECHARGE  => next_state <= PRECHARGE_WAIT;


	when PRECHARGE_WAIT =>
        if (rp_count = "000") then
           if ((auto_ref or REF_r) = '1') then
              next_state <= AUTO_REFRESH;
	   elsif (LMR_r = '1') then
              next_state <= LOAD_MODE_REG_ST;
	   elsif ((conflict_detect_r or ACT_r) = '1') then
              next_state <= ACTIVE;
           else
              next_state <= IDLE;
           end if;
        else
           next_state <= PRECHARGE_WAIT;
        end if;

	when AUTO_REFRESH => next_state <= AUTO_REFRESH_WAIT;

	when AUTO_REFRESH_WAIT =>
        if ( (rfc_count = "00001") and (conflict_detect_r = '1') ) then
           next_state <= ACTIVE;
        elsif (rfc_count = "00001") then
           next_state <= IDLE;
        else
           next_state <= AUTO_REFRESH_WAIT;
        end if;

	when ACTIVE  => next_state <= ACTIVE_WAIT;


	when ACTIVE_WAIT  =>
        if (rcd_count = "000") then
	   if(WR = '1') then
             next_state <= FIRST_WRITE;
           elsif (RD = '1') then
             next_state <= FIRST_READ;
           else
             next_state <= IDLE;
	   end if;
	else
	  next_state <= ACTIVE_WAIT;
	end if;

	when FIRST_WRITE  =>
	      if((((conflict_detect = '1') and (conflict_resolved_r ='0')) or (auto_ref = '1')) or RD = '1') then
		 next_state <= WRITE_WAIT;
	      elsif((burst_cnt = "001") and (WR = '1')) then
		  next_state <= BURST_WRITE;
	      else
		  next_state <= WRITE_WAIT;
	      end if;

	when BURST_WRITE =>
	      if((((conflict_detect = '1') and (conflict_resolved_r = '0')) or (auto_ref = '1')) or (RD = '1')) then
		 next_state <= WRITE_WAIT;
	      elsif((burst_cnt = "001") and (WR = '1')) then
		  next_state <= BURST_WRITE;
	      else
		  next_state <= WRITE_WAIT;
	      end if;

	when WRITE_WAIT =>
        if (((conflict_detect = '1') and (conflict_resolved_r = '0')) or (auto_ref = '1')) then
	   if ((wtp_count = "0000") and (ras_count = "0000")) then
             next_state <= PRECHARGE;
           else
             next_state <= WRITE_WAIT;
	   end if;
        elsif (RD = '1') then
           next_state <= WRITE_READ;
        elsif ((WR ='1') and (wrburst_cnt = "010")) then
           next_state <= BURST_WRITE;
        elsif (idle_cnt = "0000") then
           next_state <= PRECHARGE;
	else
           next_state <= WRITE_WAIT;
	end if;

	when WRITE_READ =>
        if (wr_to_rd_count = "0000") then
           next_state <= FIRST_READ;
        else
           next_state <= WRITE_READ;
        end if;

	when FIRST_READ   =>
	      if((((conflict_detect = '1') and (conflict_resolved_r = '0')) or (auto_ref = '1')) or (WR = '1')) then
		 next_state <= READ_WAIT;
	      elsif((burst_cnt = "001") and (RD = '1')) then
		  next_state <= BURST_READ;
	      else
		  next_state <= READ_WAIT;
	      end if;

	when BURST_READ  =>
	      if((((conflict_detect = '1') and (conflict_resolved_r = '0'))or (auto_ref = '1')) or (WR = '1')) then
		 next_state <= READ_WAIT;
	      elsif((burst_cnt = "001") and (RD = '1')) then
		  next_state <= BURST_READ;
	      else
		  next_state <= READ_WAIT;
	      end if;

	when READ_WAIT  =>
        if (((conflict_detect = '1') and (conflict_resolved_r = '0')) or (auto_ref = '1')) then
           if(rtp_count = "0000" and ras_count = "0000") then
             next_state <= PRECHARGE;
           else
             next_state <= READ_WAIT;
	   end if;
        elsif (WR = '1') then
           next_state <= READ_WRITE;
        elsif ((RD = '1') and (read_burst_cnt <= "010")) then
	   if(af_empty_r = '1') then
	     next_state <= FIRST_READ;
	   else
             next_state <= BURST_READ;
	   end if;
        elsif (idle_cnt = "0000") then
           next_state <= PRECHARGE;
        else
           next_state <= READ_WAIT;
        end if;


	when READ_WRITE  =>
        if (rd_to_wr_count = "0000") then
           next_state <= FIRST_WRITE;
        else
           next_state <= READ_WRITE;
        end if;

	when others => next_state <= IDLE;

   end case;
end process;

--register command outputs
process (clk0)
begin
 if(clk0'event and clk0 = '1') then
    if(rst = '1') then
      state_r2 <= "00000";
      state_r3 <= "00000";
   else
      state_r2 <= state;
      state_r3 <= state_r2;
  end if;
 end if;
end process;

-- commands to the memory
process (clk0)
begin
 if(clk0'event and clk0 = '1') then
    if(rst = '1') then
      ddr_ras_r <= '1';
   elsif ((state = LOAD_MODE_REG_ST) or (state = PRECHARGE) or (state = ACTIVE) or (state = AUTO_REFRESH)) then
      ddr_ras_r <= '0';
   else ddr_ras_r <= '1';
  end if;
 end if;
end process;

-- commands to the memory
process (clk0)
begin
 if(clk0'event and clk0 = '1') then
    if(rst = '1') then
      ddr_cas_r <= '1';
   elsif ((state = LOAD_MODE_REG_ST)  or (read_write_state = '1') or (state = AUTO_REFRESH)) then
      ddr_cas_r <= '0';
   elsif ((state = ACTIVE_WAIT)) then
      ddr_cas_r <= '1';
   else
      ddr_cas_r <= '1';
  end if;
 end if;
end process;

-- commands to the memory
process (clk0)
begin
 if(clk0'event and clk0 = '1') then
    if(rst = '1') then
      ddr_we_r <= '1';
   elsif ((state = LOAD_MODE_REG_ST) or (state = PRECHARGE) or (write_state = '1')) then
      ddr_we_r <= '0';
   else ddr_we_r <= '1';
  end if;
 end if;
end process;

--register commands to the memory
process (clk0)
begin
 if(clk0'event and clk0 = '1') then
    if(rst = '1') then
      ddr_ras_r2 <= '1';
      ddr_cas_r2 <= '1';
      ddr_we_r2 <= '1';
   else
      ddr_ras_r2  <= ddr_ras_r;
      ddr_cas_r2  <= ddr_cas_r;
      ddr_we_r2   <= ddr_we_r;
  end if;
 end if;
end process;

--register commands to the memory
process (clk0)
begin
 if(clk0'event and clk0 = '1') then
    if (rst = '1') then
	ddr_ras_r3 <= '1';
	ddr_cas_r3 <= '1';
	ddr_we_r3  <= '1';
   else
	ddr_ras_r3  <= ddr_ras_r2;
	ddr_cas_r3  <= ddr_cas_r2;
	ddr_we_r3   <= ddr_we_r2;
  end if;
 end if;
end process;

process (clk0)
begin
 if(clk0'event and clk0 = '1') then
   if(rst = '1') then
       row_addr_r(row_address-1 downto 0) <= (others => '0');
  else
       row_addr_r(row_address-1 downto 0) <= af_addr((row_address + col_ap_width)-1 downto col_ap_width);
  end if;
 end if;
end process;

-- chip enable generation logic
process(clk0)
 begin
  if (clk0='1' and clk0'event) then
      if (rst = '1')  then
          ddr_cs_r((no_of_cs-1) downto 0) <=  (others => '0');
      else
          if (af_addr_r((chip_address + bank_address +row_address + (col_ap_width-1)) downto (bank_address + row_address + col_ap_width)) =
	      cs_h0((chip_address - 1) downto 0)) then
                       ddr_cs_r((no_of_cs-1) downto  0) <=  cs_hE((no_of_cs-1) downto  0);
          elsif (af_addr_r((chip_address + bank_address + row_address + (col_ap_width-1)) downto (bank_address +row_address + col_ap_width)) =
		 cs_h1((chip_address - 1) downto 0))   then
                     ddr_cs_r((no_of_cs-1) downto 0) <=  cs_hD((no_of_cs-1) downto  0);
          elsif (af_addr_r((chip_address + bank_address +row_address + (col_ap_width-1)) downto (bank_address + row_address + col_ap_width)) =
		  cs_h2((chip_address - 1) downto 0)) then
                     ddr_cs_r((no_of_cs-1) downto 0) <= cs_hB((no_of_cs-1) downto  0);
         elsif (af_addr_r((chip_address + bank_address +row_address + (col_ap_width-1)) downto (bank_address + row_address + col_ap_width)) =
		    cs_h3((chip_address - 1) downto 0)) then
		         ddr_cs_r((no_of_cs-1) downto 0) <=  cs_h7((no_of_cs-1) downto  0);
         else
                     ddr_cs_r((no_of_cs-1) downto 0) <=  cs_hF((no_of_cs-1) downto  0);
         end if;
      end if;
  end if;
end process;

process (clk0)
begin
 if(clk0'event and clk0 = '1') then
    if(rst = '1') then
      ddr_address_r1 <= (others => '0');
   elsif ((state_r2 = ACTIVE)) then
      ddr_address_r1 <= row_addr_r;
   elsif (read_write_state_r2 = '1') then
      ddr_address_r1 <= af_addr_r(row_address-1 downto 0) and add_const4((row_address-1) downto 0); -- Auto Precharge option is disabled
   elsif (state_r2 = PRECHARGE) then
      if(PRE_r = '1') then
        ddr_address_r1 <= af_addr_r(row_address-1 downto 0);
      else
        ddr_address_r1 <= add_const1((row_address-1) downto 0);--X"0400";
      end if;
   elsif (state_r2 = LOAD_MODE_REG_ST)then
      ddr_address_r1 <= af_addr_r(row_address-1 downto 0);
   else
      ddr_address_r1 <= add_const3((row_address-1) downto 0);--X"0000";
  end if;
 end if;
end process;

process (clk0)
begin
 if(clk0'event and clk0 = '1') then
    if(rst = '1') then
      ddr_ba_r1(bank_address-1 downto 0) <= (others => '0');
   elsif ((state_r2 = ACTIVE) or (state_r2 = LOAD_MODE_REG_ST) or ((state_r2 = PRECHARGE) and PRE_r = '1')) then
      ddr_ba_r1(bank_address-1 downto 0) <= af_addr((bank_address+row_address + col_ap_width)-1 downto (col_ap_width + row_address));
   else
      ddr_ba_r1(bank_address-1 downto 0) <= ddr_ba_r1(bank_address-1 downto 0);
  end if;
 end if;
end process;

process (clk0)
begin
 if(clk0'event and clk0 = '1') then
    if(rst = '1') then
      ddr_cs_r1 <= (others => '0');
    elsif (state_r3 = auto_refresh ) then
      ddr_cs_r1 <= (others => '0');
    elsif ((state_r3 = active ) or (state_r3 = load_mode_reg_st) or (state_r3 = precharge_wait )) then
      ddr_cs_r1 <= ddr_cs_r;
    else
      ddr_cs_r1 <= ddr_cs_r1;
    end if;
  end if;
end process;

process (clk0)
begin
 if(clk0'event and clk0 = '1') then
    if(rst = '1') then
      conflict_resolved_r <= '0';
   else
      if ((state = PRECHARGE_WAIT)  and (conflict_detect_r= '1')) then
        conflict_resolved_r  <= '1';
      elsif(af_rden = '1') then
        conflict_resolved_r  <= '0';
      end if;
  end if;
 end if;
end process;

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

 ctrl_ddr_address(row_address-1 downto 0)  <= ddr_address_r1(row_address-1 downto 0);
 ctrl_ddr_ba (bank_address-1 downto 0)     <= ddr_ba_r1(bank_address-1 downto 0);
 ctrl_ddr_ras_L <= ddr_ras_r2;
 ctrl_ddr_cas_L <= ddr_cas_r2;
 ctrl_ddr_we_L  <= ddr_we_r2;
 ctrl_ddr_cs_L <= (others => '0');
 ctrl_ddr_cke  <= ddr_cke_r;

end arch;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美视频一区二区三区四区| 国产乱人伦精品一区二区在线观看| 成人夜色视频网站在线观看| 精品处破学生在线二十三| 日韩av一区二区在线影视| 秋霞成人午夜伦在线观看| 欧美tickling网站挠脚心| 裸体在线国模精品偷拍| 欧美色偷偷大香| 无吗不卡中文字幕| 欧美日本免费一区二区三区| 亚洲网友自拍偷拍| 欧美电影一区二区| 日韩精品国产欧美| 欧美成人激情免费网| 韩国毛片一区二区三区| 国产清纯白嫩初高生在线观看91 | 欧美一区二区二区| 免费在线视频一区| 精品久久国产老人久久综合| 国产精品亚洲第一区在线暖暖韩国| 日韩欧美一区在线| 久久福利资源站| 国产网红主播福利一区二区| 国产成人一级电影| 亚洲婷婷国产精品电影人久久| 99久久精品免费观看| 亚洲图片欧美一区| 日韩免费性生活视频播放| 国产成人综合在线观看| 亚洲女与黑人做爰| 91精品在线麻豆| 国产九九视频一区二区三区| 国产精品久久久久久久岛一牛影视| 色av成人天堂桃色av| 青青青伊人色综合久久| 久久久一区二区三区| 色婷婷久久99综合精品jk白丝| 日韩中文字幕1| 国产亚洲精品中文字幕| 色94色欧美sute亚洲线路一久 | 亚洲色图制服丝袜| 欧美日韩一卡二卡三卡 | 成人午夜短视频| 亚洲h在线观看| 2023国产精品| 91成人免费在线| 国产真实乱子伦精品视频| 亚洲人xxxx| 日韩欧美色电影| 一本大道久久a久久精二百| 久久精品久久99精品久久| 自拍偷拍亚洲欧美日韩| 日韩小视频在线观看专区| av成人老司机| 久久精品国产亚洲一区二区三区| 中文字幕亚洲成人| 精品少妇一区二区三区日产乱码| 99re在线精品| 国产剧情一区二区三区| 五月天国产精品| 专区另类欧美日韩| 久久―日本道色综合久久| 欧美日韩国产免费一区二区 | 亚洲情趣在线观看| 久久综合色之久久综合| 欧美三级午夜理伦三级中视频| 国产制服丝袜一区| 日本欧美大码aⅴ在线播放| 亚洲视频在线观看一区| 国产欧美日韩另类一区| 日韩美一区二区三区| 欧美日韩另类一区| 色综合久久久久综合99| 成人网在线播放| 免费看精品久久片| 亚洲v日本v欧美v久久精品| 亚洲欧洲一区二区三区| 欧美激情在线一区二区| 精品国产污网站| 日韩三级视频中文字幕| 欧美精品第一页| 欧美日韩在线直播| 欧美午夜精品免费| 一本一道波多野结衣一区二区| 成人午夜视频福利| 粉嫩13p一区二区三区| 国产麻豆一精品一av一免费| 日本女优在线视频一区二区| 午夜电影一区二区三区| 亚洲图片欧美色图| 午夜精品视频一区| 亚洲成人激情综合网| 亚洲综合丁香婷婷六月香| 夜夜嗨av一区二区三区网页| 亚洲激情五月婷婷| 亚洲欧美日韩精品久久久久| 中文字幕视频一区| 亚洲另类在线制服丝袜| 亚洲色图制服丝袜| 亚洲一区二区欧美| 性久久久久久久| 日本不卡不码高清免费观看| 日本女人一区二区三区| 麻豆精品一区二区三区| 国产一区二区网址| 国产成人午夜高潮毛片| 99精品国产一区二区三区不卡| 99re热视频精品| 欧美视频精品在线| 日韩视频一区二区三区| 久久婷婷国产综合国色天香| 国产精品婷婷午夜在线观看| 亚洲欧洲韩国日本视频| 一区二区三区 在线观看视频| 亚洲一区在线视频观看| 日本aⅴ免费视频一区二区三区 | 91麻豆精品国产自产在线观看一区| 欧美三级视频在线观看| 色婷婷综合久久久久中文一区二区 | 国产麻豆精品视频| 99精品久久免费看蜜臀剧情介绍| 色乱码一区二区三区88| 欧美猛男男办公室激情| 久久久一区二区| 亚洲精选免费视频| 蜜桃一区二区三区在线| 成人av午夜影院| 在线观看日韩电影| 精品国产露脸精彩对白 | 91麻豆免费看片| 精品国产乱码久久久久久闺蜜 | 欧美视频一区在线| 欧美xxxxxxxx| 亚洲免费观看在线视频| 蜜桃久久久久久久| 99久久免费视频.com| 制服丝袜在线91| 国产精品久久久久久福利一牛影视 | 成人免费视频播放| 91精品国产综合久久蜜臀| 亚洲国产精品高清| 免费成人美女在线观看.| 成人免费看片app下载| 欧美一区二区三区在线观看| 国产精品无人区| 五月激情综合色| 国产乱色国产精品免费视频| 在线观看日韩国产| 国产午夜精品在线观看| 亚洲一区二区不卡免费| 精品亚洲成av人在线观看| 日本乱码高清不卡字幕| 国产色婷婷亚洲99精品小说| 亚洲高清视频在线| 99久久婷婷国产综合精品电影 | 亚洲欧美偷拍另类a∨色屁股| 婷婷久久综合九色国产成人 | 青青草国产精品亚洲专区无| 91玉足脚交白嫩脚丫在线播放| 精品国产露脸精彩对白 | 成人黄色国产精品网站大全在线免费观看| 欧美吞精做爰啪啪高潮| 国产精品国产三级国产有无不卡| 九九国产精品视频| 日韩视频一区二区在线观看| 亚洲一区二区成人在线观看| 色综合天天综合网天天狠天天| 久久日韩精品一区二区五区| 日韩1区2区3区| 欧美人狂配大交3d怪物一区| 中文字幕一区二区三| 国产在线一区观看| 日韩免费一区二区| 久久se这里有精品| 欧美大片拔萝卜| 免费成人在线观看视频| 91精品国产色综合久久不卡电影| 亚洲妇女屁股眼交7| 成人精品一区二区三区四区 | 丝袜诱惑制服诱惑色一区在线观看| eeuss鲁一区二区三区| 久久久久久久国产精品影院| 中文字幕亚洲一区二区va在线| 99在线精品观看| 亚洲综合色成人| 欧美一区二区三区思思人| 久久国产精品第一页| 国产调教视频一区| 色综合天天综合狠狠| 日韩中文字幕亚洲一区二区va在线| 日韩一区二区视频| 豆国产96在线|亚洲| 亚洲制服丝袜一区| 日韩精品一区二区三区四区视频| 国产一区二区三区四区在线观看| 国产精品国产三级国产aⅴ无密码| 91久久精品一区二区三| 麻豆久久一区二区| 国产精品久久久久久久久快鸭|