Line 49... |
Line 49... |
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
|
output reg [ 7:0] xgswt, // XGATE Software Trigger Register for host
|
output reg [ 7:0] xgswt, // XGATE Software Trigger Register for host
|
output reg [15:0] xgisp74, // XGATE Interrupt level 7-4 stack pointer
|
|
output reg [15:0] xgisp30, // XGATE Interrupt level 3-0 stack pointer
|
|
output reg clear_xgif_7, // Strobe for decode to clear interrupt flag bank 7
|
output reg clear_xgif_7, // Strobe for decode to clear interrupt flag bank 7
|
output reg clear_xgif_6, // Strobe for decode to clear interrupt flag bank 6
|
output reg clear_xgif_6, // Strobe for decode to clear interrupt flag bank 6
|
output reg clear_xgif_5, // Strobe for decode to clear interrupt flag bank 5
|
output reg clear_xgif_5, // Strobe for decode to clear interrupt flag bank 5
|
output reg clear_xgif_4, // Strobe for decode to clear interrupt flag bank 4
|
output reg clear_xgif_4, // Strobe for decode to clear interrupt flag bank 4
|
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
|
Line 68... |
Line 66... |
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
|
input write_xgmctl, // Write Strobe for XGMCTL register
|
input write_xgmctl, // Write Strobe for XGMCTL register
|
input write_xgisp74, // Write Strobe for XGISP74 register
|
|
input write_xgisp30, // Write Strobe for XGISP30 register
|
|
input [ 1:0] write_xgvbr, // Write Strobe for XGVBR register
|
input [ 1:0] write_xgvbr, // Write Strobe for XGVBR register
|
input [ 1:0] write_xgif_7, // Write Strobe for Interrupt Flag Register 7
|
input [ 1:0] write_xgif_7, // Write Strobe for Interrupt Flag Register 7
|
input [ 1:0] write_xgif_6, // Write Strobe for Interrupt Flag Register 6
|
input [ 1:0] write_xgif_6, // Write Strobe for Interrupt Flag Register 6
|
input [ 1:0] write_xgif_5, // Write Strobe for Interrupt Flag Register 5
|
input [ 1:0] write_xgif_5, // Write Strobe for Interrupt Flag Register 5
|
input [ 1:0] write_xgif_4, // Write Strobe for Interrupt Flag Register 4
|
input [ 1:0] write_xgif_4, // Write Strobe for Interrupt Flag Register 4
|
Line 156... |
Line 152... |
begin
|
begin
|
xgvbr[15:8] <= write_xgvbr[1] ? write_bus[15:8] : xgvbr[15:8];
|
xgvbr[15:8] <= write_xgvbr[1] ? write_bus[15:8] : xgvbr[15:8];
|
xgvbr[ 7:1] <= write_xgvbr[0] ? write_bus[ 7:1] : xgvbr[ 7:1];
|
xgvbr[ 7:1] <= write_xgvbr[0] ? write_bus[ 7:1] : xgvbr[ 7:1];
|
end
|
end
|
|
|
// XGISP74 Register
|
|
always @(posedge bus_clk or negedge async_rst_b)
|
|
if (!async_rst_b)
|
|
xgisp74 <= 16'b0;
|
|
else if (sync_reset)
|
|
xgisp74 <= 16'b0;
|
|
else if (write_xgisp74)
|
|
xgisp74 <= xge ? xgisp74 : write_bus;
|
|
|
|
// XGISP30 Register
|
|
always @(posedge bus_clk or negedge async_rst_b)
|
|
if (!async_rst_b)
|
|
xgisp30 <= 16'b0;
|
|
else if (sync_reset)
|
|
xgisp30 <= 16'b0;
|
|
else if (write_xgisp30)
|
|
xgisp30 <= xge ? xgisp30 : write_bus;
|
|
|
|
// XGIF 7-0 Registers
|
// XGIF 7-0 Registers
|
assign write_any_xgif = write_xgif_7 | write_xgif_6 | write_xgif_5 | write_xgif_4 |
|
assign write_any_xgif = write_xgif_7 | write_xgif_6 | write_xgif_5 | write_xgif_4 |
|
write_xgif_3 | write_xgif_2 | write_xgif_1 | write_xgif_0;
|
write_xgif_3 | write_xgif_2 | write_xgif_1 | write_xgif_0;
|
|
|
// Registers to clear the interrupt flags. Decode a specific interrupt to
|
// Registers to clear the interrupt flags. Decode a specific interrupt to
|