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

Subversion Repositories xgate

[/] [xgate/] [trunk/] [rtl/] [verilog/] [xgate_regs.v] - Diff between revs 12 and 15

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

Rev 12 Rev 15
Line 41... Line 41...
module xgate_regs #(parameter ARST_LVL = 1'b0,    // asynchronous reset level
module xgate_regs #(parameter ARST_LVL = 1'b0,    // asynchronous reset level
                    parameter MAX_CHANNEL = 127)  // Max XGATE Interrupt Channel Number
                    parameter MAX_CHANNEL = 127)  // Max XGATE Interrupt Channel Number
  (
  (
  output reg                  xge,          // XGATE Module Enable
  output reg                  xge,          // XGATE Module Enable
  output reg                  xgfrz,        // Stop XGATE in Freeze Mode
  output reg                  xgfrz,        // Stop XGATE in Freeze Mode
  output reg                  xgdbg,        // XGATE Debug Mode
  output reg                  xgdbg_set,    // Enter XGATE Debug Mode
 
  output reg                  xgdbg_clear,  // Leave XGATE Debug Mode
  output reg                  xgss,         // XGATE Single Step
  output reg                  xgss,         // XGATE Single Step
  output reg                  xgfact,       // XGATE Flag Activity
  output reg                  xgfact,       // XGATE Flag Activity
  output reg                  xgsweif_c,    // Clear XGATE Software Error Interrupt FLag
  output reg                  xgsweif_c,    // Clear XGATE Software Error Interrupt FLag
  output reg                  xgie,         // XGATE Interrupt Enable
  output reg                  xgie,         // XGATE Interrupt Enable
  output reg           [15:1] xgvbr,        // XGATE vector Base Address Register
  output reg           [15:1] xgvbr,        // XGATE vector Base Address Register
Line 97... Line 98...
  //
  //
 
 
 
 
  // generate wishbone write registers
  // generate wishbone write registers
  // XGMCTL Register
  // XGMCTL Register
  //  xgdbgm;    // XGATE Debug Mode Mask
 
  always @(posedge bus_clk or negedge async_rst_b)
  always @(posedge bus_clk or negedge async_rst_b)
    if (!async_rst_b)
    if (!async_rst_b)
      begin
      begin
        xge         <= 1'b0;
        xge         <= 1'b0;
        xgfrz       <= 1'b0;
        xgfrz       <= 1'b0;
        xgdbg       <= 1'b0;
        xgdbg_set   <= 1'b0;
 
        xgdbg_clear <= 1'b0;
        xgss        <= 1'b0;
        xgss        <= 1'b0;
        xgfact      <= 1'b0;
        xgfact      <= 1'b0;
        brk_irq_ena <= 1'b0;
        brk_irq_ena <= 1'b0;
        xgsweif_c   <= 1'b0;
        xgsweif_c   <= 1'b0;
        xgie        <= 1'b0;
        xgie        <= 1'b0;
       end
       end
    else if (sync_reset)
    else if (sync_reset)
      begin
      begin
        xge         <= 1'b0;
        xge         <= 1'b0;
        xgfrz       <= 1'b0;
        xgfrz       <= 1'b0;
        xgdbg       <= 1'b0;
        xgdbg_set   <= 1'b0;
 
        xgdbg_clear <= 1'b0;
        xgss        <= 1'b0;
        xgss        <= 1'b0;
        xgfact      <= 1'b0;
        xgfact      <= 1'b0;
        brk_irq_ena <= 1'b0;
        brk_irq_ena <= 1'b0;
        xgsweif_c   <= 1'b0;
        xgsweif_c   <= 1'b0;
        xgie        <= 1'b0;
        xgie        <= 1'b0;
     end
     end
    else if (write_xgmctl)
    else if (write_xgmctl)
      begin
      begin
        xge         <= write_bus[15] ? write_bus[7] : xge;
        xge         <= write_bus[15] ? write_bus[7] : xge;
        xgfrz       <= write_bus[14] ? write_bus[6] : xgfrz;
        xgfrz       <= write_bus[14] ? write_bus[6] : xgfrz;
        xgdbg       <= write_bus[13] ? write_bus[5] : xgdbg;
        xgdbg_set   <= write_bus[13] && write_bus[5];
 
        xgdbg_clear <= write_bus[13] && !write_bus[5];
        xgss        <= write_bus[12] && write_bus[4];
        xgss        <= write_bus[12] && write_bus[4];
        xgfact      <= write_bus[11] ? write_bus[3] : xgfact;
        xgfact      <= write_bus[11] ? write_bus[3] : xgfact;
        brk_irq_ena <= write_bus[10] ? write_bus[2] : brk_irq_ena;
        brk_irq_ena <= write_bus[10] ? write_bus[2] : brk_irq_ena;
        xgsweif_c   <= write_bus[ 9] && write_bus[1];
        xgsweif_c   <= write_bus[ 9] && write_bus[1];
        xgie        <= write_bus[ 8] ? write_bus[0] : xgie;
        xgie        <= write_bus[ 8] ? write_bus[0] : xgie;
      end
      end
    else
    else
      begin
      begin
        xgss       <= 1'b0;
        xgss       <= 1'b0;
        xgsweif_c  <= 1'b0;
        xgsweif_c  <= 1'b0;
 
        xgdbg_set   <= 1'b0;
 
        xgdbg_clear <= 1'b0;
      end
      end
 
 
  // XGVBR Register
  // XGVBR Register
  always @(posedge bus_clk or negedge async_rst_b)
  always @(posedge bus_clk or negedge async_rst_b)
    if (!async_rst_b)
    if (!async_rst_b)

powered by: WebSVN 2.1.0

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