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

📄 i2c.v

📁 清华大学verilog hdl源码例子
💻 V
字号:
module i2c(     
				  addr,               // cpu address bus               
                rst_l,
                clock,                           
                i2c_rdata,	    
                scl_pin,            // i2c clock
                sda_pin);           // i2c data
                

//-------------------------------------------------------------------
// microprocessor interface

input   [1:0]   addr;               // cpu address bus
input           rst_l;              // async reset
input           clock;              // cpu clock
output	[7:0]	i2c_rdata;


//-------------------------------------------------------------------
// i2c interface

output          scl_pin;            // i2c clock
inout           sda_pin;            // i2c data
                 
//-------------------------------------------------------------------
// interconnect wires

// cpu interface wires

wire    [1:0]   addr;               // cpu address bus
wire            rst_l;              // async reset
wire            clock;              // cpu clock

wire            ack_l;              // acknowledge out to cpu

// i2c interface wires

wire            scl_pin;
wire            sda_pin;

// clock output wires
wire            scl_tick;           // 5 usec clock tick

// state machine wires

wire    [7:0]   i2c_rdata;          // i2c read data        

wire            sda;                // i2c data
wire            scl;                // i2c clock

//-------------------------------------------------------------------


// module instantiations

// i2c clock
i2c_clk U3(     .rst_l(rst_l),
                .clock(clock),
                .scl_cnt_en(scl_cnt_en),
                .scl_tick(scl_tick));                

// i2c state machine

i2c_st U4(      .rst_l(rst_l),
                .clock(clock),
                .scl_tick(scl_tick),
                .sda_pin(sda_pin),
                .sda(sda),
                .scl(scl),
                .scl_cnt_en(scl_cnt_en),            
                .i2c_rdata(i2c_rdata));

assign scl_pin = scl ? 1'bz : 1'b0;
assign sda_pin = sda ? 1'bz : 1'b0;
                


endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -