Merge pull request #822 from YosysHQ/gatecat/nexus-split-vcc
nexus: Support for split Vcc routing
This commit is contained in:
commit
24f13ec942
@ -591,6 +591,9 @@ delay_t Arch::getRipupDelayPenalty() const { return 250; }
|
|||||||
|
|
||||||
delay_t Arch::estimateDelay(WireId src, WireId dst) const
|
delay_t Arch::estimateDelay(WireId src, WireId dst) const
|
||||||
{
|
{
|
||||||
|
const auto &dst_data = wire_data(dst);
|
||||||
|
if (src.tile == 0 && dst_data.name == ID_LOCAL_VCC)
|
||||||
|
return 0;
|
||||||
int src_x = src.tile % chip_info->width, src_y = src.tile / chip_info->width;
|
int src_x = src.tile % chip_info->width, src_y = src.tile / chip_info->width;
|
||||||
int dst_x = dst.tile % chip_info->width, dst_y = dst.tile / chip_info->width;
|
int dst_x = dst.tile % chip_info->width, dst_y = dst.tile / chip_info->width;
|
||||||
int dist_x = std::abs(src_x - dst_x);
|
int dist_x = std::abs(src_x - dst_x);
|
||||||
|
@ -528,3 +528,5 @@ X(TOUT)
|
|||||||
X(Q0)
|
X(Q0)
|
||||||
X(Q1)
|
X(Q1)
|
||||||
X(SCLK)
|
X(SCLK)
|
||||||
|
|
||||||
|
X(LOCAL_VCC)
|
||||||
|
@ -211,6 +211,8 @@ struct NexusFasmWriter
|
|||||||
return;
|
return;
|
||||||
std::string tile = tile_name(pip.tile, tile_by_type_and_loc(pip.tile, IdString(pd.tile_type)));
|
std::string tile = tile_name(pip.tile, tile_by_type_and_loc(pip.tile, IdString(pd.tile_type)));
|
||||||
std::string source_wire = escape_name(ctx->pip_src_wire_name(pip).str(ctx));
|
std::string source_wire = escape_name(ctx->pip_src_wire_name(pip).str(ctx));
|
||||||
|
if (source_wire == "LOCAL_VCC")
|
||||||
|
source_wire = "G__VCC";
|
||||||
std::string dest_wire = escape_name(ctx->pip_dst_wire_name(pip).str(ctx));
|
std::string dest_wire = escape_name(ctx->pip_dst_wire_name(pip).str(ctx));
|
||||||
out << stringf("%s.PIP.%s.%s", tile.c_str(), dest_wire.c_str(), source_wire.c_str()) << std::endl;
|
out << stringf("%s.PIP.%s.%s", tile.c_str(), dest_wire.c_str(), source_wire.c_str()) << std::endl;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user