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

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

?? jtag_logic.vhd

?? altera的usb下載線的制作資料
?? VHD
字號:
-------------------------------------------------------------------------------
-- Serial/Parallel converter, interfacing JTAG chain with FTDI FT245BM
-------------------------------------------------------------------------------
-- Copyright (C) 2005,2006 Kolja Waschk, ixo.de
-------------------------------------------------------------------------------
-- This code is part of usbjtag. usbjtag is free software; you can redistribute
-- it and/or modify it under the terms of the GNU General Public License as
-- published by the Free Software Foundation; either version 2 of the License,
-- or (at your option) any later version. usbjtag is distributed in the hope
-- that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
-- warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-- GNU General Public License for more details.  You should have received a
-- copy of the GNU General Public License along with this program in the file
-- COPYING; if not, write to the Free Software Foundation, Inc., 51 Franklin
-- St, Fifth Floor, Boston, MA  02110-1301  USA
-------------------------------------------------------------------------------

LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_unsigned.all;

ENTITY jtag_logic IS
	PORT
	(
		CLK : IN STD_LOGIC;        -- external 24/25 MHz oscillator
		nRXF : IN STD_LOGIC;       -- FT245BM nRXF
		nTXE : IN STD_LOGIC;       -- FT245BM nTXE
		B_TDO : IN STD_LOGIC;      -- JTAG input: TDO of last device in chain
		nRD : OUT STD_LOGIC;       -- FT245BM nRD
		WR : OUT STD_LOGIC;        -- FT245BM WR
		B_TCK : BUFFER STD_LOGIC;  -- JTAG output: TCK to chain
		B_TMS : BUFFER STD_LOGIC;  -- JTAG output: TMS to chain
		B_TDI : BUFFER STD_LOGIC;  -- JTAG output: to TDI of first device in chain
		D : INOUT STD_LOGIC_VECTOR(7 downto 0) -- FT245BM D[7..0]
	);
END jtag_logic;

ARCHITECTURE spec OF jtag_logic IS
	TYPE states IS
	(
		wait_for_nRXF_low,
		set_nRD_low,
		keep_nRD_low,
		latch_data_from_host,
		set_nRD_high,
		bits_set_pins_from_data,
		bytes_set_bitcount,
		bytes_get_tdo_set_tdi,
		bytes_clock_high_and_shift,
		bytes_keep_clock_high,
		bytes_clock_finish,
		wait_for_nTXE_low,
		set_WR_high,
		output_enable,
		set_WR_low,
		output_disable
	);
	
	SIGNAL carry: STD_LOGIC;
	SIGNAL do_output: STD_LOGIC;
	SIGNAL ioshifter: STD_LOGIC_VECTOR(7 DOWNTO 0);
	SIGNAL bitcount: STD_LOGIC_VECTOR(8 DOWNTO 0);
	SIGNAL state, next_state: states;
	
BEGIN
	-- sm: PROCESS(nRXF, nTXE, state, D, bitcount, ioshifter, do_output)
	sm: PROCESS(nRXF, nTXE, state, bitcount, ioshifter, do_output)

	BEGIN
		CASE state IS
		
			-- ============================ INPUT
		
			WHEN wait_for_nRXF_low =>
				IF nRXF='0' THEN
					next_state <= set_nRD_low;
				ELSE
					next_state <= wait_for_nRXF_low;
				END IF;
				
			WHEN set_nRD_low =>
				next_state <= keep_nRD_low;
			
			WHEN keep_nRD_low => 
				next_state <= latch_data_from_host;
				
			WHEN latch_data_from_host =>
				next_state <= set_nRD_high;
			
			WHEN set_nRD_high =>
				IF NOT (bitcount(8 DOWNTO 3) = "000000") THEN
					next_state <= bytes_get_tdo_set_tdi;
				ELSIF ioshifter(7) = '1' THEN
					next_state <= bytes_set_bitcount;
				ELSE
					next_state <= bits_set_pins_from_data;
				END IF;
			
			WHEN bytes_set_bitcount =>
				next_state <= wait_for_nRXF_low;
			
			-- ============================ BIT BANGING
				
			WHEN bits_set_pins_from_data =>
				IF ioshifter(6) = '0' THEN
					next_state <= wait_for_nRXF_low; -- read next byte from host
				ELSE
					next_state <= wait_for_nTXE_low; -- output byte to host
				END IF;
				
			-- ============================ BYTE OUTPUT (SHIFT OUT 8 BITS)
			
			WHEN bytes_get_tdo_set_tdi =>
				next_state <= bytes_clock_high_and_shift;
			
			WHEN bytes_clock_high_and_shift =>
				next_state <= bytes_keep_clock_high;
				
			WHEN bytes_keep_clock_high =>
				next_state <= bytes_clock_finish;
				
			WHEN bytes_clock_finish =>
				IF NOT (bitcount(2 DOWNTO 0) = "111") THEN
					next_state <= bytes_get_tdo_set_tdi; -- clock next bit
				ELSIF do_output = '1' THEN
					next_state <= wait_for_nTXE_low; -- output byte to host
				ELSE
					next_state <= wait_for_nRXF_low; -- read next byte from host
				END IF;
			
			-- ============================ OUTPUT BYTE TO HOST
			
			WHEN wait_for_nTXE_low =>
				IF nTXE = '0' THEN
					next_state <= set_WR_high;
				ELSE
					next_state <= wait_for_nTXE_low;
				END IF;
				
			WHEN set_WR_high =>
				next_state <= output_enable;
				
			WHEN output_enable =>
				next_state <= set_WR_low;
				
			WHEN set_WR_low =>
				next_state <= output_disable;
			
			WHEN output_disable =>
				next_state <= wait_for_nRXF_low; -- read next byte from host
				
			WHEN OTHERS => 
				next_state <= wait_for_nRXF_low;
				
		END CASE;
	END PROCESS sm;

	out_sm: PROCESS(CLK, state, ioshifter, B_TDO, bitcount, carry)

	BEGIN
		IF CLK = '1' AND CLK'event THEN
			
			IF state = set_nRD_low OR state = keep_nRD_low OR state = latch_data_from_host THEN
				nRD <= '0';
			ELSE
				nRD <= '1';
			END IF;
			
			IF state = latch_data_from_host THEN
				ioshifter(7 DOWNTO 0) <= D;
			END IF;
			
			IF state = set_WR_high OR state = output_enable THEN
				WR <= '1';
			ELSE
				WR <= '0';
			END IF;
			
			IF state = output_enable OR state = set_WR_low THEN
				D <= ioshifter(7 DOWNTO 0);
			ELSE
				D <= "ZZZZZZZZ";	
			END IF;
			
			IF state = bits_set_pins_from_data THEN
				B_TDI <= ioshifter(4);
				B_TMS <= ioshifter(1);
				B_TCK <= ioshifter(0);
				ioshifter <= "0000001" & B_TDO;
			END IF;
			
			IF state = bytes_set_bitcount THEN
				bitcount <= ioshifter(5 DOWNTO 0) & "111";
				do_output <= ioshifter(6);
			END IF;
			
			IF state = bytes_get_tdo_set_tdi THEN
				carry <= B_TDO;
				B_TDI <= ioshifter(0);
				bitcount <= bitcount - 1;
			END IF;
			
			IF state = bytes_clock_high_and_shift OR state = bytes_keep_clock_high THEN
				B_TCK <= '1';
			END IF;
			
			IF state = bytes_clock_high_and_shift THEN
				ioshifter <= carry & ioshifter(7 DOWNTO 1);
			END IF;
			
			IF state = bytes_clock_finish THEN
				B_TCK <= '0';
			END IF;
		
			state <= next_state;
			
		END IF;
	END PROCESS out_sm;
	
END spec;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲天堂精品在线观看| 91视频国产观看| 欧美一区二区视频在线观看| 偷拍日韩校园综合在线| 日韩午夜三级在线| 成人毛片视频在线观看| 夜夜操天天操亚洲| 欧美mv日韩mv亚洲| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 亚洲一二三专区| 26uuu成人网一区二区三区| 国产成人免费高清| 亚洲一区自拍偷拍| 亚洲成精国产精品女| 国产精品亲子伦对白| 在线播放国产精品二区一二区四区 | 久久av老司机精品网站导航| 国产欧美一区二区精品仙草咪| 99国产精品久久久久久久久久 | 日本欧美加勒比视频| 国产亚洲欧美日韩日本| 欧美高清dvd| 日韩精品一区二区三区视频| 在线观看亚洲一区| 国产91精品一区二区麻豆网站| 天天综合色天天| 久久福利资源站| eeuss鲁一区二区三区| 精品在线一区二区| 天堂成人国产精品一区| 中文在线一区二区 | 狠狠狠色丁香婷婷综合激情 | 无码av免费一区二区三区试看| 日本在线播放一区二区三区| 国产精品资源在线观看| 日本三级韩国三级欧美三级| 国产在线精品一区二区不卡了| 全部av―极品视觉盛宴亚洲| 亚洲国产一区二区三区| 亚洲精品视频在线观看免费| 中文字幕一区二区在线观看| 国产亚洲精品超碰| 亚洲一二三区在线观看| 狠狠狠色丁香婷婷综合久久五月| 色综合久久66| 成人免费毛片嘿嘿连载视频| 欧美最猛性xxxxx直播| 精品国产3级a| 亚洲精品一区二区三区香蕉| 一区二区在线观看av| 国产在线一区二区| 欧美精品在欧美一区二区少妇| 国产欧美一区二区精品性色| 久久精品久久99精品久久| 日本黄色一区二区| 欧美日韩一级二级三级| 欧美麻豆精品久久久久久| 国产精品免费av| 精品一区二区三区av| 91精品国产乱| 亚洲福利一区二区| 91成人看片片| 亚洲男人的天堂网| 天天av天天翘天天综合网色鬼国产| 成人一区二区三区中文字幕| 精品国产三级电影在线观看| 日韩专区中文字幕一区二区| 色噜噜狠狠色综合欧洲selulu | 色婷婷综合视频在线观看| 国产亚洲午夜高清国产拍精品| 热久久一区二区| 日韩一区二区三区免费看| 亚洲成人av福利| 欧美日韩五月天| 亚洲国产精品精华液网站| 91久久精品一区二区| 亚洲狠狠丁香婷婷综合久久久| 95精品视频在线| 亚洲欧美另类小说| 色老综合老女人久久久| 亚洲免费观看高清完整版在线观看 | 欧美一区2区视频在线观看| 天堂精品中文字幕在线| 91精品啪在线观看国产60岁| 日韩av在线免费观看不卡| 欧美一级淫片007| 麻豆精品新av中文字幕| 91美女蜜桃在线| 一区二区三区四区激情| 欧美日韩精品欧美日韩精品| 久久综合av免费| 国产成人夜色高潮福利影视| 国产欧美日韩精品在线| 99久久伊人久久99| 亚洲自拍偷拍综合| 欧美一区二区女人| 国产一区二区三区久久久| 亚洲国产成人私人影院tom| 91亚洲资源网| 日韩在线观看一区二区| 久久久国产一区二区三区四区小说| 亚洲精品日产精品乱码不卡| 欧美色综合网站| 亚洲日本在线天堂| 欧美精品一卡二卡| 国产高清久久久久| 一区二区三区四区国产精品| 日韩免费高清av| 99精品一区二区| 久久精品国产久精国产爱| 国产精品三级在线观看| 欧美日韩黄视频| 国产传媒日韩欧美成人| 亚洲国产综合91精品麻豆| 久久看人人爽人人| 91电影在线观看| 国产成人av电影免费在线观看| 亚洲一区二区视频在线观看| 久久亚洲一级片| 欧美日韩一区高清| 处破女av一区二区| 日韩**一区毛片| 亚洲欧美视频在线观看视频| 日韩欧美电影在线| 91福利视频久久久久| 国产精品88888| 日本91福利区| 亚洲成人资源网| 国产精品久久777777| 色综合天天在线| 亚洲日本在线天堂| 欧美激情一区在线观看| 欧美va在线播放| 欧美日韩dvd在线观看| 94色蜜桃网一区二区三区| 国产精品88888| 国内一区二区在线| 日韩高清国产一区在线| 亚洲一二三区视频在线观看| 国产精品久久久久久福利一牛影视| 欧美成人精品高清在线播放| 欧美日韩黄色一区二区| 日本精品一区二区三区高清| 不卡视频一二三四| 亚洲自拍偷拍麻豆| 亚洲品质自拍视频| 亚洲视频电影在线| 中文字幕制服丝袜成人av| 欧美激情在线观看视频免费| 国产婷婷色一区二区三区在线| 欧美一区二区福利视频| 欧美日韩在线免费视频| 欧洲av一区二区嗯嗯嗯啊| 91成人看片片| 欧美日韩国产小视频在线观看| 欧美在线观看视频一区二区| 在线中文字幕一区| 欧美日韩精品一区二区| 9191成人精品久久| 精品久久久影院| 久久精品人人爽人人爽| 久久你懂得1024| 国产精品污污网站在线观看| 国产日韩精品一区| 综合激情成人伊人| 一区二区三区中文字幕精品精品 | 精品少妇一区二区三区在线视频| 欧美一级黄色录像| 久久综合九色综合97婷婷| 久久久久久久免费视频了| 日本一区二区三区国色天香 | 91精彩视频在线| 欧美日韩国产综合久久| 日韩一级片在线播放| 国产亚洲欧洲997久久综合| 中文字幕色av一区二区三区| 一区二区三区四区高清精品免费观看| 性做久久久久久久久| 久久99久久99小草精品免视看| 成人综合婷婷国产精品久久 | 青青青爽久久午夜综合久久午夜| 精品一区二区在线观看| 国产不卡在线播放| 欧美日韩中文一区| 26uuu另类欧美亚洲曰本| 综合久久综合久久| 美女在线一区二区| 99精品视频一区| 精品乱人伦小说| 亚洲激情图片一区| 久久超碰97中文字幕| 91免费国产在线| 欧美大度的电影原声| 亚洲裸体在线观看| 裸体一区二区三区| 色天使色偷偷av一区二区| 日韩免费电影一区| 洋洋成人永久网站入口| 激情综合色丁香一区二区| 欧美综合天天夜夜久久|