mirror of
https://github.com/YosysHQ/nextpnr.git
synced 2026-01-11 23:53:21 +00:00
Gowin. Optimize ALU. (#1556)
By replacing the operation of adding the input to itself with a specially formed LUT, we free up two PIPs. Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
This commit is contained in:
parent
00cf81e463
commit
4ab735c690
@ -1894,15 +1894,11 @@ struct GowinPacker
|
||||
return cin_ci;
|
||||
}
|
||||
// CIN from logic
|
||||
cin_ci->addInput(id_I0);
|
||||
cin_ci->connectPort(id_I0, ctx->nets.at(ctx->id("$PACKER_GND")).get());
|
||||
cin_ci->addInput(id_I1);
|
||||
cin_ci->addInput(id_I3);
|
||||
cin_ci->connectPort(id_I1, cin_net);
|
||||
cin_ci->connectPort(id_I3, cin_net);
|
||||
cin_ci->addInput(id_I2);
|
||||
cin_ci->connectPort(id_I2, ctx->nets.at(ctx->id("$PACKER_VCC")).get());
|
||||
cin_ci->setParam(id_ALU_MODE, std::string("0")); // ADD
|
||||
cin_ci->addInput(id_I0);
|
||||
cin_ci->connectPort(id_I0, cin_net);
|
||||
cin_ci->setParam(id_RAW_ALU_LUT, 0x505a); // 0101_0000_0101_1010 -> ignore I1 and I3, out carry = I0
|
||||
cin_ci->setParam(id_CIN_NETTYPE, Property("LOGIC"));
|
||||
return cin_ci;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user