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

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

?? i2c_top.vhd

?? IIC的IP.這是經過驗證的源代碼
?? VHD
?? 第 1 頁 / 共 2 頁
字號:
------------------------------------------------------------------------------
-- 
--  Name: I2C_Top.vhd  
-- 
--  Description: Top-level module of the I2C Master Controller design
--      This design is intended to be used as a master controller
--      for a I2C Bus. The user will use this module to read or
--      write from the a I2C Bus.
-- 
--  $Revision: 1.0 $          
--  
--  Copyright 2004 Lattice Semiconductor Corporation.  All rights reserved.
--
------------------------------------------------------------------------------
-- Permission:
--
--   Lattice Semiconductor grants permission to use this code for use
--   in synthesis for any Lattice programmable logic product.  Other
--   use of this code, including the selling or duplication of any
--   portion is strictly prohibited.
--
-- Disclaimer:
--
--   This VHDL or Verilog source code is intended as a design reference
--   which illustrates how these types of functions can be implemented.
--   It is the user's responsibility to verify their design for
--   consistency and functionality through the use of formal
--   verification methods.  Lattice Semiconductor provides no warranty
--   regarding the use or functionality of this code.
------------------------------------------------------------------------------
--
--    Lattice Semiconductor Corporation
--    5555 NE Moore Court
--    Hillsboro, OR 97124
--    U.S.A
--
--    TEL: 1-800-Lattice (USA and Canada)
--    408-826-6000 (other locations)
--
--    web: http://www.latticesemi.com/
--    email: techsupport@latticesemi.com
-- 
------------------------------------------------------------------------------

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;

entity I2C_Top is
  port(SDA        : inout std_logic;              -- Serial Data Line of the I2C bus
       SCL        : inout std_logic;              -- Serial Clock Line of the I2C bus
       Clock      : in std_logic;                 -- MP Clock 
       Reset_L    : in std_logic;                 -- Reset, active low
       CS_L       : in std_logic;                 -- Chip select, active low
       A0         : in std_logic;                 -- Address bits for register selection
       A1         : in std_logic;                 -- Address bits for register selection
       A2         : in std_logic;                 -- Address bits for register selection
       RW_L       : in std_logic;                 -- Read/Write, write active low
       INTR_L     : out std_logic;                -- Interupt Request, active low
       DATA       : inout std_logic_vector(7 downto 0)); -- data bus to/from attached device(NOTE: Data(7) is MSB                         
end I2C_Top;

architecture behave of I2C_Top is

--I2C Control Signals
signal Start_Enable          : std_logic;
signal Stop_Enable           : std_logic;
signal Start_Det_Bit         : std_logic;
signal Stop_Det_Bit          : std_logic;
signal Interrupt_Enable      : std_logic;
signal SDA_EN_1              : std_logic;
signal SDA_EN_2              : std_logic;
signal SDA_EN_3              : std_logic;

signal SDA_EN_1_out          : std_logic;
signal SDA_EN_2_out          : std_logic;
signal SDA_EN_3_out          : std_logic;

signal SCL_CK                : std_logic;
signal SCLH_CK               : std_logic;
signal SCL_synch             : bit;
signal SDA_synch             : bit;
signal Bit_Count             : std_logic_vector(2 downto 0);
signal Bit_Count_Enable      : std_logic;
signal Byte_Count_Enable     : std_logic;
signal Bit_Count_Flag        : std_logic;
signal Byte_Count_Flag       : std_logic;
signal Trans_Buf_Empty_Set   : std_logic;
signal Read_Buf_Full_Set     : std_logic;
signal Iack_Clear            : std_logic;
signal Go_Clear              : std_logic;
signal Trans_Buffer_Empty    : std_logic;
signal Read_Buffer_Full      : std_logic;
signal abits                 : std_logic_vector(2 downto 0);

signal SDA1                  : bit;
signal SCL1                  : bit;
signal wcsack                : std_logic;
signal rcsack                : std_logic;
--Register Blocks
signal Command_Reg   : std_logic_vector(7 downto 0);            -- CMD part of Command_Status Reg Contains:
                                                                -- Go, Abort, Iack, I2C_Mode,
                                                                -- I2C_address Size, Trans_IE and Recieve_IE. 
signal Status_Reg    : std_logic_vector(7 downto 0);            -- Status part of Command_Status Reg Contains:
                                                                -- I2C_Bus_Busy, Abort_Ack, Lost_Arb, Error
                                                                -- Trans_Done, Recieve_Done, Trans_Buf_Empty,
                                                                -- and Recieve_Buf_Full
                                                                -- I2C bus busy,and retry count
signal Read_Buffer       : std_logic_vector(7 downto 0);        -- Data for I2C Read transaction
signal Trans_Buffer      : std_logic_vector(7 downto 0);        -- Data for I2C Write transaction
signal Low_Address_Reg   : std_logic_vector(7 downto 0);        -- Low order Address bits for I2C Slave
signal Byte_Count_Reg    : std_logic_vector(7 downto 0);        -- I2C Transaction Byte Count
  
-- Command Register Bits ( Written from MPU)
signal I2C_GO         : std_logic;
signal I2C_Abort      : std_logic;
signal I2C_Iack       : std_logic;
signal I2C_Mode       : std_logic;
signal I2C_Addr_Size  : std_logic;
signal I2C_Recieve_IE : std_logic;
signal I2C_Trans_IE   : std_logic;

-- Status Register Bits
signal I2C_Bus_Busy   : std_logic;
signal I2C_Abort_Ack  : std_logic;
signal I2C_Error      : std_logic;
signal I2C_Lost_Arb   : std_logic; -- 0 indicates lost arbitration
signal I2C_Done       : std_logic; 

-- I2C Read/Write Bit
signal I2C_RW_Bit     : std_logic;

--============================================================================
--Component Declarations
--============================================================================
component MPU_to_I2C 
  port(MPU_CLK            : in std_logic;                       -- Main Clock
       Rst_L              : in std_logic;                       -- Main Reset, active low
       CS_L               : in std_logic;                       -- Chip select, active low
       Addr_Bits          : in std_logic_vector(2 downto 0);    -- Address bits A0, A1, A2. Used for register sel
       RW_L               : in std_logic;                       -- Read/Write, write active low
       Read_Buffer        : in std_logic_vector(7 downto 0);    -- I2C Data Read in
       Status_Reg         : in std_logic_vector(4 downto 0);    -- Status part of Command_Status Reg Contains:
                                                                -- I2C_Bus_Busy, Abort_Ack, Lost_Arb, Error,Done
                                                                -- Does not include: Trans_Buf_Empty,
                                                                -- and Recieve_Buf_Full
       TBE_Set            : in std_logic;                       -- TBE_Set flag, set Trans_Buf_Empty to empty                                                                   
       RBF_Set            : in std_logic;                       -- RBF_Set flag, set Read_Buff_Full  to full                                                                    
       Iack_Clear         : in std_logic;                       -- Clears the Iack
       Go_Clear           : in std_logic;                       -- Clears Go Bit
       Low_Address_Reg    : out std_logic_vector(7 downto 0);   -- Low order Address bits for I2C Slave
       Byte_Count_Reg     : out std_logic_vector(7 downto 0);   -- I2C Transaction Byte Count
       Command_Reg        : out std_logic_vector(7 downto 0);   -- CMD part of Command_Status Reg Contains:
                                                                -- Go, Abort,Iack, I2C_Mode,
                                                                -- I2C_address Size, Trans_IE and Recieve_IE. 
       Trans_Buffer       : out std_logic_vector(7 downto 0);    -- Holds Data for I2C Write transaction
       Trans_Buffer_Empty : out std_logic;                      -- 0 indicates that the trans buffer is empty
       Read_Buffer_Full   : out std_logic;                      -- 0 indicates that the read buffer is not full
       Iack               : out std_logic;                      -- interrupt acknowledge
       DATA               : inout std_logic_vector(7 downto 0)); -- Data bus to/from attached device(NOTE: Data(7) is MSB                         
end component;

component I2C_Main 
  port(MPU_CLK           : in std_logic;                        -- MP Clock 
       Rst_L             : in std_logic;                        -- Main Reset, active low
       SCL               : in bit;                              -- I2C F/S mode Clock
       SDA               : in bit;                              -- SDA
       Bit_Count         : in std_logic_vector(2 downto 0);     -- Bit count for I2C packets
       Bit_Cnt_Flag      : in std_logic;                        -- Bit Count overflow flag
       Byte_Cnt_Flag     : in std_logic;                        -- Byte Count overflow flag
       Trans_Buffer      : in std_logic_vector(7 downto 0);     -- Data from MPU for I2C Write
       Low_Address_Reg   : in std_logic_vector(7 downto 0);     -- Low order Address bits for I2C Slave
       Lost_Arb          : in std_logic;                        -- Lost Arbitration Bit
       Start_Det         : in std_logic;                        -- I2C Start Detect
       Stop_Det          : in std_logic;                        -- I2C Stop Detect       
       Command_Reg       : in std_logic_vector(1 downto 0);     -- CMD part of Command_Status Reg Contains:
                                                                -- Go, Abort Does not include:I2C_Mode, 
                                                                --  I2C_address Size, Iack,Trans_IE and Recieve_IE.      
       Status_Reg        : out std_logic_vector(3 downto 0);    -- Status part of Command_Status Reg Contains:
                                                                -- I2C_Bus_Busy, Abort_Ack, Error,Done
                                                                -- Does not include:Trans_Buf_Empty, Recieve_Buf_Full,
                                                                -- Lost_Arb. Lost Arb comes from arbiter
       Read_Buffer       : out std_logic_vector(7 downto 0);    -- I2C read data byte                                                                   
       Bit_Cnt_EN        : out std_logic;                       -- Bit count enable
       Byte_Cnt_EN       : out std_logic;                       -- Byte count enable
       Start_EN          : out std_logic;                       -- Start enable
       Stop_EN           : out std_logic;                       -- Stop enable
       SDA_EN1           : out std_logic;                       -- SDA enable
       TBE_Set           : out std_logic;                       -- set Transmit_Buffer_Empty flag for MPU block
       RBF_Set           : out std_logic;                       -- set Recieve_Buffer_Full flag for MPU block
       Go_Clear          : out std_logic;                      -- Request to clear go bit
       WCS_Ack           : out std_logic;
       RCS_Ack           : out std_logic);
end component;

component Synch_Block 
  port(MPU_CLK     : in std_logic;                       
       Rst_L       : in std_logic;                       
       SCL         : in bit;
       SDA         : in bit;
       SCL_synch   : out bit;
       SDA_synch  : out bit);
end component;

component I2C_Clock_Generator 
  generic (cnt_f_hi: integer := 105;  -- = clk80_f_hi;    // fast   count hi time
           cnt_s_hi: integer := 417;  -- = clk80_s_hi;    // std.   count hi time
           cnt_f_lo: integer := 209;  -- = clk80_f_lo;    // fast   count lo time
           cnt_s_lo: integer := 834); -- = clk80_s_lo;    // std.   count lo time
  port(MPU_CLK    : in std_logic;                       -- MP Clock 
       Rst_L      : in std_logic;                       -- Main Reset, active low
       Mode       : in std_logic;                       -- I2C mode from command register
       Abort      : in std_logic;                       -- abort from command register
       SCL_CK     : out std_logic);                     -- Serial Clock Line of the I2C bus
end component;

component Counter_Block
  port(MPU_CLK        : in std_logic;                     -- MP Clock 
       Rst_L          : in std_logic;                     -- Main Reset, active low
       SCL            : in bit;                           -- SCL
       Abort          : in std_logic;                     -- Abort
       Byte_Cnt_EN    : in std_logic;                     -- Byte Count Enable
       Bit_Cnt_EN     : in std_logic;                     -- Bit Count Enable
       go             : in std_logic;                     -- go bit for restarts
       Byte_Count_Reg : in std_logic_vector(7 downto 0);  -- Byte Count Register setup from MPU
       Bit_Count      : out std_logic_vector(2 downto 0);  -- Bit Count 
       Bit_Cnt_Flag   : out std_logic;                     -- Bit Count overflow flag
       Byte_Cnt_Flag  : out std_logic);                    -- Byte Count overflow flag
end component;

component Arbitrator 
  port(MPU_CLK       : in std_logic;                    -- MPU Clock
       Rst_L         : in std_logic;                    -- Main I2C Reset
       SCL           : in bit;                          -- I2C Clock for f/s mode 
       SDA           : in bit;                          -- I2C data bus for f/s mode
       SDA_EN1       : in std_logic;                    -- sda enable
       SDA_EN2       : in std_logic;                    -- sda enable
       SDA_EN3       : in std_logic;                    -- sda enable
       WCS_Ack       : in std_logic;                    -- Write State Ack Bit
       RCS_Ack       : in std_logic;                    -- Read State Ack Bit
       Lost_ARB      : out std_logic);                  -- Lost Arbitration bit
end component;

component Int_Ctrl_Block 
  port(MPU_CLK             : in std_logic;                        -- MPU clock
       RST_L               : in std_logic;                        -- Global reset
       abort               : in std_logic;                        -- abort 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩美女在线视频| 精品国产一区二区三区四区四 | 亚洲女与黑人做爰| 欧美视频一区二区三区四区 | 欧美亚洲精品一区| 亚洲成人自拍一区| 色狠狠综合天天综合综合| 亚洲日穴在线视频| 亚洲欧洲韩国日本视频| 国产视频一区二区三区在线观看| 6080午夜不卡| 欧美精品免费视频| 欧美日本一区二区在线观看| 91极品美女在线| 欧美亚洲丝袜传媒另类| 欧美性受极品xxxx喷水| 欧美日韩一区二区在线观看视频| 色一区在线观看| 91官网在线观看| 欧美三级资源在线| 91麻豆精品国产自产在线观看一区 | 91视频在线观看| 色婷婷国产精品久久包臀| 色婷婷久久久综合中文字幕| 欧洲一区二区三区免费视频| 欧美人体做爰大胆视频| 日韩美女天天操| 欧美激情一区二区三区蜜桃视频| 日韩一区欧美一区| 亚洲国产日韩精品| 蜜桃视频第一区免费观看| 激情都市一区二区| 99久久er热在这里只有精品66| 色老汉一区二区三区| 在线不卡的av| 国产精品美女一区二区| 亚洲成人一二三| 国产一区999| 色综合一个色综合| 欧美一区二区三区在线电影| 久久久久9999亚洲精品| 夜夜操天天操亚洲| 激情欧美日韩一区二区| 99re热这里只有精品免费视频| 欧美精品乱码久久久久久| 国产日韩成人精品| 日韩专区中文字幕一区二区| 成人av在线资源| 久久影院视频免费| 亚洲综合在线免费观看| 国产主播一区二区三区| 欧美性猛片xxxx免费看久爱| 久久九九国产精品| 日韩成人午夜电影| 色欧美日韩亚洲| 国产亚洲短视频| 日韩**一区毛片| 91成人在线免费观看| 国产亚洲精品7777| 免费av成人在线| 欧美午夜精品久久久久久超碰| 久久精品视频一区二区三区| 午夜精品久久久| 在线观看日韩一区| 国产精品成人一区二区三区夜夜夜| 久草精品在线观看| 91 com成人网| 亚洲成人三级小说| 欧美亚洲一区二区三区四区| 亚洲欧美日韩人成在线播放| 成人午夜电影网站| 国产精品另类一区| 成人黄色av电影| 日本一区二区三级电影在线观看| 国产精品亚洲视频| 国产精品私人影院| 99久久精品国产精品久久| 国产精品久久毛片a| 91麻豆精东视频| 一区二区三区美女| 欧美午夜电影在线播放| 亚洲综合久久av| 欧美日韩你懂得| 三级精品在线观看| 精品三级av在线| 成人性生交大片免费看中文| 久久精品一区二区三区不卡牛牛 | 一个色在线综合| 这里只有精品电影| 欧洲视频一区二区| 亚洲综合色视频| 欧美一区二区三区婷婷月色| 狠狠久久亚洲欧美| 国产精品久久久久久久久晋中 | 中文字幕一区三区| 色婷婷综合久久久| 亚洲电影一级片| 欧美群妇大交群的观看方式| 麻豆精品视频在线观看视频| 精品久久久久久亚洲综合网| 国产裸体歌舞团一区二区| 国产亚洲一本大道中文在线| 日韩中文字幕不卡| 欧美大片顶级少妇| 91最新地址在线播放| 一区二区三区在线视频免费观看| 欧美日韩精品系列| 国产麻豆视频一区二区| 亚洲精品视频一区二区| 69久久夜色精品国产69蝌蚪网 | 又紧又大又爽精品一区二区| 欧美日韩美少妇| 黄页网站大全一区二区| 国产精品久久久久7777按摩| 欧美视频一区二区三区在线观看| 久久99国产精品久久99果冻传媒| 26uuu成人网一区二区三区| 91视频免费播放| 激情欧美一区二区三区在线观看| 国产精品久久久久久户外露出| 91免费小视频| 国产一区二区精品在线观看| **欧美大码日韩| 精品久久久久一区二区国产| 色诱亚洲精品久久久久久| 另类小说综合欧美亚洲| 亚洲欧美国产三级| 91精品国产综合久久久蜜臀粉嫩| 国产白丝精品91爽爽久久| 日韩福利电影在线观看| 成人欧美一区二区三区视频网页| 日韩亚洲欧美在线观看| kk眼镜猥琐国模调教系列一区二区| 亚洲一级片在线观看| 日本一区二区三区dvd视频在线| 欧美精品xxxxbbbb| 91啪亚洲精品| 99国产精品99久久久久久| 国产精品资源在线| 久久精品国产成人一区二区三区 | 亚洲观看高清完整版在线观看 | 日韩成人伦理电影在线观看| 午夜欧美大尺度福利影院在线看| 成人免费一区二区三区在线观看| 久久久久国色av免费看影院| 欧美一区二区性放荡片| 欧美日韩五月天| 欧美日韩免费一区二区三区 | 亚洲精品一区二区三区精华液| 欧美日韩一二区| 欧美视频在线不卡| 欧美日韩精品二区第二页| 欧美在线一二三| 欧美亚一区二区| 欧美在线观看一区| 欧美日韩国产高清一区二区三区| 在线看日韩精品电影| 在线观看视频一区二区欧美日韩| 91福利视频在线| 欧美日韩aaaaa| 欧美一区二区在线免费播放| 欧美一区二区三区小说| 精品日产卡一卡二卡麻豆| 久久中文字幕电影| 日韩欧美一区电影| 久久人人97超碰com| 国产精品女主播av| 亚洲精品国产无天堂网2021 | 懂色一区二区三区免费观看| 国产乱对白刺激视频不卡| 东方欧美亚洲色图在线| 色老综合老女人久久久| 91麻豆精品国产91久久久久久| 欧美日韩久久一区| 26uuu久久天堂性欧美| 国产精品电影一区二区| 亚洲国产欧美另类丝袜| 精品一区二区日韩| www.亚洲色图.com| 欧美日韩一区国产| 国产香蕉久久精品综合网| 亚洲欧洲国产专区| 午夜亚洲国产au精品一区二区| 理论电影国产精品| 99久久精品免费看| 91精品中文字幕一区二区三区 | 成人免费毛片app| 日本韩国精品一区二区在线观看| 日韩一级高清毛片| 亚洲精品水蜜桃| 国产成人免费视频| 欧美一区二区三区四区高清| 国产精品视频在线看| 另类人妖一区二区av| 色综合天天综合狠狠| 91麻豆精品国产91久久久久久久久 | 欧美老肥妇做.爰bbww| 亚洲欧美另类图片小说| 国产精品影视天天线| 日韩美女视频在线|