虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

您现在的位置是:虫虫下载站 > 资源下载 > 技术资料 > verilog实现I2C通信的slave模块源码状态机设位计可做I2C接口的仿真模型

verilog实现I2C通信的slave模块源码状态机设位计可做I2C接口的仿真模型

  • 资源大小:2 K
  • 上传时间: 2022-02-03
  • 上传用户:zhengtiantong
  • 资源积分:2 下载积分
  • 标      签: verilog i2c 通信 slave

资 源 简 介

verilog实现I2C通信的slave模块源码状态机设位计可做I2C接口的仿真模型


//`timescale 1ns/1ps

module I2C_slv (

input [6:0] slv_id,

input       RESET,

input       scl_i,      //I2C clk

input       sda_i,      //I2C data in


input [7:0] I2C_RDDATA,

////////////////////////

output reg       sda_o,     //I2C data out


output reg       reg_w,     //reg write enable pulse (1T of scl_i)


output reg [7:0] I2C_ADDR,

output reg [7:0] I2C_DATA

);


  parameter ST_ADDR    = 4'd0;

  parameter ST_ACK     = 4'd1;


  parameter ST_WDATA1  = 4'd2;

  parameter ST_WACK1   = 4'd3;

  parameter ST_WDATA2  = 4'd4;

  parameter ST_WACK2   = 4'd5;

  parameter ST_WDATA3  = 4'd6;

  parameter ST_WACK3   = 4'd7;


  parameter ST_RDATA1  = 4'd8;

  parameter ST_RACK1   = 4'd9;


  parameter ST_IDLE    = 4'd15;

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

// Signal Declaration

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

  reg        i2c_start_n, i2c_stop_n;

  //wire       RESET_scl;

  wire       i2c_stp_n, i2c_RESET;


  reg [3:0]  i2c_cs, i2c_ns;

  reg [3:0]  cnt_bit;

  reg [7:0]  d_vec;

  reg        i2c_rd, i2c_ack;


  reg [7:0]  I2C_RDDATA_latch;


相 关 资 源

您 可 能 感 兴 趣 的