⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 i2c_cnt_1.txt

📁 SAA7114 和 FPGA/CPLD之间通讯的程序
💻 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内的其它模块复位,执行程序。----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 + -