代码拉取完成,页面将自动刷新
//A 4-bit adder with carry in and carry out
class alu32 extends Module {
val io = IO(new Bundle {
val in1 = Input(UInt(32.W))
val in2 = Input(UInt(32.W))
val aluop= Input(UInt(2.W))
val out = Output(UInt(65.W))
})
//ALU for adder32
val alu0 = Module(new Adder32())
alu0.io.in1 := io.in1
alu0.io.in2 := io.in2
alu0.io.out(31,0) := io.out
//ALU for sub32
val alu1 = Module(new sub32())
alu1.io.in1 := io.in1
alu1.io.in2 := io.in2
alu1.io.out(31,0) := io.out
//ALU for mul32
val alu2 = Module(new mul32())
alu2.io.in1 := io.in1
alu2.io.in2 := io.in2
alu2.io.in2 := io.out
//ALU for div32
val alu3 = Module(new div32())
alu3.io.in1 := io.in1
alu3.io.in2 := io.in2
alu3.io.in2(31,0) := io.out
switch(io.aluop)
{
is(0.U) {io.out := alu0.io.out}
is(1.U) {io.out := alu1.io.out}
is(2.U) {io.out := alu2.io.out}
is(3.U) {io.out := alu3.io.out}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。