दो-पिन Manhattan रूट बनाएँ

सीमाबद्ध DBU ग्रिड पर एक नेट रूट करें और उसके खंडों तथा कुल लंबाई की जाँच करें।

एक छोटा स्थानीय दो-पिन Manhattan रूट बनाने के लिए Linux पर Altifigence CLI 0.1.9 का उपयोग करें। इनपुट एक आयताकार ग्रिड तथा डेटाबेस इकाइयों में स्रोत और सिंक निर्देशांकों वाले क्रमबद्ध नेट परिभाषित करता है। यह उदाहरण 40 गुणा 40 ग्रिड के भीतर (10, 10) पर एक स्रोत को (30, 30) पर एक सिंक से जोड़ता है। कमांड चलाने से पहले इसे route-input.json के रूप में सहेजें।

सहेजा गया परिणाम पढ़ने से पहले निकास स्थिति 0 होना आवश्यक है। मानक त्रुटि को अलग रखें और नीचे वर्णित परिणाम फ़ील्ड की जाँच करें।

रूट इनपुट तैयार करें

{
  "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
      }
    }
  ]
}

प्रत्येक नेट को एक अद्वितीय, गैर-रिक्त पहचानकर्ता दें और दोनों अंतिम बिंदु ग्रिड के भीतर रखें। कंस्ट्रक्टर इनपुट नेट का क्रम बनाए रखता है। यह पहले क्षैतिज खंड, फिर ऊर्ध्वाधर खंड बनाता है और शून्य लंबाई वाले किसी भी खंड को छोड़ देता है। इन नियमों से सीधे निर्देशांकों के आधार पर इस उदाहरण की समीक्षा करना आसान होता है।

निर्माण चलाएँ

alti physical capabilities
alti physical two-pin-manhattan-route < route-input.json > route-result.json

route-result.json में local-two-pin-manhattan-route स्कीमा, अनुरोधित इनपुट, इनपुट डाइजेस्ट, रूट और कुल Manhattan लंबाई की जाँच करें। इस उदाहरण में (10, 10) से (30, 10) तक क्षैतिज खंड और उसके बाद (30, 30) तक ऊर्ध्वाधर खंड अपेक्षित है। प्रत्येक खंड की लंबाई 20 DBU है और कुल लंबाई 40 DBU है। परिणाम के साथ मूल इनपुट रखें ताकि निर्माण दोहराया जा सके।

परिणाम की जाँच करें

रूट परिणाम के कुछ चुनिंदा फ़ील्ड नीचे दिखाए गए हैं; पूर्ण परिणाम में इनपुट डाइजेस्ट और खंडों के निर्देशांक भी शामिल होते हैं।

{"schema":"altifigence.physical.local-two-pin-manhattan-route.v0","execution_performed":true,"requested_net_order":["net_z"],"total_manhattan_length_dbu":40}

अस्वीकृत इनपुट जाँचें

सिंक का x निर्देशांक 41 इस ग्रिड के बाहर है और इससे invalid_job, निकास कोड 13, तथा job input is not an admitted local Physical job मिलता है। sink.x को फिर से ग्रिड के भीतर 30 पर सेट करें, फिर निर्माण दोहराएँ।