Line 1... |
Line 1... |
/* $Id: aeMB2_edk32.v,v 1.4 2007-12-13 20:12:11 sybreon Exp $
|
/* $Id: aeMB2_edk32.v,v 1.5 2007-12-13 21:25:41 sybreon Exp $
|
**
|
**
|
** AEMB2 HI-PERFORMANCE CPU
|
** AEMB2 HI-PERFORMANCE CPU
|
**
|
**
|
** Copyright (C) 2004-2007 Shawn Tan Ser Ngiap <shawn.tan@aeste.net>
|
** Copyright (C) 2004-2007 Shawn Tan Ser Ngiap <shawn.tan@aeste.net>
|
**
|
**
|
Line 27... |
Line 27... |
cwb_tga_o, cwb_stb_o, cwb_sel_o, cwb_dat_o, cwb_adr_o,
|
cwb_tga_o, cwb_stb_o, cwb_sel_o, cwb_dat_o, cwb_adr_o,
|
// Inputs
|
// Inputs
|
sys_rst_i, sys_int_i, sys_clk_i, iwb_dat_i, iwb_ack_i, dwb_dat_i,
|
sys_rst_i, sys_int_i, sys_clk_i, iwb_dat_i, iwb_ack_i, dwb_dat_i,
|
dwb_ack_i, cwb_dat_i, cwb_ack_i
|
dwb_ack_i, cwb_dat_i, cwb_ack_i
|
);
|
);
|
parameter IWB = 32; ///< instruction wishbone address space
|
parameter IWB = 32; // instruction wishbone address space
|
parameter DWB = 32; ///< data wishbone address space
|
parameter DWB = 32; // data wishbone address space
|
|
|
parameter TXE = 1; ///< thread execution extension
|
parameter TXE = 1; // thread execution extension
|
|
|
parameter MUL = 1; ///< enable hardware multiplier
|
parameter MUL = 1; // enable multiply instruction
|
parameter BSF = 1; ///< enable barrel shifter
|
parameter BSF = 1; // enable barrel shift instructions
|
parameter FSL = 1; ///< enable FSL bus
|
parameter FSL = 1; // enable get/put instructions
|
|
|
/*AUTOOUTPUT*/
|
/*AUTOOUTPUT*/
|
// Beginning of automatic outputs (from unused autoinst outputs)
|
// Beginning of automatic outputs (from unused autoinst outputs)
|
output [6:2] cwb_adr_o; // From aslu of aeMB2_aslu.v
|
output [6:2] cwb_adr_o; // From aslu of aeMB2_aslu.v
|
output [31:0] cwb_dat_o; // From regf of aeMB2_regf.v
|
output [31:0] cwb_dat_o; // From regf of aeMB2_regf.v
|
Line 516... |
Line 516... |
endcase // case (rBRA)
|
endcase // case (rBRA)
|
|
|
// WRITEBACK
|
// WRITEBACK
|
$write("\t|");
|
$write("\t|");
|
|
|
if (regf.fWRE) begin
|
if (|rRD_MA) begin
|
case (rOPD_MA)
|
case (rOPD_MA)
|
2'o2: begin
|
2'o2: begin
|
if (rSEL_MA != 4'h0) $writeh("R",rRD_MA,"=RAM(",regf.rREGD,")");
|
if (rSEL_MA != 4'h0) $writeh("R",rRD_MA,"=RAM(",regf.rREGD,")");
|
if (rSEL_MA == 4'h0) $writeh("R",rRD_MA,"=FSL(",regf.rREGD,")");
|
if (rSEL_MA == 4'h0) $writeh("R",rRD_MA,"=FSL(",regf.rREGD,")");
|
end
|
end
|
Line 546... |
Line 546... |
// synopsys translate_on
|
// synopsys translate_on
|
|
|
endmodule // aeMB2_edk32
|
endmodule // aeMB2_edk32
|
|
|
/* $Log: not supported by cvs2svn $
|
/* $Log: not supported by cvs2svn $
|
|
/* Revision 1.4 2007/12/13 20:12:11 sybreon
|
|
/* Code cleanup + minor speed regression.
|
|
/*
|
/* Revision 1.3 2007/12/12 19:16:59 sybreon
|
/* Revision 1.3 2007/12/12 19:16:59 sybreon
|
/* Minor optimisations (~10% faster)
|
/* Minor optimisations (~10% faster)
|
/*
|
/*
|
/* Revision 1.2 2007/12/11 00:43:17 sybreon
|
/* Revision 1.2 2007/12/11 00:43:17 sybreon
|
/* initial import
|
/* initial import
|