Line 30... |
Line 30... |
module aeMB2_dwbif (/*AUTOARG*/
|
module aeMB2_dwbif (/*AUTOARG*/
|
// Outputs
|
// Outputs
|
dwb_adr_o, dwb_sel_o, dwb_stb_o, dwb_cyc_o, dwb_tag_o, dwb_wre_o,
|
dwb_adr_o, dwb_sel_o, dwb_stb_o, dwb_cyc_o, dwb_tag_o, dwb_wre_o,
|
dwb_dat_o, dwb_fb, sel_mx, dwb_mx, exc_dwb,
|
dwb_dat_o, dwb_fb, sel_mx, dwb_mx, exc_dwb,
|
// Inputs
|
// Inputs
|
dwb_dat_i, dwb_ack_i, imm_of, opd_of, opc_of, opa_of,
|
dwb_dat_i, dwb_ack_i, imm_of, opd_of, opc_of, opa_of, opb_of,
|
opb_of, msr_ex, mem_ex, sfr_mx, gclk, grst, dena, gpha
|
msr_ex, mem_ex, sfr_mx, gclk, grst, dena, gpha
|
);
|
);
|
parameter AEMB_DWB = 32; ///< data bus address width
|
parameter AEMB_DWB = 32; ///< data bus address width
|
|
|
// DWB control signals
|
// DWB control signals
|
output [AEMB_DWB-1:2] dwb_adr_o;
|
output [AEMB_DWB-1:2] dwb_adr_o;
|
Line 70... |
Line 70... |
grst,
|
grst,
|
dena,
|
dena,
|
gpha;
|
gpha;
|
|
|
/*AUTOREG*/
|
/*AUTOREG*/
|
reg [3:0] dwb_sel_o;
|
// Beginning of automatic regs (for this module's undeclared outputs)
|
reg dwb_stb_o, dwb_cyc_o, dwb_wre_o;
|
reg dwb_cyc_o;
|
reg [31:0] dwb_dat_o;
|
reg [31:0] dwb_dat_o;
|
reg [3:0] sel_mx;
|
|
reg [31:0] dwb_mx;
|
reg [31:0] dwb_mx;
|
|
reg [3:0] dwb_sel_o;
|
|
reg dwb_stb_o;
|
|
reg dwb_wre_o;
|
|
reg [3:0] sel_mx;
|
|
// End of automatics
|
reg dwb_exc;
|
reg dwb_exc;
|
|
|
wire [1:0] wOFF = (opa_of[1:0] + opb_of[1:0]); // small adder
|
wire [1:0] wOFF = (opa_of[1:0] + opb_of[1:0]); // small adder
|
wire [3:0] wSEL = {opc_of[1:0], wOFF}; // byte selector info
|
wire [3:0] wSEL = {opc_of[1:0], wOFF}; // byte selector info
|
|
|