OpenCores
URL https://opencores.org/ocsvn/i2c_to_wb/i2c_to_wb/trunk

Subversion Repositories i2c_to_wb

[/] [i2c_to_wb/] [trunk/] [sim/] [models/] [i2c_master_model.v] - Diff between revs 2 and 3

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 2 Rev 3
Line 16... Line 16...
  );
  );
 
 
  localparam tBUF     = 4700;
  localparam tBUF     = 4700;
  localparam tSU_STA  = 4700;
  localparam tSU_STA  = 4700;
  localparam tSU_DAT  = 250;
  localparam tSU_DAT  = 250;
  localparam tHD_DAT  = 0;
  localparam tHD_DAT  = 300;
  localparam tHD_STA  = 4000;
  localparam tHD_STA  = 4000;
  localparam tLOW     = 4700;
  localparam tLOW     = 4700;
  localparam tHIGH    = 4000;
  localparam tHIGH    = 4000;
 
 
  // --------------------------------------------------------------------
  // --------------------------------------------------------------------
Line 53... Line 53...
    begin
    begin
 
 
      if( LOG_LEVEL > 2 )
      if( LOG_LEVEL > 2 )
        $display( "###- %m: I2C start at time %t. ", $time );
        $display( "###- %m: I2C start at time %t. ", $time );
 
 
      i2c_data_out  = 1'b1;
//       i2c_data_out  = 1'b1;
      i2c_clk_out   = 1'b1;
//       i2c_clk_out   = 1'b1;
 
 
      #tBUF;
      #tBUF;
 
 
      i2c_data_oe = 1'b1;
      i2c_data_oe = 1'b1;
      i2c_clk_oe  = 1'b1;
      i2c_clk_oe  = 1'b1;
Line 70... Line 70...
        end
        end
 
 
      if( i2c_clk != 1'b1 )
      if( i2c_clk != 1'b1 )
        begin
        begin
          i2c_clk_out = 1'b1;
          i2c_clk_out = 1'b1;
          #tSU_DAT;
          #tLOW;
        end
        end
 
 
      #tSU_STA;
      #tSU_STA;
      i2c_data_out = 1'b0;
      i2c_data_out = 1'b0;
 
 
Line 97... Line 97...
        end
        end
 
 
      if( i2c_clk != 1'b1 )
      if( i2c_clk != 1'b1 )
        begin
        begin
          i2c_clk_out = 1'b1;
          i2c_clk_out = 1'b1;
          #tSU_DAT;
          #tLOW;
        end
        end
 
 
      i2c_data_out  = 1'b1;
      i2c_data_out  = 1'b1;
      i2c_clk_out   = 1'b1;
      i2c_clk_out   = 1'b1;
 
 
Line 132... Line 132...
  endtask
  endtask
 
 
 
 
  // --------------------------------------------------------------------
  // --------------------------------------------------------------------
  //  write_byte
  //  write_byte
 
  reg write_byte_r = 1'b0;
 
 
  task write_byte;
  task write_byte;
    input [7:0]  data;
    input [7:0]  data;
      begin
      begin
 
 
 
        write_byte_r = 1'b1;
 
 
        if( LOG_LEVEL > 2 )
        if( LOG_LEVEL > 2 )
          $display( "###- %m: I2C write 0x%h at time %t. ", data, $time );
          $display( "###- %m: I2C write 0x%h at time %t. ", data, $time );
 
 
        #tHD_STA;
        #tHD_STA;
 
 
Line 167... Line 171...
            $display( "###- %m: I2C NACK at time %t. ", $time );
            $display( "###- %m: I2C NACK at time %t. ", $time );
          else
          else
            $display( "###- %m: I2C ACK at time %t. ", $time );
            $display( "###- %m: I2C ACK at time %t. ", $time );
 
 
        #tHIGH;
        #tHIGH;
 
        i2c_clk_out = 1'b0;
 
 
 
        write_byte_r = 1'b0;
 
        #1;
 
 
      end
      end
  endtask
  endtask
 
 
 
 
Line 223... Line 231...
        i2c_clk_out = 1'b1;
        i2c_clk_out = 1'b1;
 
 
        if( LOG_LEVEL > 2 )
        if( LOG_LEVEL > 2 )
          $display( "###- %m: I2C read 0x%h at time %t. ", i2c_buffer_in, $time );
          $display( "###- %m: I2C read 0x%h at time %t. ", i2c_buffer_in, $time );
 
 
 
        #tHIGH;
 
        i2c_clk_out = 1'b0;
 
 
      end
      end
  endtask
  endtask
 
 
 
 
  // --------------------------------------------------------------------
  // --------------------------------------------------------------------

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.