Line 66... |
Line 66... |
input wbm_ack_i, // bus cycle acknowledge input
|
input wbm_ack_i, // bus cycle acknowledge input
|
// XGATE IO Signals
|
// XGATE IO Signals
|
output [ 7:0] xgswt, // XGATE Software Trigger Register
|
output [ 7:0] xgswt, // XGATE Software Trigger Register
|
output write_mem_strb_l, // Strobe for writing low data byte
|
output write_mem_strb_l, // Strobe for writing low data byte
|
output write_mem_strb_h, // Strobe for writing high data bye
|
output write_mem_strb_h, // Strobe for writing high data bye
|
|
output xg_sw_irq, // Xgate Software interrupt
|
output [MAX_CHANNEL:0] xgif, // XGATE Interrupt Flag
|
output [MAX_CHANNEL:0] xgif, // XGATE Interrupt Flag
|
input [MAX_CHANNEL:0] chan_req_i, // XGATE Interrupt request
|
input [MAX_CHANNEL:0] chan_req_i, // XGATE Interrupt request
|
input risc_clk, // Clock for RISC core
|
input risc_clk, // Clock for RISC core
|
input scantestmode // Chip in in scan test mode
|
input scantestmode // Chip in in scan test mode
|
);
|
);
|
Line 130... |
Line 131... |
wire xgsweif_c; // Clear XGATE Software Error Interrupt FLag
|
wire xgsweif_c; // Clear XGATE Software Error Interrupt FLag
|
wire xgie; // XGATE Interrupt Enable
|
wire xgie; // XGATE Interrupt Enable
|
wire [ 6:0] int_req; // Encoded interrupt request
|
wire [ 6:0] int_req; // Encoded interrupt request
|
wire [ 6:0] xgchid; // Channel actively being processed
|
wire [ 6:0] xgchid; // Channel actively being processed
|
wire [15:1] xgvbr; // XGATE vector Base Address Register
|
wire [15:1] xgvbr; // XGATE vector Base Address Register
|
|
wire brk_irq_ena; // Enable BRK instruction to generate interrupt
|
|
|
wire [15:0] xgate_address; //
|
wire [15:0] xgate_address; //
|
wire [15:0] write_mem_data; //
|
wire [15:0] write_mem_data; //
|
wire [15:0] read_mem_data; //
|
wire [15:0] read_mem_data; //
|
wire mem_req_ack; //
|
wire mem_req_ack; //
|
|
|
|
wire debug_active; // RISC state machine in Debug mode
|
|
|
wire [ 7:0] host_semap; // Semaphore status for host
|
wire [ 7:0] host_semap; // Semaphore status for host
|
// wire [15:0] write_mem_data;
|
// wire [15:0] write_mem_data;
|
// wire [15:0] read_mem_data;
|
// wire [15:0] read_mem_data;
|
// wire [15:0] perif_data;
|
// wire [15:0] perif_data;
|
|
|
Line 212... |
Line 216... |
xgif[127:112], // XGIF_7
|
xgif[127:112], // XGIF_7
|
{xgvbr[15:1], 1'b0}, // XGVBR
|
{xgvbr[15:1], 1'b0}, // XGVBR
|
xgisp30, // Reserved
|
xgisp30, // Reserved
|
xgisp74, // Reserved
|
xgisp74, // Reserved
|
{8'b0, 1'b0, xgchid}, // XGCHID
|
{8'b0, 1'b0, xgchid}, // XGCHID
|
{8'b0, xge, xgfrz, 1'b0, xgdbg, 2'b0, 1'b0, xgie} // XGMCTL
|
{8'b0, xge, xgfrz, debug_active, 1'b0, 2'b0, xg_sw_irq, xgie} // XGMCTL
|
}
|
}
|
)
|
)
|
);
|
);
|
|
|
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
Line 228... |
Line 232... |
.xgfrz( xgfrz ),
|
.xgfrz( xgfrz ),
|
.xgdbg( xgdbg ),
|
.xgdbg( xgdbg ),
|
.xgss( xgss ),
|
.xgss( xgss ),
|
.xgsweif_c( xgsweif_c ),
|
.xgsweif_c( xgsweif_c ),
|
.xgie( xgie ),
|
.xgie( xgie ),
|
|
.brk_irq_ena( brk_irq_ena ),
|
.xgvbr( xgvbr ),
|
.xgvbr( xgvbr ),
|
.xgswt( xgswt ),
|
.xgswt( xgswt ),
|
.xgisp74( xgisp74 ),
|
.xgisp74( xgisp74 ),
|
.xgisp30( xgisp30 ),
|
.xgisp30( xgisp30 ),
|
.clear_xgif_7( clear_xgif_7 ),
|
.clear_xgif_7( clear_xgif_7 ),
|
Line 286... |
Line 291... |
.xgr4( xgr4 ),
|
.xgr4( xgr4 ),
|
.xgr5( xgr5 ),
|
.xgr5( xgr5 ),
|
.xgr6( xgr6 ),
|
.xgr6( xgr6 ),
|
.xgr7( xgr7 ),
|
.xgr7( xgr7 ),
|
.xgif( xgif ),
|
.xgif( xgif ),
|
|
.debug_active( debug_active ),
|
|
.xg_sw_irq( xg_sw_irq ),
|
|
|
// inputs
|
// inputs
|
.risc_clk( risc_clk ),
|
.risc_clk( risc_clk ),
|
.perif_data( wbs_dat_i ),
|
.perif_data( wbs_dat_i ),
|
.async_rst_b( async_rst_b ),
|
.async_rst_b( async_rst_b ),
|
Line 299... |
Line 306... |
.xgfrz( xgfrz ),
|
.xgfrz( xgfrz ),
|
.xgdbg( xgdbg ),
|
.xgdbg( xgdbg ),
|
.xgss( xgss ),
|
.xgss( xgss ),
|
.xgvbr( xgvbr ),
|
.xgvbr( xgvbr ),
|
.int_req( int_req ),
|
.int_req( int_req ),
|
|
.xgie( xgie ),
|
|
.brk_irq_ena( brk_irq_ena ),
|
.write_xgsem( write_xgsem ),
|
.write_xgsem( write_xgsem ),
|
.write_xgccr( write_xgccr ),
|
.write_xgccr( write_xgccr ),
|
.write_xgpc( write_xgpc ),
|
.write_xgpc( write_xgpc ),
|
.write_xgr7( write_xgr7 ),
|
.write_xgr7( write_xgr7 ),
|
.write_xgr6( write_xgr6 ),
|
.write_xgr6( write_xgr6 ),
|
Line 317... |
Line 326... |
.clear_xgif_4( clear_xgif_4 ),
|
.clear_xgif_4( clear_xgif_4 ),
|
.clear_xgif_3( clear_xgif_3 ),
|
.clear_xgif_3( clear_xgif_3 ),
|
.clear_xgif_2( clear_xgif_2 ),
|
.clear_xgif_2( clear_xgif_2 ),
|
.clear_xgif_1( clear_xgif_1 ),
|
.clear_xgif_1( clear_xgif_1 ),
|
.clear_xgif_0( clear_xgif_0 ),
|
.clear_xgif_0( clear_xgif_0 ),
|
|
.xgsweif_c( xgsweif_c ),
|
.clear_xgif_data( clear_xgif_data )
|
.clear_xgif_data( clear_xgif_data )
|
);
|
);
|
|
|
xgate_irq_encode #(.MAX_CHANNEL(MAX_CHANNEL))
|
xgate_irq_encode #(.MAX_CHANNEL(MAX_CHANNEL))
|
irq_encode(
|
irq_encode(
|