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

Subversion Repositories xgate

[/] [xgate/] [trunk/] [rtl/] [verilog/] [xgate_regs.v] - Diff between revs 92 and 96

Show entire file | Details | Blame | View Log

Rev 92 Rev 96
Line 1... Line 1...
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//
//
//  Computer Operating Properly - Control registers
//  XGATE Coprocessor - Control registers
//
//
//  Author: Bob Hayes
//  Author: Bob Hayes
//          rehayes@opencores.org
//          rehayes@opencores.org
//
//
//  Downloaded from: http://www.opencores.org/projects/xgate.....
//  Downloaded from: http://www.opencores.org/projects/xgate.....
Line 58... Line 58...
  output reg                  clear_xgif_3,    // Strobe for decode to clear interrupt flag bank 3
  output reg                  clear_xgif_3,    // Strobe for decode to clear interrupt flag bank 3
  output reg                  clear_xgif_2,    // Strobe for decode to clear interrupt flag bank 2
  output reg                  clear_xgif_2,    // Strobe for decode to clear interrupt flag bank 2
  output reg                  clear_xgif_1,    // Strobe for decode to clear interrupt flag bank 1
  output reg                  clear_xgif_1,    // Strobe for decode to clear interrupt flag bank 1
  output reg                  clear_xgif_0,    // Strobe for decode to clear interrupt flag bank 0
  output reg                  clear_xgif_0,    // Strobe for decode to clear interrupt flag bank 0
  output reg           [15:0] clear_xgif_data, // Data for decode to clear interrupt flag
  output reg           [15:0] clear_xgif_data, // Data for decode to clear interrupt flag
  output                      semaph_stat,     // Return Status of Semaphore bit
 
  output reg                  brk_irq_ena,     // Enable BRK instruction to generate interrupt
  output reg                  brk_irq_ena,     // Enable BRK instruction to generate interrupt
  output      [MAX_CHANNEL:1] chan_bypass,     // XGATE Interrupt enable or bypass
  output      [MAX_CHANNEL:1] chan_bypass,     // XGATE Interrupt enable or bypass
  output reg          [127:1] irq_bypass,      // Register to hold irq bypass control state
  output reg  [MAX_CHANNEL:1] irq_bypass,      // Register to hold irq bypass control state
 
 
  input                       bus_clk,       // Control register bus clock
  input                       bus_clk,       // Control register bus clock
  input                       async_rst_b,   // Async reset signal
  input                       async_rst_b,   // Async reset signal
  input                       sync_reset,    // Syncronous reset signal
  input                       sync_reset,    // Syncronous reset signal
  input                [15:0] write_bus,     // Write Data Bus
  input                [15:0] write_bus,     // Write Data Bus
Line 94... Line 93...
 
 
  integer j;     // Loop counter for channel bypass counter assigments
  integer j;     // Loop counter for channel bypass counter assigments
  integer k;     // Loop counter for channel bypass counter assigments
  integer k;     // Loop counter for channel bypass counter assigments
 
 
  // registers
  // registers
  reg [127:1] irq_bypass_d; // Pseudo regester for routing address and data to irq bypass register
  reg [MAX_CHANNEL:1] irq_bypass_d; // Pseudo regester for routing address and data to irq bypass register
 
 
  // Wires
  // Wires
  wire [ 1:0] write_any_xgif;
  wire [ 1:0] write_any_xgif;
 
 
  //
  //
Line 276... Line 275...
 
 
  //  Channel Bypass Registers
  //  Channel Bypass Registers
  //   Synthesys should eliminate bits that with D input tied to zero
  //   Synthesys should eliminate bits that with D input tied to zero
  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 )
      irq_bypass  <= {127{1'b1}};
      irq_bypass  <= {MAX_CHANNEL{1'b1}};
    else if (sync_reset)
    else if (sync_reset)
      irq_bypass  <= {127{1'b1}};
      irq_bypass  <= {MAX_CHANNEL{1'b1}};
    else
    else
      irq_bypass  <= irq_bypass_d;
      irq_bypass  <= irq_bypass_d;
 
 
  // Alias the register name to the output pin name so only the used bit are carried out
  // Alias the register name to the output pin name so only the used bit are carried out
  assign chan_bypass = irq_bypass[MAX_CHANNEL:1];
  assign chan_bypass = irq_bypass[MAX_CHANNEL:1];

powered by: WebSVN 2.1.0

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