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

Subversion Repositories xgate

[/] [xgate/] [trunk/] [rtl/] [verilog/] [xgate_wbs_bus.v] - Diff between revs 5 and 17

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

Rev 5 Rev 17
Line 54... Line 54...
  input                    wbs_stb_i,     // stobe/core select signal
  input                    wbs_stb_i,     // stobe/core select signal
  input                    wbs_cyc_i,     // valid bus cycle input
  input                    wbs_cyc_i,     // valid bus cycle input
  input              [1:0] wbs_sel_i,     // Select byte in word bus transaction
  input              [1:0] wbs_sel_i,     // Select byte in word bus transaction
  // XGATE Control Signals
  // XGATE Control Signals
  output reg               write_xgmctl, // Write Strobe for XGMCTL register
  output reg               write_xgmctl, // Write Strobe for XGMCTL register
 
  output reg               write_xgchid, // Write Strobe for XGCHID register
  output reg               write_xgisp74,// Write Strobe for XGISP74 register
  output reg               write_xgisp74,// Write Strobe for XGISP74 register
  output reg               write_xgisp30,// Write Strobe for XGISP30 register
  output reg               write_xgisp30,// Write Strobe for XGISP30 register
  output reg               write_xgvbr,  // Write Strobe for XGVBR register
  output reg               write_xgvbr,  // Write Strobe for XGVBR register
  output reg               write_xgif_7, // Write Strobe for Interrupt Flag Register 7
  output reg               write_xgif_7, // Write Strobe for Interrupt Flag Register 7
  output reg               write_xgif_6, // Write Strobe for Interrupt Flag Register 6
  output reg               write_xgif_6, // Write Strobe for Interrupt Flag Register 6
Line 87... Line 88...
  // registers
  // registers
  reg                bus_wait_state;  // Holdoff wbs_ack_o for one clock to add wait state
  reg                bus_wait_state;  // Holdoff wbs_ack_o for one clock to add wait state
  reg  [DWIDTH-1:0]  rd_data_mux;     // Pseudo Register, WISHBONE Read Data Mux
  reg  [DWIDTH-1:0]  rd_data_mux;     // Pseudo Register, WISHBONE Read Data Mux
  reg  [DWIDTH-1:0]  rd_data_reg;     // Latch for WISHBONE Read Data
  reg  [DWIDTH-1:0]  rd_data_reg;     // Latch for WISHBONE Read Data
 
 
  reg                write_reserv;    // Dummy Reg decode for Reserved address
  reg                write_reserv1;   // Dummy Reg decode for Reserved address
 
  reg                write_reserv2;   // Dummy Reg decode for Reserved address
 
 
  // Wires
  // Wires
  wire   module_sel;       // This module is selected for bus transaction
  wire   module_sel;       // This module is selected for bus transaction
  wire   wbs_wacc;         // WISHBONE Write Strobe (Clock gating signal)
  wire   wbs_wacc;         // WISHBONE Write Strobe (Clock gating signal)
  wire   wbs_racc;         // WISHBONE Read Access (Clock gating signal)
  wire   wbs_racc;         // WISHBONE Read Access (Clock gating signal)
Line 161... Line 163...
      endcase
      endcase
 
 
  // generate wishbone write register strobes
  // generate wishbone write register strobes
  always @*
  always @*
    begin
    begin
      write_reserv = 1'b0;
      write_reserv1 = 1'b0;
 
      write_reserv2 = 1'b0;
      write_xgmctl = 1'b0;
      write_xgmctl = 1'b0;
 
      write_xgchid  = 1'b0;
      write_xgisp74 = 1'b0;
      write_xgisp74 = 1'b0;
      write_xgisp30 = 1'b0;
      write_xgisp30 = 1'b0;
      write_xgvbr  = 1'b0;
      write_xgvbr  = 1'b0;
      write_xgif_7 = 1'b0;
      write_xgif_7 = 1'b0;
      write_xgif_6 = 1'b0;
      write_xgif_6 = 1'b0;
Line 190... Line 194...
      write_xgr1   = 1'b0;
      write_xgr1   = 1'b0;
      if (wbs_wacc)
      if (wbs_wacc)
        case (wbs_adr_i) // synopsys parallel_case
        case (wbs_adr_i) // synopsys parallel_case
           // 16 bit Bus, 16 bit Granularity
           // 16 bit Bus, 16 bit Granularity
           5'b0_0000 : write_xgmctl  = 1'b1;
           5'b0_0000 : write_xgmctl  = 1'b1;
//         5'b0_0001 : write_xgchid  = 1'b1;
           5'b0_0001 : write_xgchid  = 1'b1;
           5'b0_0010 : write_xgisp74 = 1'b1;
           5'b0_0010 : write_xgisp74 = 1'b1;
           5'b0_0011 : write_xgisp30 = 1'b1;
           5'b0_0011 : write_xgisp30 = 1'b1;
           5'b0_0100 : write_xgvbr   = 1'b1;
           5'b0_0100 : write_xgvbr   = 1'b1;
           5'b0_0101 : write_xgif_7  = 1'b1;
           5'b0_0101 : write_xgif_7  = 1'b1;
           5'b0_0110 : write_xgif_6  = 1'b1;
           5'b0_0110 : write_xgif_6  = 1'b1;
Line 204... Line 208...
           5'b0_1010 : write_xgif_2  = 1'b1;
           5'b0_1010 : write_xgif_2  = 1'b1;
           5'b0_1011 : write_xgif_1  = 1'b1;
           5'b0_1011 : write_xgif_1  = 1'b1;
           5'b0_1100 : write_xgif_0  = 1'b1;
           5'b0_1100 : write_xgif_0  = 1'b1;
           5'b0_1101 : write_xgswt   = 1'b1;
           5'b0_1101 : write_xgswt   = 1'b1;
           5'b0_1110 : write_xgsem   = 1'b1;
           5'b0_1110 : write_xgsem   = 1'b1;
           5'b0_1111 : write_reserv  = 1'b1;
           5'b0_1111 : write_reserv1 = 1'b1;
           5'b1_0000 : write_xgccr   = 1'b1;
           5'b1_0000 : write_xgccr   = 1'b1;
           5'b1_0001 : write_xgpc    = 1'b1;
           5'b1_0001 : write_xgpc    = 1'b1;
           5'b1_0010 : write_reserv  = 1'b1;
           5'b1_0010 : write_reserv2 = 1'b1;
           5'b1_0011 : write_xgr1    = 1'b1;
           5'b1_0011 : write_xgr1    = 1'b1;
           5'b1_0100 : write_xgr2    = 1'b1;
           5'b1_0100 : write_xgr2    = 1'b1;
           5'b1_0101 : write_xgr3    = 1'b1;
           5'b1_0101 : write_xgr3    = 1'b1;
           5'b1_0110 : write_xgr4    = 1'b1;
           5'b1_0110 : write_xgr4    = 1'b1;
           5'b1_0111 : write_xgr5    = 1'b1;
           5'b1_0111 : write_xgr5    = 1'b1;

powered by: WebSVN 2.1.0

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