nexus: Support for split Vcc routing
Signed-off-by: gatecat <gatecat@ds0.me>
This commit is contained in:
parent
035452d938
commit
f395ad3e27
@ -589,6 +589,9 @@ TimingClockingInfo Arch::getPortClockingInfo(const CellInfo *cell, IdString port
|
||||
|
||||
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 dst_x = dst.tile % chip_info->width, dst_y = dst.tile / chip_info->width;
|
||||
int dist_x = std::abs(src_x - dst_x);
|
||||
|
@ -528,3 +528,5 @@ X(TOUT)
|
||||
X(Q0)
|
||||
X(Q1)
|
||||
X(SCLK)
|
||||
|
||||
X(LOCAL_VCC)
|
||||
|
@ -211,6 +211,8 @@ struct NexusFasmWriter
|
||||
return;
|
||||
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));
|
||||
if (source_wire == "LOCAL_VCC")
|
||||
source_wire = "G__VCC";
|
||||
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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user