Line 43... |
Line 43... |
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
//
|
//
|
// CVS Revision History
|
// CVS Revision History
|
//
|
//
|
// $Log: not supported by cvs2svn $
|
// $Log: not supported by cvs2svn $
|
|
// Revision 1.3 2003/04/24 00:16:07 lampret
|
|
// No functional changes. Added defines to disable implementation of multiplier/MAC
|
|
//
|
// Revision 1.2 2002/09/08 05:52:16 lampret
|
// Revision 1.2 2002/09/08 05:52:16 lampret
|
// Added optional l.div/l.divu insns. By default they are disabled.
|
// Added optional l.div/l.divu insns. By default they are disabled.
|
//
|
//
|
// Revision 1.1 2002/01/03 08:16:15 lampret
|
// Revision 1.1 2002/01/03 08:16:15 lampret
|
// New prefixes for RTL files, prefixed module names. Updated cache controllers and MMUs.
|
// New prefixes for RTL files, prefixed module names. Updated cache controllers and MMUs.
|
Line 163... |
Line 166... |
`endif
|
`endif
|
`ifdef OR1200_LOWPWR_MULT
|
`ifdef OR1200_LOWPWR_MULT
|
assign x = (alu_op_div & a[31]) ? ~a + 1'b1 : alu_op_div_divu | (alu_op == `OR1200_ALUOP_MUL) | (|mac_op) ? a : 32'h0000_0000;
|
assign x = (alu_op_div & a[31]) ? ~a + 1'b1 : alu_op_div_divu | (alu_op == `OR1200_ALUOP_MUL) | (|mac_op) ? a : 32'h0000_0000;
|
assign y = (alu_op_div & b[31]) ? ~b + 1'b1 : alu_op_div_divu | (alu_op == `OR1200_ALUOP_MUL) | (|mac_op) ? b : 32'h0000_0000;
|
assign y = (alu_op_div & b[31]) ? ~b + 1'b1 : alu_op_div_divu | (alu_op == `OR1200_ALUOP_MUL) | (|mac_op) ? b : 32'h0000_0000;
|
`else
|
`else
|
assign x = alu_op_div & a[31] ? ~a + 1'b1 : a;
|
assign x = alu_op_div & a[31] ? ~a + 32'b1 : a;
|
assign y = alu_op_div & b[31] ? ~b + 1'b1 : b;
|
assign y = alu_op_div & b[31] ? ~b + 32'b1 : b;
|
`endif
|
`endif
|
`ifdef OR1200_IMPL_DIV
|
`ifdef OR1200_IMPL_DIV
|
assign alu_op_div = (alu_op == `OR1200_ALUOP_DIV);
|
assign alu_op_div = (alu_op == `OR1200_ALUOP_DIV);
|
assign alu_op_div_divu = alu_op_div | (alu_op == `OR1200_ALUOP_DIVU);
|
assign alu_op_div_divu = alu_op_div | (alu_op == `OR1200_ALUOP_DIVU);
|
assign div_tmp = mul_prod_r[63:32] - y;
|
assign div_tmp = mul_prod_r[63:32] - y;
|