Skip to content

Certain terminals for ports/channels/nodes cause source/sink error (probably an autoplacement issue) #10

Open
@watturkara

Description

@watturkara

When trying to compile my design, I noticed that outputting from terminals 3 and 4 for any node/port resulted in a source/sink error during routing. I created a small example to test this, and it seems that most source/sink pairs will fail except when connecting from terminal 1 on one component to terminal 1 on the other component (again, only with nodes/ports).

This seems to be because the automatic placement of parts defaults to the same position for each component, causing the routing algorithm to not be able to find a path from input to output. However, as none of the examples show a position for any part and the documentation, itself, states that setting a position is optional, this seems to be an issue with the algorithm to determine component placement.

Here is the test code I made:

DEVICE mint_test

LAYER FLOW
PORT p1,p2,p3,p4,p5,p6,p7 portRadius=700;

NODE n1;

CHANNEL c1 from p1 3 to n1 1 channelWidth=800;
CHANNEL c2 from p2 2 to n1 4 channelWidth=800; 
CHANNEL c3 from n1 2 to p3 1 channelWidth=800;

CHANNEL c4 from p4 1 to p5 1 channelWidth=800;
CHANNEL c5 from p6 2 to p7 2 channelWidth=800;



END LAYER

And here is the output:


output dir: /var/www/fluigicad.org/jobs/tmp__6082f44bc4667500180b75c9/output
Running File: /var/www/fluigicad.org/jobs/tmp__6082f44bc4667500180b75c9/MINT_example.uf
Creating the output directory:
Computing Constraints
Pulling Default Values of Components
Pulling Dimensions of Components
Pulling Terminals of Components
Setting Default MAX Dimensions to the device: (76200, 76200)
Starting terminal/port assignment ...
output: /var/www/fluigicad.org/jobs/tmp__6082f44bc4667500180b75c9/output/mint_test.dot
Parsing Layers...
Layer 0:
Name - "FLOW_0"
ID - "0"
Type - "FLOW"
Group - "0"
Component - p1
  xpos - 0
  ypos - 0
  x-span - 1400
  y-span - 1400
  spacing - 1000
  Port - 1
    Port.x - 700
    Port.y - 700
Adding to FLOW ...
Component - p2
  xpos - 0
  ypos - 0
  x-span - 1400
  y-span - 1400
  spacing - 1000
  Port - 1
    Port.x - 700
    Port.y - 700
Adding to FLOW ...
Component - p3
  xpos - 0
  ypos - 0
  x-span - 1400
  y-span - 1400
  spacing - 1000
  Port - 1
    Port.x - 700
    Port.y - 700
Adding to FLOW ...
Component - p4
  xpos - 0
  ypos - 0
  x-span - 1400
  y-span - 1400
  spacing - 1000
  Port - 1
    Port.x - 700
    Port.y - 700
Adding to FLOW ...
Component - p5
  xpos - 0
  ypos - 0
  x-span - 1400
  y-span - 1400
  spacing - 1000
  Port - 1
    Port.x - 700
    Port.y - 700
Adding to FLOW ...
Component - p6
  xpos - 0
  ypos - 0
  x-span - 1400
  y-span - 1400
  spacing - 1000
  Port - 1
    Port.x - 700
    Port.y - 700
Adding to FLOW ...
Component - p7
  xpos - 0
  ypos - 0
  x-span - 1400
  y-span - 1400
  spacing - 1000
  Port - 1
    Port.x - 700
    Port.y - 700
Adding to FLOW ...
Component - n1
  xpos - 0
  ypos - 0
  x-span - 800
  y-span - 800
  spacing - 1000
  Port - 1
    Port.x - 0
    Port.y - 0
Adding to FLOW ...
Connection - c1
  Source - p1
    Source Terminal - ERROR!!!!!!
  Sink - n1
    Sink Terminal - 1
  channelWidth - 800
  channelSpacing - 1600
Adding to FLOW layer ... 
Connection - c2
  Source - p2
    Source Terminal - ERROR!!!!!!
  Sink - n1
    Sink Terminal - ERROR!!!!!!
  channelWidth - 800
  channelSpacing - 1600
Adding to FLOW layer ... 
Connection - c3
  Source - n1
    Source Terminal - ERROR!!!!!!
  Sink - p3
    Sink Terminal - 1
  channelWidth - 800
  channelSpacing - 1600
Adding to FLOW layer ... 
Connection - c4
  Source - p4
    Source Terminal - 1
  Sink - p5
    Sink Terminal - 1
  channelWidth - 800
  channelSpacing - 1600
Adding to FLOW layer ... 
Connection - c5
  Source - p6
    Source Terminal - ERROR!!!!!!
  Sink - p7
    Sink Terminal - ERROR!!!!!!
  channelWidth - 800
  channelSpacing - 1600
Adding to FLOW layer ... 
Firing Constructor for Placer
---------------Initial Placement Work-----------------
PAR Return code:-11
Rendering 8 components and 5 connections
Place and Route completed with errors, please check the terminal output for information

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions