Complete ALU
This commit is contained in:
parent
26bc694325
commit
c98b2fc672
|
@ -128,9 +128,41 @@
|
||||||
$br_tgt_pc[31:0] = $pc + $imm;
|
$br_tgt_pc[31:0] = $pc + $imm;
|
||||||
|
|
||||||
// Arithmetic Logic Unit
|
// Arithmetic Logic Unit
|
||||||
|
$sltu_rslt[31:0] = {31'b0, $src1_value < $src2_value};
|
||||||
|
$sltiu_rslt[31:0] = {31'b0, $src1_value < $imm};
|
||||||
|
|
||||||
|
$sext_src1[63:0] = { {32{$src1_value[31]}}, $src1_value };
|
||||||
|
$sra_rslt[63:0] = $sext_src1 >> $src2_value[4:0];
|
||||||
|
$srai_rslt[63:0] = $sext_src1 >> $imm[4:0];
|
||||||
|
|
||||||
$result[31:0] =
|
$result[31:0] =
|
||||||
|
$is_andi ? $src1_value & $imm :
|
||||||
|
$is_ori ? $src1_value | $imm :
|
||||||
|
$is_xori ? $src1_value ^ $imm :
|
||||||
$is_addi ? $src1_value + $imm :
|
$is_addi ? $src1_value + $imm :
|
||||||
|
$is_slli ? $src1_value << $imm[5:0] :
|
||||||
|
$is_srli ? $src1_value >> $imm[5:0] :
|
||||||
|
$is_and ? $src1_value & $src2_value :
|
||||||
|
$is_or ? $src1_value | $src2_value :
|
||||||
|
$is_xor ? $src1_value ^ $src2_value :
|
||||||
$is_add ? $src1_value + $src2_value :
|
$is_add ? $src1_value + $src2_value :
|
||||||
|
$is_sub ? $src1_value - $src2_value :
|
||||||
|
$is_sll ? $src1_value << $src2_value[4:0] :
|
||||||
|
$is_srl ? $src1_value >> $src2_value[4:0] :
|
||||||
|
$is_sltu ? $sltu_rslt :
|
||||||
|
$is_sltiu ? $sltiu_rslt :
|
||||||
|
$is_lui ? {$imm[31:12], 12'b0} :
|
||||||
|
$is_auipc ? $pc + $imm :
|
||||||
|
$is_jal ? $pc + 32'd4 :
|
||||||
|
$is_jalr ? $pc + 32'd4 :
|
||||||
|
$is_slt ? ( ($src1_value[31] == $src2_value[31]) ?
|
||||||
|
$sltu_rslt :
|
||||||
|
{31'b0, $src1_value[31]} ) :
|
||||||
|
$is_slti ? ( ($src1_value[31] == $imm[31]) ?
|
||||||
|
$sltiu_rslt :
|
||||||
|
{31'b0, $src1_value[31]} ) :
|
||||||
|
$is_sra ? $sra_rslt[31:0] :
|
||||||
|
$is_srai ? $srai_rslt[31:0] :
|
||||||
32'b0;
|
32'b0;
|
||||||
|
|
||||||
// Assert these to end simulation (before Makerchip cycle limit).
|
// Assert these to end simulation (before Makerchip cycle limit).
|
||||||
|
|
Loading…
Reference in New Issue