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

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

?? atahost_pio_controller.vhd

?? PowerFull ATA Host Controller
?? VHD
字號:
-------------------------------------------------------------------------                                                             --------  OpenCores IDE Controller                                   --------  ATA/ATAPI-5 PIO controller with write PingPong             --------                                                             --------  Author: Richard Herveille                                  --------          richard@asics.ws                                   --------          www.asics.ws                                       --------                                                             -----------------------------------------------------------------------------                                                             -------- Copyright (C) 2001, 2002 Richard Herveille                  --------                          richard@asics.ws                   --------                                                             -------- This source file may be used and distributed without        -------- restriction provided that this copyright statement is not   -------- removed from the file and that any derivative work contains -------- the original copyright notice and the associated disclaimer.--------                                                             --------     THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY     -------- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED   -------- TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS   -------- FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR      -------- OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,         -------- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES    -------- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE   -------- GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR        -------- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF  -------- LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT  -------- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT  -------- OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE         -------- POSSIBILITY OF SUCH DAMAGE.                                 --------                                                             --------------------------------------------------------------------------- rev.: 1.0 march 8th, 2001. Initial release----  CVS Log----  $Id: atahost_pio_controller.vhd,v 1.1 2002/02/18 14:32:12 rherveille Exp $----  $Date: 2002/02/18 14:32:12 $--  $Revision: 1.1 $--  $Author: rherveille $--  $Locker:  $--  $State: Exp $---- Change History:--               $Log: atahost_pio_controller.vhd,v $--               Revision 1.1  2002/02/18 14:32:12  rherveille--               renamed all files to 'atahost_***.vhd'--               broke-up 'counter.vhd' into 'ud_cnt.vhd' and 'ro_cnt.vhd'--               changed resD input to generic RESD in ud_cnt.vhd--               changed ID input to generic ID in ro_cnt.vhd--               changed core to reflect changes in ro_cnt.vhd--               removed references to 'count' library--               changed IO names--               added disclaimer--               added CVS log--               moved registers and wishbone signals into 'atahost_wb_slave.vhd'----library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;entity atahost_pio_controller is	generic(		TWIDTH : natural := 8;                        -- counter width		-- PIO mode 0 settings (@100MHz clock)		PIO_mode0_T1 : natural := 6;                  -- 70ns		PIO_mode0_T2 : natural := 28;                 -- 290ns		PIO_mode0_T4 : natural := 2;                  -- 30ns		PIO_mode0_Teoc : natural := 23                -- 240ns ==> T0 - T1 - T2 = 600 - 70 - 290 = 240	);	port(		clk    : in std_logic;  		                 	  -- master clock in		nReset	: in std_logic := '1';                 -- asynchronous active low reset		rst    : in std_logic := '0';                 -- synchronous active high reset				-- control / registers		IDEctrl_IDEen,		IDEctrl_ppen,		IDEctrl_FATR0,		IDEctrl_FATR1 : in std_logic;		-- PIO registers		cmdport_T1,		cmdport_T2,		cmdport_T4,		cmdport_Teoc : in unsigned(7 downto 0);		cmdport_IORDYen : in std_logic;               -- PIO command port / non-fast timing		dport0_T1,		dport0_T2,		dport0_T4,		dport0_Teoc : in unsigned(7 downto 0);		dport0_IORDYen : in std_logic;                -- PIO mode data-port / fast timing device 0		dport1_T1,		dport1_T2,		dport1_T4,		dport1_Teoc : in unsigned(7 downto 0);		dport1_IORDYen : in std_logic;                -- PIO mode data-port / fast timing device 1		sel : in  std_logic;                          -- PIO controller selected		ack : out std_logic;                          -- PIO controller acknowledge		a   : in  unsigned(3 downto 0);               -- lower address bits		we  : in  std_logic;                          -- write enable input		d   : in  std_logic_vector(15 downto 0);		q   : out std_logic_vector(15 downto 0);		PIOreq : out std_logic;                       -- PIO transfer request		PPFull : out std_logic;                       -- PIO Write PingPong Full		go     : in std_logic;                        -- start PIO transfer		done   : buffer std_logic;                    -- done with PIO transfer		PIOa : out unsigned(3 downto 0);              -- PIO address, address lines towards ATA devices		PIOd : out std_logic_vector(15 downto 0);     -- PIO data, data towards ATA devices		SelDev : buffer std_logic;                    -- Selected Device, Dev-bit in ATA Device/Head register		DDi	 : in std_logic_vector(15 downto 0);		DDoe : buffer std_logic;		DIOR	 : buffer std_logic;		DIOW	 : buffer std_logic;		IORDY	: in std_logic	);end entity atahost_pio_controller;architecture structural of atahost_pio_controller is	--	-- component declarations	--	component atahost_pio_actrl is	generic(		TWIDTH : natural := 8;                     -- counter width		-- PIO mode 0 settings (@100MHz clock)		PIO_mode0_T1 : natural := 6;               -- 70ns		PIO_mode0_T2 : natural := 28;              -- 290ns		PIO_mode0_T4 : natural := 2;               -- 30ns		PIO_mode0_Teoc : natural := 23             -- 240ns ==> T0 - T1 - T2 = 600 - 70 - 290 = 240	);	port(		clk    : in std_logic;                     -- master clock		nReset : in std_logic;                     -- asynchronous active low reset		rst    : in std_logic;                     -- synchronous active high reset		IDEctrl_FATR0,		IDEctrl_FATR1 : in std_logic;		cmdport_T1,		cmdport_T2,		cmdport_T4,		cmdport_Teoc : in unsigned(7 downto 0);		cmdport_IORDYen : in std_logic;            -- PIO command port / non-fast timing		dport0_T1,		dport0_T2,		dport0_T4,		dport0_Teoc : in unsigned(7 downto 0);		dport0_IORDYen : in std_logic;             -- PIO mode data-port / fast timing device 0		dport1_T1,		dport1_T2,		dport1_T4,		dport1_Teoc : in unsigned(7 downto 0);		dport1_IORDYen : in std_logic;             -- PIO mode data-port / fast timing device 1		SelDev : in std_logic;                     -- Selected device			go   : in  std_logic;                      -- Start transfer sequence		done : out std_logic;                      -- Transfer sequence done		dir  : in  std_logic;                      -- Transfer direction '1'=write, '0'=read		a    : in  unsigned(3 downto 0);           -- PIO transfer address		q    : out std_logic_vector(15 downto 0);  -- Data read from ATA devices		DDi : in std_logic_vector(15 downto 0);    -- Data from ATA DD bus		oe  : buffer std_logic;                    -- DDbus output-enable signal		DIOR,		DIOW  : buffer std_logic;		IORDY : in std_logic 	);	end component atahost_pio_actrl;	--	-- signals	--	-- PIO pingpong signals	signal pp_d : std_logic_vector(15 downto 0);	signal pp_a : unsigned(3 downto 0);	signal pp_we : std_logic;	signal idone : std_logic;begin	--	-- generate selected device	--	gen_seldev: process(clk, pp_a)		variable Asel : std_logic; -- address selected	begin		Asel := not pp_a(3) and pp_a(2) and pp_a(1) and not pp_a(0); -- header/device register		if (clk'event and clk = '1') then			if ( (idone = '1') and (Asel = '1') and (pp_we = '1') ) then				SelDev <= pp_d(4);			end if;		end if;	end process gen_seldev;	--	-- generate PIO write pingpong system	--	gen_pingpong: block		signal ping_d, pong_d : std_logic_vector(15 downto 0);		signal ping_a, pong_a : unsigned(3 downto 0);		signal ping_we, pong_we : std_logic;		signal ping_valid, pong_valid : std_logic;		signal dping_valid, dpong_valid : std_logic;		signal wpp, rpp : std_logic;		signal dsel, sel_strb : std_logic;		signal iack : std_logic;	begin		-- generate PIO acknowledge		gen_ack: process(clk, ping_valid, dping_valid, pong_valid, dpong_valid, we)			variable ping_re, ping_fe, pong_re, pong_fe : std_logic;		begin			-- detect rising edge of ping_valid and pong_valid			ping_re := ping_valid and not dping_valid and we;			pong_re := pong_valid and not dpong_valid and we;			-- detect falling edge of ping_valid and pong_valid			ping_fe := not ping_valid and dping_valid;			pong_fe := not pong_valid and dpong_valid;			if (clk'event and clk = '1') then				if ((pp_we = '1') and (IDEctrl_ppen = '1')) then -- write sequence					if (wpp = '1') then						iack <= ping_re;					else						iack <= pong_re;					end if;				else                                           -- read sequence					if (rpp = '1') then						iack <= ping_fe;					else						iack <= pong_fe;					end if;				end if;			end if;		end process gen_ack;		ack <= (iack or not IDEctrl_IDEen) and sel; -- acknowledge access when not enabled (discard access)		-- generate select-strobe, hold sel_strb until pingpong system ready for new data		gen_sel_strb: process(clk, nReset)		begin			if (nReset = '0') then				dsel <= '0';			elsif (clk'event and clk = '1') then				if (rst = '1') then					dsel <= '0';				else					dsel <= sel_strb or (dsel and sel);				end if;			end if;		end process gen_sel_strb;		sel_strb <= sel and not dsel and IDEctrl_IDEen and ((wpp and not ping_valid) or (not wpp and not pong_valid));		-- generate pingpong control		gen_pp : process(clk, nReset)		begin			if (nReset = '0') then				wpp <= '0';				rpp <= '0';				ping_valid <= '0';				pong_valid <= '0';				dping_valid <= '0';				dpong_valid <= '0';			elsif (clk'event and clk = '1') then				if (rst = '1') then					wpp <= '0';					rpp <= '0';					ping_valid <= '0';					pong_valid <= '0';					dping_valid <= '0';					dpong_valid <= '0';				else					wpp <= (wpp xor (iack and we)) and IDEctrl_ppen;					rpp <= (rpp xor (idone and pp_we)) and IDEctrl_ppen;					ping_valid <= ((    wpp and sel_strb) or ping_valid) and not (    rpp and idone);					pong_valid <= ((not wpp and sel_strb) or pong_valid) and not (not rpp and idone);					dping_valid <= ping_valid;					dpong_valid <= pong_valid;				end if;			end if;		end process gen_pp;				-- generate pingpong full signal		PPFull <= (ping_valid and pong_valid) when (IDEctrl_ppen = '1') else pong_valid;		-- fill ping/pong registers		fill_pp: process(clk)		begin			if (clk'event and clk = '1') then				if (sel = '1') then					if (wpp = '1') then						if (ping_valid = '0') then							ping_d <= d;							ping_a <= a;							ping_we <= we;						end if;					else						if (pong_valid = '0') then							pong_d <= d;							pong_a <= a;							pong_we <= we;						end if;					end if;				end if;			end if;		end process fill_pp;		-- multiplex pingpong data to pp_d, pp_a, pp_we		pp_d <= ping_d when (rpp = '1') else pong_d;		pp_a <= ping_a when (rpp = '1') else pong_a;		pp_we <= ping_we when (rpp = '1') else pong_we;		-- generate PIOreq		PIOreq <= (ping_valid and not idone) when (rpp = '1') else (pong_valid and not idone);	end block gen_pingpong;	--	-- Hookup PIO access controller	--	PIO_access_control: atahost_pio_actrl		generic map(			TWIDTH => TWIDTH,			PIO_mode0_T1 => PIO_mode0_T1,			PIO_mode0_T2 => PIO_mode0_T2,			PIO_mode0_T4 => PIO_mode0_T4,			PIO_mode0_Teoc => PIO_mode0_Teoc		)		port map(			clk    => clk,			nReset => nReset,			rst    => rst,			IDEctrl_FATR0 => IDEctrl_FATR0,			IDEctrl_FATR1 => IDEctrl_FATR1, 			cmdport_T1   => cmdport_T1,			cmdport_T2   => cmdport_T2,			cmdport_T4   => cmdport_T4,			cmdport_Teoc => cmdport_Teoc,			cmdport_IORDYen => cmdport_IORDYen,			dport0_T1   => dport0_T1,			dport0_T2   => dport0_T2,			dport0_T4   => dport0_T4,			dport0_Teoc => dport0_Teoc,			dport0_IORDYen => dport0_IORDYen,			dport1_T1   => dport1_T1,			dport1_T2   => dport1_T2,			dport1_T4   => dport1_T4,			dport1_Teoc => dport1_Teoc,			dport1_IORDYen => dport1_IORDYen,			SelDev => SelDev,			go     => go,			done   => idone,			dir    => pp_we,			a      => pp_a,			q      => Q,			DDi    => DDi,			oe     => DDoe,			DIOR   => dior,			DIOW   => diow,			IORDY  => IORDY		);	--	-- assign outputs	--	PIOa <= pp_a;	PIOd <= pp_d;	Done <= idone;end architecture structural;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲第一久久影院| 欧美久久免费观看| 亚洲精品一区二区三区影院| 日韩电影免费在线看| 国产高清在线精品| 欧美一区二区三区在线观看| 亚洲午夜精品在线| 欧洲精品中文字幕| 亚洲成人精品一区二区| 欧美亚洲综合色| 亚洲电影一级黄| 欧美日本视频在线| 强制捆绑调教一区二区| 欧美夫妻性生活| 日韩高清在线观看| 6080日韩午夜伦伦午夜伦| 日韩高清在线观看| 26uuu精品一区二区| 九九九久久久精品| 欧美激情一区二区三区不卡 | 麻豆精品一区二区三区| 51精品国自产在线| 精品一区二区三区在线观看国产 | 自拍偷拍亚洲激情| 久久精品99国产精品| 欧美卡1卡2卡| 麻豆精品一区二区三区| 久久久久久免费毛片精品| 国产成人免费视频| 成人免费一区二区三区在线观看| 99久久精品免费看国产| 亚洲国产精品一区二区久久| 日韩一区二区三区电影| 国内精品嫩模私拍在线| 久久久高清一区二区三区| av成人动漫在线观看| 亚洲午夜免费电影| 日韩欧美精品在线视频| 成人小视频在线| 亚洲精品乱码久久久久久| 9191成人精品久久| 福利电影一区二区| 尤物在线观看一区| 日韩三级在线观看| 国产综合久久久久久久久久久久| 国产网红主播福利一区二区| 91电影在线观看| 黑人巨大精品欧美一区| 自拍偷在线精品自拍偷无码专区| 欧美电影一区二区三区| 久久99久久久久| 亚洲精品国久久99热| 欧美变态凌虐bdsm| 91国产丝袜在线播放| 久久99久久精品| 亚洲蜜臀av乱码久久精品| 精品成人私密视频| 色婷婷久久久综合中文字幕| 久久丁香综合五月国产三级网站| 亚洲欧美aⅴ...| 精品少妇一区二区三区免费观看| 91亚洲精品一区二区乱码| 久久国产精品99久久久久久老狼| 国产精品久久久久久久久免费丝袜| 欧美日韩aaaaaa| 91丝袜美腿高跟国产极品老师 | 国产在线不卡一区| 中文字幕日本不卡| 欧美tk—视频vk| 欧美日韩中文另类| 91在线视频网址| 国产精品一区二区在线观看不卡| 国产伦精品一区二区三区免费迷 | 亚洲国产成人va在线观看天堂| 精品成人在线观看| 欧美精三区欧美精三区| 99re这里只有精品视频首页| 国产一区二区三区日韩| 亚洲.国产.中文慕字在线| 国产精品久久久久久亚洲毛片| 精品国产三级电影在线观看| 欧美乱熟臀69xxxxxx| 色综合久久六月婷婷中文字幕| 亚洲一二三区视频在线观看| 亚洲欧洲99久久| 中文在线一区二区| 久久日韩粉嫩一区二区三区| 日韩欧美国产综合一区| 91福利精品第一导航| 99这里只有久久精品视频| 成人午夜在线播放| 成人久久视频在线观看| 国产91精品精华液一区二区三区| 韩国女主播成人在线观看| 麻豆国产欧美日韩综合精品二区| 亚洲女人小视频在线观看| 中文字幕在线观看一区| 亚洲日本韩国一区| 亚洲男人的天堂一区二区| 中文字幕欧美国产| 国产精品美女久久久久aⅴ| 欧美国产日韩精品免费观看| 国产精品嫩草影院com| 中文字幕佐山爱一区二区免费| 国产亚洲欧美日韩在线一区| 国产日韩三级在线| 国产精品热久久久久夜色精品三区 | 久久午夜老司机| 欧美tickling网站挠脚心| 精品美女一区二区三区| 精品国产百合女同互慰| 久久久精品影视| 亚洲自拍偷拍网站| 国产在线播放一区| 色狠狠av一区二区三区| 精品久久一区二区三区| 亚洲欧美欧美一区二区三区| 蜜桃av一区二区三区| 94色蜜桃网一区二区三区| 日韩手机在线导航| **欧美大码日韩| 蜜桃视频在线观看一区| 97精品国产露脸对白| 日韩欧美国产综合| 亚洲国产视频一区二区| 国产69精品久久久久毛片| 欧美精三区欧美精三区| 国产精品国产a级| 蜜桃视频一区二区| 在线观看一区日韩| 国产精品毛片无遮挡高清| 日本女优在线视频一区二区| 不卡高清视频专区| 久久亚洲欧美国产精品乐播| 亚洲电影一区二区三区| av不卡一区二区三区| 久久久久久免费网| 美洲天堂一区二卡三卡四卡视频| 日本道精品一区二区三区| 久久婷婷色综合| 日韩高清在线观看| 在线观看欧美黄色| 亚洲日本免费电影| 成人黄页毛片网站| 国产午夜亚洲精品午夜鲁丝片| 日韩不卡免费视频| 欧美日韩国产区一| 一区二区三区在线免费观看| 岛国av在线一区| 久久理论电影网| 精品一区二区免费| 日韩午夜电影在线观看| 亚洲妇熟xx妇色黄| 在线观看中文字幕不卡| 亚洲欧美日韩电影| 色综合久久中文字幕| 中文字幕一区二区三区在线观看 | 日本大胆欧美人术艺术动态| 色av成人天堂桃色av| 中文字幕亚洲电影| 成人av电影在线播放| 国产欧美1区2区3区| 国产成人av福利| 久久精品人人爽人人爽| 国产成人午夜视频| 国产免费观看久久| 成人一区二区三区中文字幕| 2021国产精品久久精品| 国模一区二区三区白浆| 久久综合国产精品| 国产精品一线二线三线| 国产欧美一区二区精品婷婷| 国产精品一二三四| 亚洲国产成人自拍| av毛片久久久久**hd| 最新中文字幕一区二区三区| 9久草视频在线视频精品| 亚洲欧美在线观看| 色婷婷激情久久| 亚洲成人一二三| 日韩午夜激情免费电影| 国产一区二区中文字幕| 国产精品视频第一区| 91在线观看成人| 夜夜嗨av一区二区三区网页 | 日韩欧美的一区| 国产毛片精品视频| 国产精品人妖ts系列视频| 在线亚洲+欧美+日本专区| 亚洲国产一区二区三区| 精品欧美乱码久久久久久1区2区| 国产乱妇无码大片在线观看| 亚洲欧洲另类国产综合| 欧美日韩一区国产| 黄色小说综合网站| 国产精品短视频| 7777精品伊人久久久大香线蕉完整版 | 99久久精品99国产精品| 五月激情六月综合| 亚洲精品在线观|