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

Subversion Repositories i2c

[/] [i2c/] [trunk/] [rtl/] [verilog/] [i2c_master_top.v] - Diff between revs 40 and 55

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

Rev 40 Rev 55
Line 35... Line 35...
////                                                             ////
////                                                             ////
/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
 
 
//  CVS Log
//  CVS Log
//
//
//  $Id: i2c_master_top.v,v 1.10 2003-09-01 10:34:38 rherveille Exp $
//  $Id: i2c_master_top.v,v 1.11 2005-02-27 09:26:24 rherveille Exp $
//
//
//  $Date: 2003-09-01 10:34:38 $
//  $Date: 2005-02-27 09:26:24 $
//  $Revision: 1.10 $
//  $Revision: 1.11 $
//  $Author: rherveille $
//  $Author: rherveille $
//  $Locker:  $
//  $Locker:  $
//  $State: Exp $
//  $State: Exp $
//
//
// Change History:
// Change History:
//               $Log: not supported by cvs2svn $
//               $Log: not supported by cvs2svn $
 
//               Revision 1.10  2003/09/01 10:34:38  rherveille
 
//               Fix a blocking vs. non-blocking error in the wb_dat output mux.
 
//
//               Revision 1.9  2003/01/09 16:44:45  rherveille
//               Revision 1.9  2003/01/09 16:44:45  rherveille
//               Fixed a bug in the Command Register declaration.
//               Fixed a bug in the Command Register declaration.
//
//
//               Revision 1.8  2002/12/26 16:05:12  rherveille
//               Revision 1.8  2002/12/26 16:05:12  rherveille
//               Small code simplifications
//               Small code simplifications
Line 153... Line 156...
          wb_ack_o <= #1 wb_cyc_i & wb_stb_i & ~wb_ack_o; // because timing is always honored
          wb_ack_o <= #1 wb_cyc_i & wb_stb_i & ~wb_ack_o; // because timing is always honored
 
 
        // assign DAT_O
        // assign DAT_O
        always @(posedge wb_clk_i)
        always @(posedge wb_clk_i)
        begin
        begin
          case (wb_adr_i) // synopsis full_case parallel_case
          case (wb_adr_i) // synopsis parallel_case
            3'b000: wb_dat_o <= #1 prer[ 7:0];
            3'b000: wb_dat_o <= #1 prer[ 7:0];
            3'b001: wb_dat_o <= #1 prer[15:8];
            3'b001: wb_dat_o <= #1 prer[15:8];
            3'b010: wb_dat_o <= #1 ctr;
            3'b010: wb_dat_o <= #1 ctr;
            3'b011: wb_dat_o <= #1 rxr; // write is transmit register (txr)
            3'b011: wb_dat_o <= #1 rxr; // write is transmit register (txr)
            3'b100: wb_dat_o <= #1 sr;  // write is command register (cr)
            3'b100: wb_dat_o <= #1 sr;  // write is command register (cr)
Line 181... Line 184...
                ctr  <= #1  8'h0;
                ctr  <= #1  8'h0;
                txr  <= #1  8'h0;
                txr  <= #1  8'h0;
            end
            end
          else
          else
            if (wb_wacc)
            if (wb_wacc)
              case (wb_adr_i) // synopsis full_case parallel_case
              case (wb_adr_i) // synopsis parallel_case
                 3'b000 : prer [ 7:0] <= #1 wb_dat_i;
                 3'b000 : prer [ 7:0] <= #1 wb_dat_i;
                 3'b001 : prer [15:8] <= #1 wb_dat_i;
                 3'b001 : prer [15:8] <= #1 wb_dat_i;
                 3'b010 : ctr         <= #1 wb_dat_i;
                 3'b010 : ctr         <= #1 wb_dat_i;
                 3'b011 : txr         <= #1 wb_dat_i;
                 3'b011 : txr         <= #1 wb_dat_i;
 
                 default: ;
              endcase
              endcase
 
 
        // generate command register (special case)
        // generate command register (special case)
        always @(posedge wb_clk_i or negedge rst_i)
        always @(posedge wb_clk_i or negedge rst_i)
          if (~rst_i)
          if (~rst_i)

powered by: WebSVN 2.1.0

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