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

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

?? i2c.vhd

?? FPGA-CPLD_DesignTool(8-9-10)源代碼
?? VHD
字號:
-- i2c.vhd
--
-- Created: 6/3/99 ALS
--
-- 	This code implements the control of the i2c bus with a MC68000 type interface. It is 
-- 	modeled from the M-bus component in certain Motorola uC.
--	The I2C control is done in the component i2c_control and the uC interface is implemented
--	in the component uC_interface. This file does not contain any logic descriptions, it simply
--	instantiates the two components and hooks them together.
--
-- Revised: 6/9/99 ALS
--	Removed MFDR since this design will only run at 100KHz.
--
-- Revised: 6/15/99 ALS
--	To insure that SCL_IN uses a global clock network, it will be assigned to a pin. Made the necessary
--	changes to the component I2C_CONTROL and to I2C.
--
-- Revised: 7/7/99 ALS
--	Because of slaves perhaps not obeying SDA hold times, will no longer clock off delayed
--	version of SCL, instead use SCL itself. Removed SCL_CLK_OUT.
--
-- Revised: 6/29/00 ALS
--	Modified code to support repeated start

library IEEE;
use IEEE.std_logic_1164.all;

entity i2c is 
  generic (I2C_ADDRESS	: std_logic_vector(15 downto 0):= "0000000000000000" );
  port (
		-- I2C bus signals
		sda	: inout	std_logic;	 	
		scl	: inout	std_logic;   

		-- uC interface signals
		addr_bus	: in		std_logic_vector(23 downto 0);
		data_bus	: inout	std_logic_vector(7 downto 0);
		as		: in		std_logic;	-- address strobe, active low
		ds		: in		std_logic;	-- data strobe, active low
		r_w		: in		std_logic;	-- read/write
		dtack		: out		std_logic;	-- data transfer acknowledge
		irq		: out		std_logic;	-- interrupt request
		
		mcf		: inout		std_logic;  -- temporary output for testing 


		-- clock and reset
		clk		: in		std_logic;
		reset		: in		std_logic
	);
end i2c;
		
library IEEE;
use IEEE.std_logic_1164.all;

architecture behave of i2c is

-- ****************************** Component Definitions ****************************

-- Define the I2C Control logic
component i2c_control 
  port(
	-- I2C bus signals
	sda : inout std_logic;
        scl : inout std_logic;
	
	-- interface signals from uP interface
	txak		: in		std_logic;	-- value for acknowledge when xmit
	msta		: in		std_logic; 	-- master/slave select
	msta_rst	: out		std_logic;	-- resets MSTA bit if arbitration is lost
	rsta		: in		std_logic;	-- repeated start 
	rsta_rst	: out		std_logic;	-- reset for repeated start bit in control register
	mtx		: in		std_logic;	-- master read/write 
	mbdr_micro	: in		std_logic_vector(7 downto 0);	-- uP data to output on I2C bus
	madr		: in		std_logic_vector(7 downto 0); -- I2C slave address
	mbb		: out		std_logic;	-- bus busy
	mcf		: inout		std_logic;	-- data transfer
	maas		: inout		std_logic;	-- addressed as slave
	mal		: inout		std_logic;	-- arbitration lost
	srw		: inout		std_logic;	-- slave read/write
	mif		: out		std_logic; 	-- interrupt pending
	rxak		: out		std_logic;	-- received acknowledge
	mbdr_i2c	: inout		std_logic_vector(7 downto 0); -- I2C data for uP
	mbcr_wr		: in		std_logic;	-- indicates that MCBR register was written
	mif_bit_reset 	: in		std_logic;	-- indicates that the MIF bit should be reset
	mal_bit_reset 	: in		std_logic;	-- indicates that the MAL bit should be reset
	

      	sys_clk 	: in 		std_logic;
	reset 		: in 		std_logic);

end component;

    component PULLUP			--added by zxc
        port(v101: OUT std_logic);
    end component;

-- Define the uC interface
component uc_interface 
      generic (UC_ADDRESS : std_logic_vector(15 downto 0):= "0000000000000000" );
	port(
		-- 68000 parallel bus interface
		clk		: in STD_LOGIC;
		reset 	: in STD_LOGIC;	 
		
		addr_bus	: in STD_LOGIC_VECTOR (23 downto 0);
		data_bus	: inout STD_LOGIC_VECTOR (7 downto 0);
		as 		: in STD_LOGIC; 	-- Address strobe, active low	
		ds 		: in STD_LOGIC; 	-- Data strobe, active low
		
		-- Directional pins
		r_w		: in STD_LOGIC;	-- Active low write, 
							--  active high read
		dtack 	: out STD_LOGIC;	-- Data transfer acknowledge 
		irq		: out STD_LOGIC;	-- Interrupt request
	
		-- Internal I2C Bus Registers
		-- Address Register (Contains slave address)
		madr	      : inout STD_LOGIC_VECTOR(7 downto 0);
   
                -- Control Register		
		men             : inout STD_LOGIC;  -- I2C Enable bit
		mien            : inout STD_LOGIC;	-- interrupt enable
		msta            : inout STD_LOGIC;	-- Master/Slave bit
		mtx             : inout STD_LOGIC;	-- Master read/write
		txak            : inout STD_LOGIC;	-- acknowledge bit
		rsta            : inout STD_LOGIC;	-- repeated start
	
		mbcr_wr         : out STD_LOGIC;	-- indicates that the control reg has been written
		rsta_rst	: in	STD_LOGIC;	-- reset for repeated start bit in control register

                -- Status Register
		mcf             : in STD_LOGIC;	-- end of data transfer
		maas            : in STD_LOGIC;	-- addressed as slave
		mbb             : in STD_LOGIC;	-- bus busy
		mal             : in STD_LOGIC;	-- arbitration lost
		srw             : in STD_LOGIC;	-- slave read/write
		mif             : in STD_LOGIC;	-- interrupt pending
		rxak            : in STD_LOGIC;	-- received acknowledge

		mal_bit_reset   : out STD_LOGIC;	-- indicates that the MAL bit should be reset
		mif_bit_reset   : out STD_LOGIC;	-- indicates that the MIF bit should be reset
		msta_rst	    : in STD_LOGIC;	-- resets the MSTA bit if arbitration is lost
		

                -- Data Register 
		mbdr_micro      : inout STD_LOGIC_VECTOR (7 downto 0);
		mbdr_i2c        : in STD_LOGIC_VECTOR (7 downto 0);

		mbdr_read       : out STD_LOGIC
		
		);
end component;

-- ****************************** Signal Declarations ****************************

-- control register
signal madr			: std_logic_vector(7 downto 0); -- I2C address
signal men			: std_logic;		-- i2c enable - used as i2c reset
signal mien			: std_logic;		-- interrupt enable
signal msta			: std_logic;		-- i2c master/slave select
signal mtx			: std_logic;		-- master read/write
signal txak			: std_logic;		-- value of acknowledge to be transmitted
signal rsta			: std_logic;		-- generate a repeated start
signal rsta_rst			: std_logic;		-- reset for repeated start bit

signal mbcr_wr		: std_logic;		-- indicates the uC has written the MBCR

-- status register
--signal mcf			: std_logic;		-- indicates a completed data byte transfer
signal maas			: std_logic;		-- indicates the chip has been addressed as I2c slave
signal mbb			: std_logic;		-- indicates the i2c bus is busy
signal mal			: std_logic;		-- indicates that arbitration for the i2c bus is lost
signal srw			: std_logic;		-- slave read/write
signal mif			: std_logic;		-- interrupt pending
signal rxak			: std_logic;		-- value of received acknowledge

-- resets for certain status and control register bits
signal mal_bit_reset	: std_logic;		-- resets arbitration lost indicator 
signal mif_bit_reset	: std_logic;		-- resets interrupt pending bit
signal msta_rst		: std_logic;		-- resets master/slave select when arbitration is lost

-- data registers
-- there are two data registers, one to hold the uC data when the chip is transmitting on I2C
-- and one to hold the I2C data when the chip is receiving. This allows the two registers to 
-- be clocked by different clocks
signal mbdr_micro		: std_logic_vector(7 downto 0); -- uC data register
signal mbdr_i2c		: std_logic_vector(7 downto 0); -- i2c data register

signal mbdr_read		: std_logic;		-- indicates the mbdr_i2c register has been
								-- read by the uC

begin

-- ****************************** Component Instantiations ****************************
 
-- Instantiate the I2C Controller and connect it

I2C_CTRL: i2c_control

	port map (
			-- I2C bus signals
			sda => sda,
      			scl => scl,
	
			-- interface signals from uP interface
			txak		=> txak,
			msta		=> msta,
			msta_rst	=> msta_rst,
			rsta		=> rsta,
			rsta_rst	=> rsta_rst,
			mtx		=> mtx,
			mbdr_micro	=> mbdr_micro,
			madr		=> madr,
			mbb		=> mbb,
			mcf		=> mcf,
			maas		=> maas,
			mal		=> mal,
			srw		=> srw,
			mif		=> mif,
			rxak		=> rxak,
			mbdr_i2c	=> mbdr_i2c,
			mbcr_wr	=> mbcr_wr,
			mif_bit_reset => mif_bit_reset,
			mal_bit_reset => mal_bit_reset,

      			sys_clk => clk,
			reset => men 
		);

-- Instantiate the uC interface and connect it

uC_CTRL: uc_interface 
	generic map ( UC_ADDRESS => I2C_ADDRESS)
	port map(
		-- 68000 parallel bus interface
		clk		=> clk,
		reset 		=> reset,	 
		
		addr_bus	=> addr_bus,
		data_bus	=> data_bus,
		as 		=> as,	
		ds 		=> ds,
		
		-- Directional pins
		r_w		=> r_w, 
		dtack 		=> dtack, 
		irq		=> irq,
	
		-- Internal I2C Bus Registers
		-- Address Register (Contains slave address)
		madr	      => madr,

                -- Control Register		
		men		=> men,
		mien        => mien,
		msta        => msta,
		mtx         => mtx,
		txak        => txak,
		rsta        => rsta,
	
		mbcr_wr     => mbcr_wr,
		rsta_rst    =>	rsta_rst,

                -- Status Register
		mcf             => mcf,
		maas            => maas,
		mbb             => mbb,
		mal             => mal,
		srw             => srw,
		mif             => mif,
		rxak            => rxak,

		mal_bit_reset   => mal_bit_reset,
		mif_bit_reset   => mif_bit_reset,
		msta_rst	    => msta_rst,
		

                -- Data Register 
		mbdr_micro      => mbdr_micro,
		mbdr_i2c        => mbdr_i2c,

		mbdr_read       => mbdr_read
		
		);


end behave;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女视频黄免费的久久| 日本中文字幕一区二区视频| 亚洲乱码国产乱码精品精可以看| 亚洲成av人片在线观看无码| 国产在线播放一区二区三区| 欧美三级在线视频| 久久亚区不卡日本| 天天影视涩香欲综合网| 9i在线看片成人免费| 精品国产伦一区二区三区免费 | 欧美一三区三区四区免费在线看| 国产精品色婷婷| 韩国女主播成人在线| 51精品秘密在线观看| 亚洲一区二区三区四区五区中文| 成熟亚洲日本毛茸茸凸凹| 日韩亚洲欧美一区| 香蕉久久一区二区不卡无毒影院| 色噜噜夜夜夜综合网| 中文字幕字幕中文在线中不卡视频| 久久精品国产成人一区二区三区 | 亚洲视频在线一区二区| 国内精品不卡在线| 欧美日韩精品系列| 日本一区二区久久| 久久99热国产| 91精品国产综合久久精品| 亚洲视频网在线直播| 国产福利一区二区| 日韩欧美亚洲国产另类| 亚洲成年人影院| 色www精品视频在线观看| 国产日产亚洲精品系列| 老鸭窝一区二区久久精品| 欧美日韩一区二区三区免费看 | 18成人在线视频| 国产精品小仙女| 日韩美女在线视频| 亚洲成av人片一区二区三区| 色成年激情久久综合| 中文字幕一区二区三区在线不卡 | 一区二区三区欧美| 免费一级欧美片在线观看| 91精品国产一区二区| 亚洲黄色免费网站| 91福利视频久久久久| 一区二区理论电影在线观看| 99久久精品一区| 中文字幕一区二区在线播放| 99re热视频这里只精品| 亚洲欧洲国产专区| 91在线一区二区| 亚洲视频香蕉人妖| 欧美亚洲国产bt| 婷婷综合另类小说色区| 欧美一区二区日韩一区二区| 蜜桃一区二区三区在线| 欧美一区二区三区啪啪| 精品在线亚洲视频| 久久青草欧美一区二区三区| 国产成人精品一区二区三区网站观看| 久久亚洲二区三区| a在线欧美一区| 一片黄亚洲嫩模| 欧美精品vⅰdeose4hd| 日本欧美在线观看| 久久色在线视频| 91亚洲资源网| 五月天激情小说综合| 欧美成人综合网站| 国产精品 欧美精品| 亚洲丝袜自拍清纯另类| 欧美色手机在线观看| 性久久久久久久久| 国产色婷婷亚洲99精品小说| av在线一区二区三区| 亚洲伊人伊色伊影伊综合网| 欧美一区二区大片| 狠狠色丁香久久婷婷综| 亚洲欧美在线高清| 日韩一级免费观看| 播五月开心婷婷综合| 日韩成人一级大片| 欧美激情在线观看视频免费| 91福利精品视频| 狠狠色丁香久久婷婷综合_中 | 中文子幕无线码一区tr| 欧美主播一区二区三区| 狠狠色丁香久久婷婷综合_中| 欧美韩国日本不卡| 欧美亚洲综合色| 国产成人精品1024| 天堂久久一区二区三区| 国产蜜臀av在线一区二区三区| 色屁屁一区二区| 精品亚洲成a人| 亚洲综合成人在线| 久久久精品免费免费| 欧美专区亚洲专区| 国产91精品一区二区| 日韩综合一区二区| 国产精品人成在线观看免费| 日韩视频免费观看高清完整版 | 97se亚洲国产综合自在线不卡 | 欧美精品一区二区三区蜜桃视频 | 成人av第一页| 老色鬼精品视频在线观看播放| 亚洲免费在线电影| 国产喂奶挤奶一区二区三区| 91精品国产综合久久蜜臀| 国产精品一级在线| 婷婷综合五月天| 国产精品久久久久久妇女6080 | 欧美日韩免费在线视频| 国产精品白丝jk黑袜喷水| 天堂va蜜桃一区二区三区| 亚洲男同性视频| 国产精品私房写真福利视频| 欧美mv和日韩mv的网站| 8v天堂国产在线一区二区| 欧美午夜片在线看| 91视频国产资源| 国产91精品一区二区麻豆网站 | 亚洲特黄一级片| 国产精品久久久久一区 | 精品国产一区二区在线观看| 欧美美女一区二区三区| 欧美日韩1区2区| 91成人网在线| 精品视频在线免费| 欧美日韩精品欧美日韩精品 | 波波电影院一区二区三区| 国产麻豆日韩欧美久久| 精品一区免费av| 久久99精品国产麻豆婷婷洗澡| 秋霞成人午夜伦在线观看| 午夜精品福利一区二区三区蜜桃| 成人av片在线观看| 91一区二区三区在线播放| 在线观看不卡视频| 欧美日韩高清在线播放| 7777精品伊人久久久大香线蕉| 6080午夜不卡| 欧美成人vr18sexvr| 国产亚洲欧美日韩俺去了| 欧美国产日韩亚洲一区| 国产精品天美传媒沈樵| 亚洲欧美区自拍先锋| 亚洲精品欧美在线| 性感美女极品91精品| 久久国产精品72免费观看| 国产乱码精品一品二品| 99国产欧美久久久精品| 在线观看日韩毛片| 欧美成人伊人久久综合网| 国产色91在线| 亚洲免费资源在线播放| 亚洲精品美国一| 亚洲国产成人av好男人在线观看| 亚洲一区免费在线观看| 免费在线成人网| 欧美国产视频在线| 亚洲综合一区二区三区| 久久99国产精品久久99果冻传媒| 国产精品一区二区在线观看网站| www.欧美色图| 欧美一区二区三区啪啪| 中文字幕欧美激情一区| 午夜欧美大尺度福利影院在线看| 久久99精品国产.久久久久| fc2成人免费人成在线观看播放| 欧美亚男人的天堂| 国产欧美一区二区精品性色超碰| 亚洲国产一区在线观看| 国产原创一区二区| 欧亚洲嫩模精品一区三区| 欧美mv和日韩mv国产网站| 一区二区三区在线免费播放| 精品一区二区三区影院在线午夜| av在线一区二区| 欧美变态tickle挠乳网站| 一区二区三区日韩欧美| 国产成人免费视频| 欧美一区二区人人喊爽| 国产午夜精品理论片a级大结局| 亚洲永久免费视频| 久久国产精品第一页| 91精品国产综合久久久久久久| 国产精品国产精品国产专区不片| 另类小说一区二区三区| 在线国产电影不卡| 亚洲国产精品成人综合色在线婷婷| 蜜臀av亚洲一区中文字幕| 日本韩国一区二区三区视频| 久久综合色播五月| 免费观看久久久4p| 欧美另类videos死尸| 亚洲在线视频网站| 99re在线视频这里只有精品| 国产女同互慰高潮91漫画|