Line 44... |
Line 44... |
parameter DWIDTH = 16) // Data bus width
|
parameter DWIDTH = 16) // Data bus width
|
(
|
(
|
// Wishbone Slave Signals
|
// Wishbone Slave Signals
|
output [DWIDTH-1:0] wbs_dat_o, // databus output
|
output [DWIDTH-1:0] wbs_dat_o, // databus output
|
output wbs_ack_o, // bus cycle acknowledge output
|
output wbs_ack_o, // bus cycle acknowledge output
|
|
output wbs_err_o, // bus error, lost module select durning wait state
|
input wbs_clk_i, // master clock input
|
input wbs_clk_i, // master clock input
|
input wbs_rst_i, // synchronous active high reset
|
input wbs_rst_i, // synchronous active high reset
|
input arst_i, // asynchronous reset
|
input arst_i, // asynchronous reset
|
input [5:1] wbs_adr_i, // lower address bits
|
input [5:1] wbs_adr_i, // lower address bits
|
input [DWIDTH-1:0] wbs_dat_i, // databus input
|
input [DWIDTH-1:0] wbs_dat_i, // databus input
|
Line 141... |
Line 142... |
wire [15:0] read_mem_data; //
|
wire [15:0] read_mem_data; //
|
wire mem_access; //
|
wire mem_access; //
|
wire mem_req_ack; //
|
wire mem_req_ack; //
|
|
|
wire debug_active; // RISC state machine in Debug mode
|
wire debug_active; // RISC state machine in Debug mode
|
|
wire debug_ack; // Clear debug register
|
|
wire single_step; // Pulse to trigger a single instruction execution in debug mode
|
|
wire ss_mem_ack; // WISHBONE Bus has granted single step memory access
|
|
|
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 155... |
Line 159... |
xgate_wbs_bus #(.ARST_LVL(ARST_LVL),
|
xgate_wbs_bus #(.ARST_LVL(ARST_LVL),
|
.SINGLE_CYCLE(SINGLE_CYCLE))
|
.SINGLE_CYCLE(SINGLE_CYCLE))
|
wishbone_s(
|
wishbone_s(
|
.wbs_dat_o( wbs_dat_o ),
|
.wbs_dat_o( wbs_dat_o ),
|
.wbs_ack_o( wbs_ack_o ),
|
.wbs_ack_o( wbs_ack_o ),
|
|
.wbs_err_o( wbs_err_o ),
|
.wbs_clk_i( wbs_clk_i ),
|
.wbs_clk_i( wbs_clk_i ),
|
.wbs_rst_i( wbs_rst_i ),
|
.wbs_rst_i( wbs_rst_i ),
|
.arst_i( arst_i ),
|
.arst_i( arst_i ),
|
.wbs_adr_i( wbs_adr_i ),
|
.wbs_adr_i( wbs_adr_i ),
|
.wbs_dat_i( wbs_dat_i ),
|
.wbs_dat_i( wbs_dat_i ),
|
Line 263... |
Line 268... |
.write_xgif_4( write_xgif_4 ),
|
.write_xgif_4( write_xgif_4 ),
|
.write_xgif_3( write_xgif_3 ),
|
.write_xgif_3( write_xgif_3 ),
|
.write_xgif_2( write_xgif_2 ),
|
.write_xgif_2( write_xgif_2 ),
|
.write_xgif_1( write_xgif_1 ),
|
.write_xgif_1( write_xgif_1 ),
|
.write_xgif_0( write_xgif_0 ),
|
.write_xgif_0( write_xgif_0 ),
|
.write_xgswt( write_xgswt )
|
.write_xgswt( write_xgswt ),
|
|
.debug_ack( debug_ack )
|
);
|
);
|
|
|
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
xgate_risc #(.MAX_CHANNEL(MAX_CHANNEL))
|
xgate_risc #(.MAX_CHANNEL(MAX_CHANNEL))
|
risc(
|
risc(
|
Line 289... |
Line 295... |
.xgr5( xgr5 ),
|
.xgr5( xgr5 ),
|
.xgr6( xgr6 ),
|
.xgr6( xgr6 ),
|
.xgr7( xgr7 ),
|
.xgr7( xgr7 ),
|
.xgif_status( xgif_status ),
|
.xgif_status( xgif_status ),
|
.debug_active( debug_active ),
|
.debug_active( debug_active ),
|
|
.debug_ack( debug_ack ),
|
.xg_sw_irq( xg_sw_irq ),
|
.xg_sw_irq( xg_sw_irq ),
|
.mem_access( mem_access ),
|
.mem_access( mem_access ),
|
|
.single_step( single_step ),
|
|
|
// 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 ),
|
.read_mem_data( read_mem_data ),
|
.read_mem_data( read_mem_data ),
|
.mem_req_ack( mem_req_ack ),
|
.mem_req_ack( mem_req_ack ),
|
|
.ss_mem_ack( ss_mem_ack ),
|
.xge( xge ),
|
.xge( xge ),
|
.xgdbg_set( xgdbg_set ),
|
.xgdbg_set( xgdbg_set ),
|
.xgdbg_clear( xgdbg_clear ),
|
.xgdbg_clear( xgdbg_clear ),
|
.debug_mode_i(debug_mode_i),
|
.debug_mode_i(debug_mode_i),
|
.xgss( xgss ),
|
.xgss( xgss ),
|
Line 355... |
Line 364... |
.wbm_ack_i( wbm_ack_i ),
|
.wbm_ack_i( wbm_ack_i ),
|
.wbs_clk_i( wbs_clk_i ),
|
.wbs_clk_i( wbs_clk_i ),
|
.wbs_rst_i( wbs_rst_i ),
|
.wbs_rst_i( wbs_rst_i ),
|
.arst_i( arst_i ),
|
.arst_i( arst_i ),
|
// XGATE Control Signals
|
// XGATE Control Signals
|
|
.risc_clk( risc_clk ),
|
|
.async_rst_b( async_rst_b ),
|
.xge( xge ),
|
.xge( xge ),
|
.mem_access( mem_access ),
|
.mem_access( mem_access ),
|
|
.single_step( single_step ),
|
|
.ss_mem_ack( ss_mem_ack ),
|
.read_mem_data( read_mem_data ),
|
.read_mem_data( read_mem_data ),
|
.xgate_address( xgate_address ),
|
.xgate_address( xgate_address ),
|
.mem_req_ack( mem_req_ack ),
|
.mem_req_ack( mem_req_ack ),
|
.write_mem_strb_l( write_mem_strb_l ),
|
.write_mem_strb_l( write_mem_strb_l ),
|
.write_mem_strb_h( write_mem_strb_h ),
|
.write_mem_strb_h( write_mem_strb_h ),
|