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

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

?? one_wire.vhd

?? 基于FPGA的單總線(ONE-WIRE)協議的實現源代碼.
?? VHD
字號:
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_unsigned.all;

entity one_wire is 
	port (
			clk, reset, read, write		: IN std_logic;
			DQ						: INOUT std_logic;
			rddata					: OUT std_logic_vector(7 downto 0);
			wrdata					: IN std_logic_vector(7 downto 0);
			ready					: INOUT std_logic
		);
end entity one_wire;

architecture structural of one_wire is
	signal iCount : integer range 0 to 500;
	signal iCntRst : bit;
	signal iD : std_logic;
begin
	
	--This counter is used in the state machine to count micro seconds
	--it is assumed that the clock edges are coming in at 1uS intervals
	counter: process
	begin
		wait until (clk'event and clk = '0');
			if(iCntRst = '1') then
				iCount <= 0;
			else
				iCount <= iCount + 1;
			end if;
	end process counter;	
	
	init_statemachine : block

	type states is (init1, init2, init3, rdy, begin_read, begin_write, rd_bit, finish_read, wr_bit);
	signal state : states;	
	begin
		nxt_state_decoder: process(state, clk)
			variable next_state : states;
			variable iBits : integer range 0 to 8;
		begin
		if clk 'event and clk = '1' then
			case (state) is
				when INIT1 => 
					iCntRst <= '0';
					iD <= '0';
					ready <= '0';
					if (iCount = 500) then
						next_state := INIT2;
						iCntRst <= '1';		--stop the timer
					else
						next_state := INIT1;
					end if;
				when INIT2 =>
					iCntRst <= '0';			--start the timer
					iD <= '1';
					ready <= '0';
					if (iCount = 15) then
						next_state := INIT3;
						iCntRst <= '1';		--stop the timer
					else
						next_state := INIT2;
					end if;
				when INIT3 =>
					iCntRst <= '0';			--start the timer (not needed)
					ready <= '0';
					if (DQ = '0') then
						next_state := RDY;
						iCntRst <= '1';		--stop the timer (not needed)
					else
						next_state := INIT3;
					end if;
				when RDY =>
					iCntRst <= '0';		--start the timer
					iBits := 0;
					iD <= '1';
					if(iCount >= 240 and ready = '0') then
						ready <= '1';
					end if;
					if(Read = '1' and iCount >= 240) then
						ready <= '0';
						iCntRst <= '1';			--stop timer
						next_state := BEGIN_READ;
					elsif(Write = '1' and iCount >= 240) then
						ready <= '0';
						iCntRst <= '1';			--stop timer
						next_state := BEGIN_WRITE;
					else
						next_state := RDY;
					end if;
				when BEGIN_READ =>
					iCntRst <= '0';		--start timer
					iD <= '0';
					if (iCount = 2) then							--this number used to be a 5
						iCntRst <= '1';		--stop timer
						next_state := RD_BIT;
					end if;
				when RD_BIT =>
					iD <= '1';
					iCntRst <= '0'; --start timer
					
					case ibits is
						when 0 =>
							rddata(0) <= DQ;
						when 1 =>
							rddata(1) <= DQ;
						when 2 =>
							rddata(2) <= DQ;
						when 3 =>
							rddata(3) <= DQ;
						when 4 =>
							rddata(4) <= DQ;
						when 5 =>
							rddata(5) <= DQ;
						when 6 =>
							rddata(6) <= DQ;
						when 7 =>
							rddata(7) <= DQ;
						when others =>
					end case;
						if(iCount >= 6) then
							next_state := FINISH_READ;
						end if;
				when FINISH_READ =>
					if(iBits <= 6 and iCount >= 55) then		--this second number used to be 55
						iD <= '1';
						iBits := iBits + 1;
						iCntRst <= '1'; --stop timer
						next_state := BEGIN_READ;
					elsif(iBits = 7) then
						iCntRst <= '1'; -- stop timer
						next_state := RDY;
					end if;
				when BEGIN_WRITE =>
					iCntRst <= '0'; 
					if(iBits <= 7) then
						iD <= '0';					--start timer
					end if;
					if (iCount = 1) then
						iCntRst <= '1';  --stop timer
						next_state := WR_BIT;
					end if;
				when WR_BIT =>
					iCntRst <= '0';
				
					--The below code is what is being accomplished by the huge if elseif structure 
					--if(data(iBits) = "001") then
					--	iD := '1';
					--end if;

					if(iBits = 0 and wrdata(0) = '1') then
						iD <= '1';
					elsif(iBIts = 0 and wrdata(0) = '0') then
						iD <= '0';
					elsif(iBits = 1 and wrdata(1) = '1') then
						iD <= '1';
					elsif(iBIts = 1 and wrdata(1) = '0') then
						iD <= '0';
					elsif(iBits = 2 and wrdata(2) = '1') then
						iD <= '1';
					elsif(iBIts = 2 and wrdata(2) = '0') then
						iD <= '0';
					elsif(iBits = 3 and wrdata(3) = '1') then
						iD <= '1';
					elsif(iBIts = 3 and wrdata(3) = '0') then
						iD <= '0';
					elsif(iBits = 4 and wrdata(4) = '1') then
						iD <= '1';
					elsif(iBIts = 4 and wrdata(4) = '0') then
						iD <= '0';
					elsif(iBits = 5 and wrdata(5) = '1') then
						iD <= '1';
					elsif(iBIts = 5 and wrdata(5) = '0') then
						iD <= '0';
					elsif(iBits = 6 and wrdata(6) = '1') then
						iD <= '1';
					elsif(iBIts = 6 and wrdata(6) = '0') then
						iD <= '0';
					elsif(iBits = 7 and wrdata(7) = '1') then
						iD <= '1';
					elsif(iBIts = 7 and wrdata(7) = '0') then
						iD <= '0';
					end if;
					if(iCount >= 60 and iBits <= 7) then
						iBits := iBits + 1;
						iD <= '1';
						iCntRst <= '1'; --stop timer
						next_state := BEGIN_WRITE;
					elsif(iBits = 8) then
						iD <= '1';
						iCntRst <= '1'; --stop timer
						next_state := RDY;
					end if;
			end case;

			state <= next_state;
			if(reset = '1') then
				state <= init1;
			end if;
		end if;
			
		end process nxt_state_decoder;
	end block init_statemachine;

	trictrl: process(iD)
	begin
		if( iD = '0' ) then
			DQ <= '0';
		else
			DQ <= 'Z';
		end if;
	end process trictrl;
	
end architecture structural;

PACKAGE PROTOCOL_PKG IS
		COMPONENT one_wire
		END COMPONENT;
END PROTOCOL_PKG;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美成人精品1314www| 日本精品视频一区二区三区| 日韩精品影音先锋| 日韩高清在线观看| 欧美精品一区二区久久婷婷 | 91精品国产综合久久精品app| 亚洲男人电影天堂| 欧美日韩精品系列| 精品亚洲国内自在自线福利| 国产亚洲一区二区三区在线观看| av电影天堂一区二区在线| 亚洲精品视频一区二区| 欧美情侣在线播放| 国产成人av影院| 亚洲影视在线观看| 337p粉嫩大胆噜噜噜噜噜91av | 欧美一区二区三区小说| 久久99久国产精品黄毛片色诱| 久久久综合精品| 欧美在线短视频| 国产精品综合网| 一区二区三区精品在线观看| 精品理论电影在线| 99精品1区2区| 麻豆精品精品国产自在97香蕉| 国产精品欧美一区喷水| 欧美日韩免费观看一区二区三区 | 日本不卡123| 国产日韩高清在线| 欧美特级限制片免费在线观看| 国模套图日韩精品一区二区| 亚洲色图第一区| 精品嫩草影院久久| 在线精品视频免费播放| 国产一区二区中文字幕| 亚洲国产美女搞黄色| 国产日韩欧美制服另类| 欧美日韩国产片| eeuss鲁一区二区三区| 精品一区中文字幕| 亚洲综合成人网| 国产精品私人影院| 日韩免费视频一区二区| 欧美色手机在线观看| 成人av在线资源网| 精品一区二区三区免费| 天堂久久一区二区三区| 亚洲男同1069视频| 国产女人18毛片水真多成人如厕| 欧美一区二区三区免费| 欧美色图12p| 一本一道久久a久久精品| 国产a区久久久| 国产一区二区三区| 麻豆91免费观看| 日韩专区一卡二卡| 亚洲一卡二卡三卡四卡无卡久久| 国产精品日日摸夜夜摸av| 欧美精品一区二区三| 欧美tickling网站挠脚心| 5566中文字幕一区二区电影| 一本久道中文字幕精品亚洲嫩| 国产福利一区二区三区视频在线| 麻豆精品一区二区av白丝在线| 亚洲国产aⅴ天堂久久| 一区二区三区免费| 亚洲一区影音先锋| 一区二区三区中文免费| 亚洲丝袜美腿综合| 亚洲另类春色国产| 亚洲精品成a人| 亚洲韩国一区二区三区| 洋洋成人永久网站入口| 一区二区在线免费观看| 一区二区三区久久久| 亚洲成人一二三| 亚洲一区av在线| 天使萌一区二区三区免费观看| 偷偷要91色婷婷| 六月丁香婷婷色狠狠久久| 美美哒免费高清在线观看视频一区二区 | 国产精品久久久久久久久免费丝袜 | 午夜影院久久久| 午夜精品福利在线| 日av在线不卡| 韩国毛片一区二区三区| 国产91精品一区二区麻豆网站| 高清不卡一区二区在线| 91性感美女视频| 欧美日韩午夜精品| 日韩欧美的一区二区| 久久精品亚洲乱码伦伦中文 | 久久亚洲一级片| 国产精品久久久久久户外露出| 中文字幕在线视频一区| 亚洲老司机在线| 亚洲不卡一区二区三区| 精久久久久久久久久久| 成人一区二区三区视频| 91麻豆免费视频| 欧美久久免费观看| 久久伊人蜜桃av一区二区| 国产精品欧美一区喷水| 亚洲午夜精品在线| 韩国毛片一区二区三区| 91蜜桃免费观看视频| 欧美日韩国产一级二级| 欧美xxxxxxxx| 综合久久久久久| 日本视频一区二区三区| 成人一道本在线| 欧美午夜不卡视频| 久久一区二区三区四区| 亚洲一区二区视频在线观看| 极品尤物av久久免费看| 日韩欧美中文字幕制服| 欧美激情中文字幕| 日韩国产精品久久久久久亚洲| 国产激情一区二区三区四区| 欧美视频在线不卡| 久久久久久久久久久久电影 | 欧美激情在线看| 日韩一区精品视频| 成人午夜精品在线| 日韩精品一区二区三区视频| 一区二区三区产品免费精品久久75| 美女高潮久久久| 在线观看视频一区二区欧美日韩| 日韩精品一区在线| 一区二区三区精品视频在线| 国产成人夜色高潮福利影视| 91久久精品一区二区三区| 国产亚洲综合在线| 麻豆精品视频在线| 欧美日韩不卡在线| 18成人在线观看| 国产激情一区二区三区桃花岛亚洲| 欧美区一区二区三区| 亚洲欧美日韩精品久久久久| 国产成人丝袜美腿| 日韩限制级电影在线观看| 亚洲精品视频观看| 成人亚洲一区二区一| 欧美大片在线观看| 亚洲午夜在线电影| 一本久道久久综合中文字幕| 中文字幕va一区二区三区| 日本不卡一区二区三区| 欧美手机在线视频| 亚洲精品菠萝久久久久久久| 不卡的电影网站| 国产色婷婷亚洲99精品小说| 精品一区二区三区欧美| 91精品国产一区二区人妖| 亚洲成av人影院| 欧美视频三区在线播放| 亚洲黄色小视频| 91亚洲精华国产精华精华液| 国产精品国产a级| 国产suv精品一区二区6| 中文字幕国产精品一区二区| 国产91丝袜在线18| 国产精品午夜免费| 丁香五精品蜜臀久久久久99网站| 久久久久久麻豆| 国产麻豆91精品| 久久久精品日韩欧美| 国产精品538一区二区在线| 久久人人97超碰com| 国产精品99久久久久久似苏梦涵| 久久久久久久综合狠狠综合| 国产麻豆精品视频| 中文字幕 久热精品 视频在线| 成人免费视频视频在线观看免费| 国产欧美日韩久久| 成人国产亚洲欧美成人综合网| 亚洲国产精品成人综合色在线婷婷| 国产成人在线免费观看| 国产精品天天摸av网| 色欧美88888久久久久久影院| 一区二区三区日韩在线观看| 欧美日韩免费观看一区三区| 日本美女一区二区三区视频| 26uuu久久综合| av午夜精品一区二区三区| 亚洲黄色免费网站| 欧美一卡2卡3卡4卡| 国产在线观看一区二区| 国产精品成人午夜| 欧美视频在线播放| 激情小说亚洲一区| 亚洲视频在线观看一区| 欧美欧美欧美欧美| 国产一区二区日韩精品| 成人欧美一区二区三区黑人麻豆| 欧美在线综合视频| 国产精品资源网站| 亚洲精品中文在线观看| 日韩亚洲欧美综合| www.欧美.com|