?? i2c_cnt_1.txt
字號:
-- I2C_cnt.VHD是I2C總線控制器,它包括以下文件:-- I2C.vhd :主要完成I2c總線的命令,啟動(s),主控器的寫操作,主控器讀操作,被控器應答(ack),-- 主控器的應答(ACKm),停止等;-- ENA_sda_out.vhd:二選一選擇器;-- Rom.vhd:用來存放要配置的寄存器的數據,此文件包括在I2C.vhd中。-- SRL16.vhd:延時模塊-- Divide_clk.vhd:分頻器,把源時鐘128分頻(源時鐘頻率為30M),分頻輸出是30M/128=234.375KHz-- 配置完被控器后(SAA7114),在輸出復位信號(Chip_rst),為CPLD內的其它模塊復位,執(zhí)行程序。----LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE ieee.std_logic_arith.all;ENTITY I2C_CNT IS PORT ( CLK :IN STD_LOGIC; RST :IN STD_LOGIC; SDA :INOUT STD_LOGIC; CHIP_RST :OUT STD_LOGIC; CLK_OUT :OUT STD_LOGIC; TEST :OUT STD_LOGIC; SCL :OUT STD_LOGIC ); END I2C_CNT;ARCHITECTURE RTL OF I2C_CNT ISCOMPONENT I2CPORT ( CLK :IN STD_LOGIC; RST :IN STD_LOGIC; SDA_IN :IN STD_LOGIC; CHIP_RST :OUT STD_LOGIC; SCL :OUT STD_LOGIC; ENA_SDA_OUT :OUT STD_LOGIC; test_OUT :out std_logic; SDA_OUT :OUT STD_LOGIC); END COMPONENT;COMPONENT ENA_SDA_OUT PORT ( ENA_SDA_OUT :IN STD_LOGIC; SDA_OUT :IN STD_LOGIC; SDA :OUT STD_LOGIC); END COMPONENT;COMPONENT SRL_16 PORT ( Q : out std_logic; Clk : in std_logic; A : in std_logic_VECTOR(3 DOWNTO 0); D : in std_logic );END COMPONENT;COMPONENT DIVIDE_CLK_TEST -- 時鐘分頻器 PORT( CLK :IN STD_LOGIC; -- 30M的時鐘或別的外部輸入時鐘 DIVIDE_CLK :OUT STD_LOGIC -- 輸出240.375K的時鐘 );END COMPONENT;COMPONENT DELAY_RST --復位延時 PORT ( RST :IN STD_LOGIC; -- 來自于SAA711 CLK :IN STD_LOGIC; RST_OUT :OUT STD_LOGIC -- 輸出到CPLD );END COMPONENT;SIGNAL ENA_SDA :STD_LOGIC;SIGNAL SDA_OUTPUT :STD_LOGIC;SIGNAL RESET :STD_LOGIC;SIGNAL RST_CPLD :STD_LOGIC;SIGNAL W_DIVIDE_CLK :STD_LOGIC;BEGINI2C_F: I2C PORT MAP (CLK=>W_DIVIDE_CLK, RST=>RST_CPLD, SDA_IN=>SDA, CHIP_RST=>CHIP_RST, SCL=>SCL,ENA_SDA_OUT=>ENA_SDA,SDA_OUT=>SDA_OUTPUT,TEST_OUT=>TEST) ;ENA_SDA_OUT_F: ENA_SDA_OUT PORT MAP (ENA_SDA_OUT=>ENA_SDA,SDA=>SDA,SDA_OUT=>SDA_OUTPUT); SRL16_F: SRL_16 PORT MAP (Q=>RESET,CLK=>W_DIVIDE_CLK,A=>"1111",D=>RST); DIVIDE_CLK_F: DIVIDE_CLK_TEST PORT MAP (CLK=>CLK,DIVIDE_CLK=>W_DIVIDE_CLK);DELAY_RST_F : DELAY_RST PORT MAP(CLK=>CLK,RST=>RESET,RST_OUT=>RST_CPLD);CLK_OUT<=RST_CPLD;--TEST<=RST_CPLD;END RTL;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -