基于I2C协议的EEPROM驱动控制
`timescale 1ns / 1ps
module i2c_ctrl
#(
parameter DEVICE_ADDR = 7'b1010_000,//i2c设备地址
parameter SYS_CLK_FREQ = 26'd50_000_000,//输入系统时钟频率
parameter SCL_FREQ = 18'd250_000 //i2c设备scl时钟频率
)
(
input wire sys_clk,//输入系统时钟,频率为50MHZ
input wire sys_rst_n,//输入复位信号,低电平有效
input wire wr_en,//输入写使能
input wire rd_en,//输入读使能信号
input wire i2c_start,//输入12c触发信号
input wire addr_num,//输入i2c字节地址字节数
input wire [15:0] byte_addr,//输入12c字节地址
input wire [7:0] wr_data,//输入i2c设备数据
output reg i2c_clk,//i2c驱动时钟
output reg i2c_end,//i2c读一次/写一次操作完成
output reg [7:0] rd_data,//输出i2c设备读取数据
output reg i2c_scl,//