Construir uma rota Manhattan de dois pinos
Roteie uma net em uma grade DBU com limites definidos e inspecione seus segmentos e comprimento total.
Use o Altifigence CLI 0.1.9 no Linux para construir uma pequena rota Manhattan local de dois pinos. A entrada define uma grade retangular e nets ordenadas com coordenadas de origem e destino em unidades de banco de dados. Este exemplo conecta uma origem em (10, 10) a um destino em (30, 30) dentro de uma grade de 40 por 40. Salve-o como route-input.json antes de executar o comando.
Exija o status de saída 0 antes de ler um resultado salvo. Mantenha a saída de erro padrão separada e inspecione os campos do resultado descritos abaixo.
Preparar a entrada da rota
{
"grid_bounds": {
"x_min": 0,
"y_min": 0,
"x_max": 40,
"y_max": 40
},
"nets": [
{
"net_id": "net_z",
"source": {
"x": 10,
"y": 10
},
"sink": {
"x": 30,
"y": 30
}
}
]
}Atribua a cada net um identificador único e não vazio e mantenha ambas as extremidades dentro da grade. O construtor preserva a ordem de entrada das nets. Ele constrói primeiro o segmento horizontal, depois o vertical e omite qualquer segmento de comprimento zero. Essas regras facilitam revisar este exemplo diretamente a partir de suas coordenadas.
Executar a construção
alti physical capabilities
alti physical two-pin-manhattan-route < route-input.json > route-result.jsonInspecione route-result.json para verificar o esquema local-two-pin-manhattan-route, a entrada solicitada, o resumo criptográfico da entrada, as rotas e o comprimento Manhattan total. Para este exemplo, espere um segmento horizontal de (10, 10) a (30, 10), seguido de um segmento vertical até (30, 30). Cada segmento mede 20 DBU, e o total mede 40 DBU. Mantenha a entrada original junto do resultado para que a construção possa ser repetida.
Inspecionar o resultado
Alguns campos do resultado da rota são mostrados abaixo; o resultado completo também inclui o resumo criptográfico da entrada e as coordenadas dos segmentos.
{"schema":"altifigence.physical.local-two-pin-manhattan-route.v0","execution_performed":true,"requested_net_order":["net_z"],"total_manhattan_length_dbu":40}Verificar uma entrada rejeitada
Uma coordenada x de destino igual a 41 fica fora desta grade e produz invalid_job, código de saída 13, com job input is not an admitted local Physical job. Defina sink.x novamente como 30, dentro da grade, e repita a construção.