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

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

?? tst_ds1621_vhd.htm

?? Testsystem for i2c controller
?? HTM
字號(hào):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0109)http://www.opencores.org/cvsweb.cgi/~checkout~/i2c/Attic/tst_ds1621.vhd?rev=1.1.1.1;content-type=text%2Fplain -->
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2900.2963" name=GENERATOR></HEAD>
<BODY><PRE>--
--
-- State machine for reading data from Dallas 1621
--
-- Testsystem for i2c controller
--
--
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;

use work.i2c.all;

entity DS1621_interface is
	port (
		clk : in std_logic;
		nReset : in std_logic;

		Dout : out std_logic_vector(7 downto 0);	-- data read from ds1621

		error : out std_logic; -- no correct ack received

		SCL : inout std_logic;
		SDA : inout std_logic
	);
end entity DS1621_interface;

architecture structural of DS1621_interface is
	constant SLAVE_ADDR : std_logic_vector(6 downto 0) := "1001000";
	constant CLK_CNT : unsigned(7 downto 0) := conv_unsigned(20, 8);

	signal cmd_ack : std_logic;
	signal D : std_logic_vector(7 downto 0);
	signal lack, store_dout : std_logic;

	signal start, read, write, ack, stop : std_logic;
	signal i2c_dout : std_logic_vector(7 downto 0);

begin
	-- hookup I2C controller
	u1: simple_i2c port map (clk =&gt; clk, ena =&gt; '1', clk_cnt =&gt; clk_cnt, nReset =&gt; nReset,
			read =&gt; read, write =&gt; write, start =&gt; start, stop =&gt; stop, ack_in =&gt; ack, cmd_ack =&gt; cmd_ack, 
			Din =&gt; D, Dout =&gt; i2c_dout, ack_out =&gt; lack, SCL =&gt; SCL, SDA =&gt; SDA);

	init_statemachine : block
		type states is (i1, i2, i3, i4, i5, t1, t2, t3, t4, t5);
		signal state : states;
	begin
		nxt_state_decoder: process(clk, nReset, state)
			variable nxt_state : states;
			variable iD : std_logic_vector(7 downto 0);
			variable ierr : std_logic;
			variable istart, iread, iwrite, iack, istop : std_logic;
			variable istore_dout : std_logic;
		begin
			nxt_state := state;
			ierr := '0';
			istore_dout := '0';

			istart := start;
			iread := read;
			iwrite := write;
			iack := ack;
			istop := stop;
			iD := D;

			case (state) is
				-- init DS1621
				-- 1) send start condition
				-- 2) send slave address + write
				-- 3) check ack
				-- 4) send "access config" command (0xAC)
				-- 5) check ack
				-- 6) send config register data (0x00)
				-- 7) check ack
				-- 8) send stop condition
				-- 9) send start condition
				-- 10) send slave address + write
				-- 11) check ack
				-- 12) send "start conversion" command (0xEE)
				-- 13) check ack
				-- 14) send stop condition

				when i1 =&gt;	-- send start condition, sent slave address + write
					nxt_state := i2;
					istart := '1';
					iread := '0';
					iwrite := '1';
					iack := '0';
					istop := '0';
					iD := (slave_addr &amp; '0'); -- write to slave (R/W = '0')

				when i2 =&gt;	-- send "access config" command
					if (cmd_ack = '1') then
						nxt_state := i3;
						-- check aknowledge bit
						if (lack = '1') then
							ierr := '1'; -- no acknowledge received from last command, expected ACK
						end if;

						istart := '0';
						iread := '0';
						iwrite := '1';
						iack := '0';
						istop := '0';
						iD := x"AC";
					end if;

				when i3 =&gt;	-- send config register data, sent stop condition
					if (cmd_ack = '1') then
						nxt_state := i4;
						-- check aknowledge bit
						if (lack = '1') then
							ierr := '1'; -- no acknowledge received from last command, expected ACK
						end if;

						istart := '0';
						iread := '0';
						iwrite := '1';
						iack := '0';
						istop := '1';
						iD := x"00";
					end if;

				when i4 =&gt;	-- send start condition, sent slave address + write
					if (cmd_ack = '1') then
						nxt_state := i5;
	
						istart := '1';
						iread := '0';
						iwrite := '1';
						iack := '0';
						istop := '0';
						iD := (slave_addr &amp; '0'); -- write to slave (R/W = '0')
					end if;

				when i5 =&gt;	-- send "start conversion" command + stop condition
					if (cmd_ack = '1') then
						nxt_state := t1;
						-- check aknowledge bit
						if (lack = '1') then
							ierr := '1'; -- no acknowledge received from last command, expected ACK
						end if;

						istart := '0';
						iread := '0';
						iwrite := '1';
						iack := '0';
						istop := '1';
						iD := x"EE";
					end if;
				-- read temperature
				-- 1) sent start condition
				-- 2) sent slave address + write
				-- 3) check ack
				-- 4) sent "read temperature" command (0xAA)
				-- 5) check ack
				-- 6) sent start condition
				-- 7) sent slave address + read
				-- 8) check ack
				-- 9) read msb
				-- 10) send ack
				-- 11) read lsb
				-- 12) send nack
				-- 13) send stop condition

				when t1 =&gt;	-- send start condition, sent slave address + write
					if (cmd_ack = '1') then
						nxt_state := t2;
						-- check aknowledge bit
						if (lack = '1') then
							ierr := '1'; -- no acknowledge received from last command, expected ACK
						end if;

						istart := '1';
						iread := '0';
						iwrite := '1';
						iack := '0';
						istop := '0';
						iD := (slave_addr &amp; '0'); -- write to slave (R/W = '0')
					end if;

				when t2 =&gt;	-- send read temperature command
					if (cmd_ack = '1') then
						nxt_state := t3;
						-- check aknowledge bit
						if (lack = '1') then
							ierr := '1'; -- no acknowledge received from last command, expected ACK
						end if;

						istart := '0';
						iread := '0';
						iwrite := '1';
						iack := '0';
						istop := '0';
						iD := x"AA";
					end if;

				when t3 =&gt;	-- send (repeated) start condition, send slave address + read
					if (cmd_ack = '1') then
						nxt_state := t4;
						-- check aknowledge bit
						if (lack = '1') then
							ierr := '1'; -- no acknowledge received, expected ACK
						end if;

						istart := '1';
						iread := '0';
						iwrite := '1';
						iack := '0';
						istop := '0';
						iD := (slave_addr &amp; '1'); -- read from slave (R/W = '1')
					end if;

				when t4 =&gt;	-- read MSB (hi-byte), send acknowledge
					if (cmd_ack = '1') then
						nxt_state := t5;
						-- check aknowledge bit
						if (lack = '1') then
							ierr := '1'; -- no acknowledge received from last command, expected ACK
						end if;

						istart := '0';
						iread := '1';
						iwrite := '0';
						iack := '0'; --ACK
						istop := '0';
					end if;

				when t5 =&gt;	-- read LSB (lo-byte), send acknowledge, sent stop
					if (cmd_ack = '1') then
						nxt_state := t1;

						istart := '0';
						iread := '1';
						iwrite := '0';
						iack := '1'; --NACK
						istop := '1';

						istore_dout := '1';
					end if;
			end case;

			-- genregs
			if (nReset = '0') then
				state &lt;= i1;
				error &lt;= '0';
				store_dout &lt;= '0';

				start &lt;= '0';
				read &lt;= '0';
				write &lt;= '0';
				ack &lt;= '0';
				stop &lt;= '0';
				D &lt;= (others =&gt; '0');
			elsif (clk'event and clk = '1') then
				state &lt;= nxt_state;
				error &lt;= ierr;
				store_dout &lt;= istore_dout;

				start &lt;= istart;
				read &lt;= iread;
				write &lt;= iwrite;
				ack &lt;= iack;
				stop &lt;= istop;
				D &lt;= iD;
			end if;
		end process nxt_state_decoder;
	end block init_statemachine;

	-- store temp
	gen_dout : process(clk)
	begin
		if (clk'event and clk = '1') then
			if (store_dout = '1') then
				Dout &lt;= i2c_dout;
			end if;
		end if;
	end process gen_dout;

end architecture structural;


</PRE></BODY></HTML>

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久不见久久见免费视频7| 国产亚洲人成网站| 亚洲不卡在线观看| 欧美日韩国产天堂| 奇米精品一区二区三区在线观看| 欧美视频在线观看一区二区| 午夜欧美在线一二页| 91精品国产入口在线| 国产一区二区三区在线看麻豆| 久久久综合激的五月天| 成人黄色av网站在线| 中文字幕中文字幕一区二区| 色综合婷婷久久| 亚洲成av人影院在线观看网| 日韩视频一区在线观看| 丁香天五香天堂综合| 亚洲品质自拍视频网站| 欧美日韩亚洲不卡| 国产一区二区视频在线播放| 亚洲视频在线观看一区| 91精品国产黑色紧身裤美女| 国产一区二区不卡| 亚洲精品v日韩精品| 欧美一区二区三区性视频| 国产精品夜夜嗨| 一区二区高清在线| 精品美女在线播放| 97se亚洲国产综合自在线观| 日韩精品国产精品| 国产精品网曝门| 欧美三级中文字幕在线观看| 国产精品亚洲а∨天堂免在线| 一区二区三区欧美在线观看| 2023国产精品| 欧美日本一道本在线视频| 国产大陆精品国产| 日韩精品一卡二卡三卡四卡无卡| 国产婷婷色一区二区三区在线| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 另类小说图片综合网| 亚洲精品视频一区| www精品美女久久久tv| 91国产丝袜在线播放| 国产最新精品精品你懂的| 亚洲一区二区在线免费看| 久久久精品黄色| 欧美精品成人一区二区三区四区| 成人免费视频一区二区| 另类人妖一区二区av| 一区二区三区 在线观看视频 | 91视频你懂的| 激情图区综合网| 偷拍一区二区三区| 又紧又大又爽精品一区二区| 国产精品理论片| 国产偷v国产偷v亚洲高清| 欧美一卡二卡三卡四卡| 欧美影视一区在线| 91麻豆免费观看| av激情亚洲男人天堂| 国产精品资源在线看| 美日韩黄色大片| 日韩高清国产一区在线| 性欧美大战久久久久久久久| 亚洲男同性视频| 亚洲人精品午夜| 亚洲欧美日韩电影| 亚洲欧美日韩一区| 日韩伦理av电影| 中文字幕中文字幕中文字幕亚洲无线| 久久夜色精品一区| 久久综合精品国产一区二区三区 | 一区二区免费视频| 亚洲人亚洲人成电影网站色| 一色桃子久久精品亚洲| 亚洲国产精品传媒在线观看| 久久久久久久久久久久久久久99| 亚洲福利一二三区| 最新国产精品久久精品| 国产精品大尺度| 一区二区三区丝袜| 亚洲chinese男男1069| 亚洲午夜精品久久久久久久久| 亚洲国产欧美一区二区三区丁香婷| 一个色综合av| 午夜精品爽啪视频| 日韩精品亚洲一区二区三区免费| 午夜久久久影院| 久久国内精品视频| 国产精品中文有码| 成人av在线播放网址| 色综合咪咪久久| 欧美精品乱码久久久久久按摩| 91麻豆精品国产91久久久资源速度 | 久久久精品tv| 中文一区一区三区高中清不卡| 国产精品久久久久婷婷二区次| 日韩理论片网站| 亚洲一区二区在线观看视频| 日韩av在线播放中文字幕| 久久99精品久久久久久国产越南| 国产精品自拍毛片| 色噜噜狠狠成人中文综合| 91精品视频网| 国产欧美日韩麻豆91| 伊人婷婷欧美激情| 秋霞成人午夜伦在线观看| 国产精品99久久久久久久vr | 在线成人小视频| 国产欧美日韩久久| 香蕉久久一区二区不卡无毒影院| 日本成人中文字幕在线视频| 国产精品一级二级三级| 欧美在线|欧美| 91精品福利在线一区二区三区| 久久久久久电影| 亚洲成年人影院| 成人午夜电影久久影院| 欧美日本一区二区三区| 亚洲国产高清不卡| 麻豆免费精品视频| 色婷婷综合久久久久中文一区二区 | 蜜臀av一区二区| 91麻豆国产在线观看| 26uuu色噜噜精品一区二区| 亚洲猫色日本管| 国产成人精品免费在线| 7777女厕盗摄久久久| 中文文精品字幕一区二区| 天堂在线亚洲视频| av在线免费不卡| 精品国产乱子伦一区| 亚洲国产日韩一级| av爱爱亚洲一区| 久久久久久**毛片大全| 日韩电影在线观看一区| 91在线观看高清| 国产清纯白嫩初高生在线观看91| 日韩激情视频网站| 欧美在线一区二区| 一区在线观看视频| 成人国产在线观看| 久久综合色8888| 免费久久99精品国产| 欧美日韩电影在线播放| 有码一区二区三区| 91麻豆免费观看| 日韩一区欧美一区| 成人在线综合网| 国产亚洲精品bt天堂精选| 久久精品国产精品亚洲综合| 欧美日韩精品一区二区三区蜜桃 | 欧美伊人久久大香线蕉综合69| 国产精品高潮久久久久无| 国产精品一区二区黑丝| 精品久久国产字幕高潮| 免费在线观看视频一区| 91精品在线观看入口| 五月天婷婷综合| 欧美精品 日韩| 亚洲成人av福利| 7777精品伊人久久久大香线蕉的| 亚洲电影你懂得| 欧美日韩免费在线视频| 亚洲午夜精品在线| 欧美日本乱大交xxxxx| 天涯成人国产亚洲精品一区av| 欧美日韩国产一区二区三区地区| 亚洲v中文字幕| 69精品人人人人| 老司机精品视频导航| 欧美一区二区三区性视频| 久久精品国产**网站演员| 日韩欧美色综合网站| 国产麻豆午夜三级精品| 国产欧美日韩另类视频免费观看| 懂色av一区二区三区免费观看 | 一区二区三国产精华液| 欧美三级中文字幕在线观看| 性做久久久久久久久| 日韩精品专区在线影院重磅| 狠狠色丁香婷综合久久| 国产精品三级视频| 91激情在线视频| 日韩av中文字幕一区二区| 久久蜜桃一区二区| 水野朝阳av一区二区三区| 欧美大片在线观看| 成人小视频在线| 亚洲一区二区三区四区在线观看| 欧美日韩一区二区在线观看视频 | 亚洲成人自拍一区| 日韩亚洲欧美在线观看| 国产精品综合久久| 亚洲视频一区在线观看| 欧美一区二区网站| 成人a免费在线看| 香蕉影视欧美成人| 国产成人精品一区二| av亚洲产国偷v产偷v自拍|