Open watturkara opened 3 years ago
As an update to this, I learned that autoplacement isn't the direct cause of this issue, as it worked fine with other designs. It does seem, however, that terminals 3 and 4 on nodes and ports are unavailable. Because of this, my design was able to compile, but only about 1/3 of the channels could actually be routed by the tool.
Here is the full file I used to come to this conclusion:
DEVICE covid_test_circuit
LAYER FLOW
# pm -> preamplification master mix (input)
# op -> oligo P solution (input)
# dw -> ultrapure DEPC water (input)
# dm -> detection master mix (input)
# od -> oligo D solution (input)
# ps -> pretreated sample (input)
# wp -> waste product post melting analysis (output)
PORT pm, op, dw, dm, od, ps, wp portRadius=700;
# Connects different channels together
NODE n1_reagmix, n2_sampmix, n3_reagmix, n4_sampmix, n5_dwsplit, n6_diluter;
# Pumps to control flow rate of DEPC water to 2nd set of reagents and diluter
PUMP pu1_dw_dil, pu2_dw_reag, pu3_pcr1, pu4_pcr2 length=300 width=600 flowChannelWidth=800;
V MIXER preamp_reagmixer;
H MIXER diluter;
V MIXER nested_reagmixer;
# Length/bends assume flow rate of ~ 8.042 uL/min for PCR
V CURVED MIXER pcr1_revt bendLength=8000 numberOfBends=5;
V CURVED MIXER pcr1_stpdn bendLength=8000 numberOfBends=5;
V CURVED MIXER pcr1_denat bendLength=10000 numberOfBends=6;
V CURVED MIXER pcr1_cyc1 bendLength=4500 numberOfBends=20;
V CURVED MIXER pcr1_cyc2 bendLength=30000 numberOfBends=11;
V CURVED MIXER pcr1_finext bendLength=5000 numberOfBends= 4;
V CURVED MIXER pcr2_denat bendLength=10000 numberOfBends=6;
V CURVED MIXER pcr2_cyc1 bendLength=12500 numberOfBends=18;
# Should be incubator/chamber, but could not get this component to work, so
# a curved mixer was used instead
H CURVED MIXER melt_analysis bendLength=1000 numberOfBends=10;
### PREAMPLIFICATION STEP
## REAGENT PREP
# Split Ultrapure DEPC water via a node
# for use in different parts of the circuit
CHANNEL c0_dw from dw to n5_dwsplit channelWidth=800;
# Join reagents via a node
CHANNEL c1_pm from pm to n1_reagmix channelWidth=800;
CHANNEL c2_op from op to n1_reagmix channelWidth=800;
CHANNEL c3_dw from n5_dwsplit to n1_reagmix channelWidth=800;
# Connect sample to separate node
CHANNEL c4_ps from ps to n2_sampmix channelWidth=800;
# Connect reagents node with sample node
CHANNEL c5_combine from n1_reagmix to n2_sampmix channelWidth=800;
# Send combined products to mixer
CHANNEL c6_mix from n2_sampmix to preamp_reagmixer channelWidth=800;
# Pump combined products to target flow rate of 8.042 uL/min
CHANNEL c7_pump from preamp_reagmixer 2 to pu3_pcr1 1 channelWidth=800;
## PERFORM ROUND 1 PCR
# Reverse transcription step
CHANNEL c8_revt from pu3_pcr1 2 to pcr1_revt 2 channelWidth=800;
# Temperature step down step
CHANNEL c9_stpdn from pcr1_revt to pcr1_stpdn channelWidth=800;
# Initial denaturation step
CHANNEL c10_denat from pcr1_stpdn to pcr1_denat channelWidth=800;
# 1st temperature cycle (6 cycles)
CHANNEL c11_cyc1 from pcr1_denat to pcr1_cyc1 channelWidth=800;
# 2nd temperature cycle (22 cycles)
CHANNEL c12_cyc2 from pcr1_cyc1 to pcr1_cyc2 channelWidth=800;
# Final extension
CHANNEL c13_fin from pcr1_cyc2 to pcr1_finext channelWidth=800;
### NESTED AMPLIFICATION STEP
## REAGENT PREP
# Amplified sample dilution
CHANNEL c14_dil from pcr1_finext to n6_diluter channelWidth=800;
# Pump water from DEPC connect to ensure proper flowrate for dilution
CHANNEL c15_pump from n5_dwsplit to pu1_dw_dil 1 channelWidth=800;
CHANNEL c16_dw from pu1_dw_dil 2 to n6_diluter 1 channelWidth=800;
CHANNEL c17_mix from n6_diluter to diluter channelWidth=800;
# Join reagents via node
CHANNEL c18_dm from dm to n3_reagmix channelWidth=800;
CHANNEL c19_od from od to n3_reagmix channelWidth=800;
# Pump DEPC water to control flowrate for proper mixing ratios
CHANNEL c20_pump from n5_dwsplit 1 to pu2_dw_reag 1 channelWidth=800;
CHANNEL c21_dw from pu2_dw_reag 2 to n3_reagmix 1 channelWidth=800;
# Connect diluted preamp sample to different node
CHANNEL c22_dsamp from diluter to n4_sampmix channelWidth=800;
# Connect reagents node to sample node
CHANNEL c23_combine from n3_reagmix to n4_sampmix channelWidth=800;
# Send combined products to mixer
CHANNEL c24_mix from n4_sampmix to nested_reagmixer channelWidth=800;
# Pump combined products to target flow rate of 8.042 uL/min
CHANNEL c25_pump from nested_reagmixer 2 to pu4_pcr2 1 channelWidth=800;
## PERFORM ROUND 2 PCR
# Inital denaturation step
CHANNEL c26_denat from pu4_pcr2 2 to pcr2_denat 2 channelWidth=800;
# Temperature cycling (45 cycles)
CHANNEL c27_cyc1 from pcr2_denat to pcr2_cyc1 channelWidth=800;
### PERFORM MELTING ANALYSIS
# Move fully amplified sample to melting analysis chamber
CHANNEL c28_analyte from pcr2_cyc1 to melt_analysis channelWidth=800;
# Move analyzed sample to waste product port
CHANNEL c29_done from melt_analysis to wp channelWidth=800;
END LAYER
# LAYER CONTROL
# # Control port for valve
# PORT melt_valve_port portRadius=700;
# # Valves to control fluide flow in/out of melting analysis chamber
# VALVE melt_valve1 on c28_analyte;
# VALVE melt_valve2 on c29_done;
# # Net to connect valve input to open/close both simultaneously
# NET valve_net from melt_valve_port 1 to melt_valve1 4, melt_valve2 4 channelWidth=50;
# END LAYER
And here is the log output:
_____ _ _ _
| ___| |_ _(_) __ _(_)
| |_ | | | | | |/ _` | |
| _| | | |_| | | (_| | |
|_| |_|\__,_|_|\__, |_|
|___/
output dir: /var/www/fluigicad.org/jobs/tmp__60833fe0c4667500180b7791/output
Running File: /var/www/fluigicad.org/jobs/tmp__60833fe0c4667500180b7791/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 ...
No port assigned to connection ref - c0_dw:dw:None
Auto Port Assign Scheme - Target contains only 1 port option
Assigned port - 1
No port assigned to connection ref - c0_dw:n5_dwsplit:None
Auto Port Assign Scheme - Target contains only 1 port option
Assigned port - 1
No port assigned to connection ref - c1_pm:pm:None
Auto Port Assign Scheme - Target contains only 1 port option
Assigned port - 1
No port assigned to connection ref - c1_pm:n1_reagmix:None
Auto Port Assign Scheme - Target contains only 1 port option
Assigned port - 1
No port assigned to connection ref - c2_op:op:None
Auto Port Assign Scheme - Target contains only 1 port option
Assigned port - 1
No port assigned to connection ref - c2_op:n1_reagmix:None
Auto Port Assign Scheme - Target contains only 1 port option
Assigned port - 1
No port assigned to connection ref - c3_dw:n5_dwsplit:None
Auto Port Assign Scheme - Target contains only 1 port option
Assigned port - 1
No port assigned to connection ref - c3_dw:n1_reagmix:None
Auto Port Assign Scheme - Target contains only 1 port option
Assigned port - 1
No port assigned to connection ref - c4_ps:ps:None
Auto Port Assign Scheme - Target contains only 1 port option
Assigned port - 1
No port assigned to connection ref - c4_ps:n2_sampmix:None
Auto Port Assign Scheme - Target contains only 1 port option
Assigned port - 1
No port assigned to connection ref - c5_combine:n1_reagmix:None
Auto Port Assign Scheme - Target contains only 1 port option
Assigned port - 1
No port assigned to connection ref - c5_combine:n2_sampmix:None
Auto Port Assign Scheme - Target contains only 1 port option
Assigned port - 1
No port assigned to connection ref - c6_mix:n2_sampmix:None
Auto Port Assign Scheme - Target contains only 1 port option
Assigned port - 1
No port assigned to connection ref - c6_mix:preamp_reagmixer:None
Auto Port Assign Scheme - Target contains only 2 or 4 port options
Assigned port - 1
No port assigned to connection ref - c9_stpdn:pcr1_revt:None
Auto Port Assign Scheme - Target contains only 2 or 4 port options
Assigned port - 1
No port assigned to connection ref - c9_stpdn:pcr1_stpdn:None
Auto Port Assign Scheme - Target contains only 2 or 4 port options
Assigned port - 1
No port assigned to connection ref - c10_denat:pcr1_stpdn:None
Auto Port Assign Scheme - Target contains only 2 or 4 port options
Assigned port - 1
No port assigned to connection ref - c10_denat:pcr1_denat:None
Auto Port Assign Scheme - Target contains only 2 or 4 port options
Assigned port - 1
No port assigned to connection ref - c11_cyc1:pcr1_denat:None
Auto Port Assign Scheme - Target contains only 2 or 4 port options
Assigned port - 1
No port assigned to connection ref - c11_cyc1:pcr1_cyc1:None
Auto Port Assign Scheme - Target contains only 2 or 4 port options
Assigned port - 1
No port assigned to connection ref - c12_cyc2:pcr1_cyc1:None
Auto Port Assign Scheme - Target contains only 2 or 4 port options
Assigned port - 1
No port assigned to connection ref - c12_cyc2:pcr1_cyc2:None
Auto Port Assign Scheme - Target contains only 2 or 4 port options
Assigned port - 1
No port assigned to connection ref - c13_fin:pcr1_cyc2:None
Auto Port Assign Scheme - Target contains only 2 or 4 port options
Assigned port - 1
No port assigned to connection ref - c13_fin:pcr1_finext:None
Auto Port Assign Scheme - Target contains only 2 or 4 port options
Assigned port - 1
No port assigned to connection ref - c14_dil:pcr1_finext:None
Auto Port Assign Scheme - Target contains only 2 or 4 port options
Assigned port - 1
No port assigned to connection ref - c14_dil:n6_diluter:None
Auto Port Assign Scheme - Target contains only 1 port option
Assigned port - 1
No port assigned to connection ref - c15_pump:n5_dwsplit:None
Auto Port Assign Scheme - Target contains only 1 port option
Assigned port - 1
No port assigned to connection ref - c17_mix:n6_diluter:None
Auto Port Assign Scheme - Target contains only 1 port option
Assigned port - 1
No port assigned to connection ref - c17_mix:diluter:None
Auto Port Assign Scheme - Target contains only 2 or 4 port options
Assigned port - 1
No port assigned to connection ref - c18_dm:dm:None
Auto Port Assign Scheme - Target contains only 1 port option
Assigned port - 1
No port assigned to connection ref - c18_dm:n3_reagmix:None
Auto Port Assign Scheme - Target contains only 1 port option
Assigned port - 1
No port assigned to connection ref - c19_od:od:None
Auto Port Assign Scheme - Target contains only 1 port option
Assigned port - 1
No port assigned to connection ref - c19_od:n3_reagmix:None
Auto Port Assign Scheme - Target contains only 1 port option
Assigned port - 1
No port assigned to connection ref - c22_dsamp:diluter:None
Auto Port Assign Scheme - Target contains only 2 or 4 port options
Assigned port - 1
No port assigned to connection ref - c22_dsamp:n4_sampmix:None
Auto Port Assign Scheme - Target contains only 1 port option
Assigned port - 1
No port assigned to connection ref - c23_combine:n3_reagmix:None
Auto Port Assign Scheme - Target contains only 1 port option
Assigned port - 1
No port assigned to connection ref - c23_combine:n4_sampmix:None
Auto Port Assign Scheme - Target contains only 1 port option
Assigned port - 1
No port assigned to connection ref - c24_mix:n4_sampmix:None
Auto Port Assign Scheme - Target contains only 1 port option
Assigned port - 1
No port assigned to connection ref - c24_mix:nested_reagmixer:None
Auto Port Assign Scheme - Target contains only 2 or 4 port options
Assigned port - 1
No port assigned to connection ref - c27_cyc1:pcr2_denat:None
Auto Port Assign Scheme - Target contains only 2 or 4 port options
Assigned port - 1
No port assigned to connection ref - c27_cyc1:pcr2_cyc1:None
Auto Port Assign Scheme - Target contains only 2 or 4 port options
Assigned port - 1
No port assigned to connection ref - c28_analyte:pcr2_cyc1:None
Auto Port Assign Scheme - Target contains only 2 or 4 port options
Assigned port - 1
No port assigned to connection ref - c28_analyte:melt_analysis:None
Auto Port Assign Scheme - Target contains only 2 or 4 port options
Assigned port - 1
No port assigned to connection ref - c29_done:melt_analysis:None
Auto Port Assign Scheme - Target contains only 2 or 4 port options
Assigned port - 1
No port assigned to connection ref - c29_done:wp:None
Auto Port Assign Scheme - Target contains only 1 port option
Assigned port - 1
output: /var/www/fluigicad.org/jobs/tmp__60833fe0c4667500180b7791/output/covid_test_circuit.dot
Parsing Layers...
Layer 0:
Name - "FLOW_0"
ID - "0"
Type - "FLOW"
Group - "0"
Component - pm
xpos - 0
ypos - 0
x-span - 1400
y-span - 1400
spacing - 1000
Port - 1
Port.x - 700
Port.y - 700
Adding to FLOW ...
Component - op
xpos - 0
ypos - 0
x-span - 1400
y-span - 1400
spacing - 1000
Port - 1
Port.x - 700
Port.y - 700
Adding to FLOW ...
Component - dw
xpos - 0
ypos - 0
x-span - 1400
y-span - 1400
spacing - 1000
Port - 1
Port.x - 700
Port.y - 700
Adding to FLOW ...
Component - dm
xpos - 0
ypos - 0
x-span - 1400
y-span - 1400
spacing - 1000
Port - 1
Port.x - 700
Port.y - 700
Adding to FLOW ...
Component - od
xpos - 0
ypos - 0
x-span - 1400
y-span - 1400
spacing - 1000
Port - 1
Port.x - 700
Port.y - 700
Adding to FLOW ...
Component - ps
xpos - 0
ypos - 0
x-span - 1400
y-span - 1400
spacing - 1000
Port - 1
Port.x - 700
Port.y - 700
Adding to FLOW ...
Component - wp
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_reagmix
xpos - 0
ypos - 0
x-span - 800
y-span - 800
spacing - 1000
Port - 1
Port.x - 0
Port.y - 0
Adding to FLOW ...
Component - n2_sampmix
xpos - 0
ypos - 0
x-span - 800
y-span - 800
spacing - 1000
Port - 1
Port.x - 0
Port.y - 0
Adding to FLOW ...
Component - n3_reagmix
xpos - 0
ypos - 0
x-span - 800
y-span - 800
spacing - 1000
Port - 1
Port.x - 0
Port.y - 0
Adding to FLOW ...
Component - n4_sampmix
xpos - 0
ypos - 0
x-span - 800
y-span - 800
spacing - 1000
Port - 1
Port.x - 0
Port.y - 0
Adding to FLOW ...
Component - n5_dwsplit
xpos - 0
ypos - 0
x-span - 800
y-span - 800
spacing - 1000
Port - 1
Port.x - 0
Port.y - 0
Adding to FLOW ...
Component - n6_diluter
xpos - 0
ypos - 0
x-span - 800
y-span - 800
spacing - 1000
Port - 1
Port.x - 0
Port.y - 0
Adding to FLOW ...
Component - pu1_dw_dil
xpos - 0
ypos - 0
x-span - 800
y-span - 2300
spacing - 1000
Port - 1
Port.x - 400
Port.y - 0
Port - 2
Port.x - 400
Port.y - 2300
Port - 3
Port.x - 400
Port.y - 150
Port - 4
Port.x - 400
Port.y - 1150
Port - 5
Port.x - 400
Port.y - 2150
Adding to FLOW ...
Component - pu2_dw_reag
xpos - 0
ypos - 0
x-span - 800
y-span - 2300
spacing - 1000
Port - 1
Port.x - 400
Port.y - 0
Port - 2
Port.x - 400
Port.y - 2300
Port - 3
Port.x - 400
Port.y - 150
Port - 4
Port.x - 400
Port.y - 1150
Port - 5
Port.x - 400
Port.y - 2150
Adding to FLOW ...
Component - pu3_pcr1
xpos - 0
ypos - 0
x-span - 800
y-span - 2300
spacing - 1000
Port - 1
Port.x - 400
Port.y - 0
Port - 2
Port.x - 400
Port.y - 2300
Port - 3
Port.x - 400
Port.y - 150
Port - 4
Port.x - 400
Port.y - 1150
Port - 5
Port.x - 400
Port.y - 2150
Adding to FLOW ...
Component - pu4_pcr2
xpos - 0
ypos - 0
x-span - 800
y-span - 2300
spacing - 1000
Port - 1
Port.x - 400
Port.y - 0
Port - 2
Port.x - 400
Port.y - 2300
Port - 3
Port.x - 400
Port.y - 150
Port - 4
Port.x - 400
Port.y - 1150
Port - 5
Port.x - 400
Port.y - 2150
Adding to FLOW ...
Component - preamp_reagmixer
xpos - 0
ypos - 0
x-span - 4060
y-span - 4860
spacing - 1000
Port - 1
Port.x - 2030
Port.y - 0
Port - 2
Port.x - 2030
Port.y - 4860
Adding to FLOW ...
Component - diluter
xpos - 0
ypos - 0
x-span - 4060
y-span - 4860
spacing - 1000
Port - 1
Port.x - 2030
Port.y - 0
Port - 2
Port.x - 2030
Port.y - 4860
Adding to FLOW ...
Component - nested_reagmixer
xpos - 0
ypos - 0
x-span - 4060
y-span - 4860
spacing - 1000
Port - 1
Port.x - 2030
Port.y - 0
Port - 2
Port.x - 2030
Port.y - 4860
Adding to FLOW ...
Component - pcr1_revt
xpos - 0
ypos - 0
x-span - 10830
y-span - 21100
spacing - 1000
Port - 1
Port.x - 5415
Port.y - 0
Port - 2
Port.x - 5415
Port.y - 21100
Adding to FLOW ...
Component - pcr1_stpdn
xpos - 0
ypos - 0
x-span - 10830
y-span - 21100
spacing - 1000
Port - 1
Port.x - 5415
Port.y - 0
Port - 2
Port.x - 5415
Port.y - 21100
Adding to FLOW ...
Component - pcr1_denat
xpos - 0
ypos - 0
x-span - 12830
y-span - 25160
spacing - 1000
Port - 1
Port.x - 6415
Port.y - 0
Port - 2
Port.x - 6415
Port.y - 25160
Adding to FLOW ...
Component - pcr1_cyc1
xpos - 0
ypos - 0
x-span - 7330
y-span - 82000
spacing - 1000
Port - 1
Port.x - 3665
Port.y - 0
Port - 2
Port.x - 3665
Port.y - 82000
Adding to FLOW ...
Component - pcr1_cyc2
xpos - 0
ypos - 0
x-span - 32830
y-span - 45460
spacing - 1000
Port - 1
Port.x - 16415
Port.y - 0
Port - 2
Port.x - 16415
Port.y - 45460
Adding to FLOW ...
Component - pcr1_finext
xpos - 0
ypos - 0
x-span - 7830
y-span - 17040
spacing - 1000
Port - 1
Port.x - 3915
Port.y - 0
Port - 2
Port.x - 3915
Port.y - 17040
Adding to FLOW ...
Component - pcr2_denat
xpos - 0
ypos - 0
x-span - 12830
y-span - 25160
spacing - 1000
Port - 1
Port.x - 6415
Port.y - 0
Port - 2
Port.x - 6415
Port.y - 25160
Adding to FLOW ...
Component - pcr2_cyc1
xpos - 0
ypos - 0
x-span - 15330
y-span - 73880
spacing - 1000
Port - 1
Port.x - 7665
Port.y - 0
Port - 2
Port.x - 7665
Port.y - 73880
Adding to FLOW ...
Component - melt_analysis
xpos - 0
ypos - 0
x-span - 3830
y-span - 41400
spacing - 1000
Port - 1
Port.x - 1915
Port.y - 0
Port - 2
Port.x - 1915
Port.y - 41400
Adding to FLOW ...
Connection - c0_dw
Source - dw
Source Terminal - 1
Sink - n5_dwsplit
Sink Terminal - 1
channelWidth - 800
channelSpacing - 1600
Adding to FLOW layer ...
Connection - c1_pm
Source - pm
Source Terminal - 1
Sink - n1_reagmix
Sink Terminal - 1
channelWidth - 800
channelSpacing - 1600
Adding to FLOW layer ...
Connection - c2_op
Source - op
Source Terminal - 1
Sink - n1_reagmix
Sink Terminal - 1
channelWidth - 800
channelSpacing - 1600
Adding to FLOW layer ...
Connection - c3_dw
Source - n5_dwsplit
Source Terminal - 1
Sink - n1_reagmix
Sink Terminal - 1
channelWidth - 800
channelSpacing - 1600
Adding to FLOW layer ...
Connection - c4_ps
Source - ps
Source Terminal - 1
Sink - n2_sampmix
Sink Terminal - 1
channelWidth - 800
channelSpacing - 1600
Adding to FLOW layer ...
Connection - c5_combine
Source - n1_reagmix
Source Terminal - 1
Sink - n2_sampmix
Sink Terminal - 1
channelWidth - 800
channelSpacing - 1600
Adding to FLOW layer ...
Connection - c6_mix
Source - n2_sampmix
Source Terminal - 1
Sink - preamp_reagmixer
Sink Terminal - 1
channelWidth - 800
channelSpacing - 1600
Adding to FLOW layer ...
Connection - c7_pump
Source - preamp_reagmixer
Source Terminal - 2
Sink - pu3_pcr1
Sink Terminal - 1
channelWidth - 800
channelSpacing - 1600
Adding to FLOW layer ...
Connection - c8_revt
Source - pu3_pcr1
Source Terminal - 2
Sink - pcr1_revt
Sink Terminal - 2
channelWidth - 800
channelSpacing - 1600
Adding to FLOW layer ...
Connection - c9_stpdn
Source - pcr1_revt
Source Terminal - 1
Sink - pcr1_stpdn
Sink Terminal - 1
channelWidth - 800
channelSpacing - 1600
Adding to FLOW layer ...
Connection - c10_denat
Source - pcr1_stpdn
Source Terminal - 1
Sink - pcr1_denat
Sink Terminal - 1
channelWidth - 800
channelSpacing - 1600
Adding to FLOW layer ...
Connection - c11_cyc1
Source - pcr1_denat
Source Terminal - 1
Sink - pcr1_cyc1
Sink Terminal - 1
channelWidth - 800
channelSpacing - 1600
Adding to FLOW layer ...
Connection - c12_cyc2
Source - pcr1_cyc1
Source Terminal - 1
Sink - pcr1_cyc2
Sink Terminal - 1
channelWidth - 800
channelSpacing - 1600
Adding to FLOW layer ...
Connection - c13_fin
Source - pcr1_cyc2
Source Terminal - 1
Sink - pcr1_finext
Sink Terminal - 1
channelWidth - 800
channelSpacing - 1600
Adding to FLOW layer ...
Connection - c14_dil
Source - pcr1_finext
Source Terminal - 1
Sink - n6_diluter
Sink Terminal - 1
channelWidth - 800
channelSpacing - 1600
Adding to FLOW layer ...
Connection - c15_pump
Source - n5_dwsplit
Source Terminal - 1
Sink - pu1_dw_dil
Sink Terminal - 1
channelWidth - 800
channelSpacing - 1600
Adding to FLOW layer ...
Connection - c16_dw
Source - pu1_dw_dil
Source Terminal - 2
Sink - n6_diluter
Sink Terminal - 1
channelWidth - 800
channelSpacing - 1600
Adding to FLOW layer ...
Connection - c17_mix
Source - n6_diluter
Source Terminal - 1
Sink - diluter
Sink Terminal - 1
channelWidth - 800
channelSpacing - 1600
Adding to FLOW layer ...
Connection - c18_dm
Source - dm
Source Terminal - 1
Sink - n3_reagmix
Sink Terminal - 1
channelWidth - 800
channelSpacing - 1600
Adding to FLOW layer ...
Connection - c19_od
Source - od
Source Terminal - 1
Sink - n3_reagmix
Sink Terminal - 1
channelWidth - 800
channelSpacing - 1600
Adding to FLOW layer ...
Connection - c20_pump
Source - n5_dwsplit
Source Terminal - 1
Sink - pu2_dw_reag
Sink Terminal - 1
channelWidth - 800
channelSpacing - 1600
Adding to FLOW layer ...
Connection - c21_dw
Source - pu2_dw_reag
Source Terminal - 2
Sink - n3_reagmix
Sink Terminal - 1
channelWidth - 800
channelSpacing - 1600
Adding to FLOW layer ...
Connection - c22_dsamp
Source - diluter
Source Terminal - 1
Sink - n4_sampmix
Sink Terminal - 1
channelWidth - 800
channelSpacing - 1600
Adding to FLOW layer ...
Connection - c23_combine
Source - n3_reagmix
Source Terminal - 1
Sink - n4_sampmix
Sink Terminal - 1
channelWidth - 800
channelSpacing - 1600
Adding to FLOW layer ...
Connection - c24_mix
Source - n4_sampmix
Source Terminal - 1
Sink - nested_reagmixer
Sink Terminal - 1
channelWidth - 800
channelSpacing - 1600
Adding to FLOW layer ...
Connection - c25_pump
Source - nested_reagmixer
Source Terminal - 2
Sink - pu4_pcr2
Sink Terminal - 1
channelWidth - 800
channelSpacing - 1600
Adding to FLOW layer ...
Connection - c26_denat
Source - pu4_pcr2
Source Terminal - 2
Sink - pcr2_denat
Sink Terminal - 2
channelWidth - 800
channelSpacing - 1600
Adding to FLOW layer ...
Connection - c27_cyc1
Source - pcr2_denat
Source Terminal - 1
Sink - pcr2_cyc1
Sink Terminal - 1
channelWidth - 800
channelSpacing - 1600
Adding to FLOW layer ...
Connection - c28_analyte
Source - pcr2_cyc1
Source Terminal - 1
Sink - melt_analysis
Sink Terminal - 1
channelWidth - 800
channelSpacing - 1600
Adding to FLOW layer ...
Connection - c29_done
Source - melt_analysis
Source Terminal - 1
Sink - wp
Sink Terminal - 1
channelWidth - 800
channelSpacing - 1600
Adding to FLOW layer ...
Firing Constructor for Placer
---------------Initial Placement Work-----------------
after placement width: 113110 height: 246480
PlacementCell - pm| Rel Position (38030, 0)
PlacementCell - op| Rel Position (36230, 85400)
PlacementCell - dw| Rel Position (41290, 36220)
PlacementCell - dm| Rel Position (43690, 36220)
PlacementCell - od| Rel Position (0, 0)
PlacementCell - ps| Rel Position (0, 2400)
PlacementCell - wp| Rel Position (43690, 28560)
PlacementCell - n1_reagmix| Rel Position (63950, 58320)
PlacementCell - n2_sampmix| Rel Position (50120, 85400)
PlacementCell - n3_reagmix| Rel Position (41290, 34420)
PlacementCell - n4_sampmix| Rel Position (2400, 2400)
PlacementCell - n5_dwsplit| Rel Position (75780, 31860)
PlacementCell - n6_diluter| Rel Position (63950, 87800)
PlacementCell - pu1_dw_dil| Rel Position (51920, 28560)
PlacementCell - pu2_dw_reag| Rel Position (63950, 2400)
PlacementCell - pu3_pcr1| Rel Position (50120, 28560)
PlacementCell - pu4_pcr2| Rel Position (36230, 2400)
PlacementCell - preamp_reagmixer| Rel Position (36230, 87800)
PlacementCell - diluter| Rel Position (41290, 87800)
PlacementCell - nested_reagmixer| Rel Position (38630, 28560)
PlacementCell - pcr1_revt| Rel Position (36230, 119820)
PlacementCell - pcr1_stpdn| Rel Position (63950, 36220)
PlacementCell - pcr1_denat| Rel Position (50120, 93660)
PlacementCell - pcr1_cyc1| Rel Position (4200, 2400)
PlacementCell - pcr1_cyc2| Rel Position (2400, 85400)
PlacementCell - pcr1_finext| Rel Position (41290, 93660)
PlacementCell - pcr2_denat| Rel Position (38630, 2400)
PlacementCell - pcr2_cyc1| Rel Position (63950, 89600)
PlacementCell - melt_analysis| Rel Position (51920, 38620)
---------------Placement end.-----------------
Obstacles:
Cell{0} - (38030, 0, 1400, 1400)
Cell{1} - (36230, 85400, 1400, 1400)
Cell{2} - (41290, 36220, 1400, 1400)
Cell{3} - (43690, 36220, 1400, 1400)
Cell{4} - (0, 0, 1400, 1400)
Cell{5} - (0, 2400, 1400, 1400)
Cell{6} - (43690, 28560, 1400, 1400)
Cell{7} - (63950, 58320, 800, 800)
Cell{8} - (50120, 85400, 800, 800)
Cell{9} - (41290, 34420, 800, 800)
Cell{10} - (2400, 2400, 800, 800)
Cell{11} - (75780, 31860, 800, 800)
Cell{12} - (63950, 87800, 800, 800)
Cell{13} - (51920, 28560, 800, 2300)
Cell{14} - (63950, 2400, 800, 2300)
Cell{15} - (50120, 28560, 800, 2300)
Cell{16} - (36230, 2400, 800, 2300)
Cell{17} - (36230, 87800, 4060, 4860)
Cell{18} - (41290, 87800, 4060, 4860)
Cell{19} - (38630, 28560, 4060, 4860)
Cell{20} - (36230, 119820, 10830, 21100)
Cell{21} - (63950, 36220, 10830, 21100)
Cell{22} - (50120, 93660, 12830, 25160)
Cell{23} - (4200, 2400, 7330, 82000)
Cell{24} - (2400, 85400, 32830, 45460)
Cell{25} - (41290, 93660, 7830, 17040)
Cell{26} - (38630, 2400, 12830, 25160)
Cell{27} - (63950, 89600, 15330, 73880)
Cell{28} - (51920, 38620, 3830, 41400)
---------------Initial Routing Work-----------------
Routing Boundary - (-98490,-246000,178770,410480)
Route - c0_dw
Source - (42690,36220)
Target - (75780,31860)
Route - c1_pm
Source - (39430,1400)
Target - (63950,58320)
Route - c2_op
Source - (37630,85400)
Target - (63950,58320)
Route - c3_dw
Source - (75780,31860)
Target - (63950,58320)
Route - c4_ps
Source - (1400,3800)
Target - (50120,85400)
Route - c5_combine
Source - (63950,58320)
Target - (50120,85400)
Route - c6_mix
Source - (50120,85400)
Target - (38260,87800)
Route - c7_pump
Source - (38260,92660)
Target - (50520,28560)
Route - c8_revt
Source - (50520,30860)
Target - (41645,140920)
Route - c9_stpdn
Source - (41645,119820)
Target - (69365,36220)
Route - c10_denat
Source - (69365,36220)
Target - (56535,93660)
Route - c11_cyc1
Source - (56535,93660)
Target - (7865,2400)
Route - c12_cyc2
Source - (7865,2400)
Target - (18815,85400)
Route - c13_fin
Source - (18815,85400)
Target - (45205,93660)
Route - c14_dil
Source - (45205,93660)
Target - (63950,87800)
Route - c15_pump
Source - (75780,31860)
Target - (52320,28560)
Route - c16_dw
Source - (52320,30860)
Target - (63950,87800)
Route - c17_mix
Source - (63950,87800)
Target - (43320,87800)
Route - c18_dm
Source - (43690,36220)
Target - (41290,34420)
Route - c19_od
Source - (1400,1400)
Target - (41290,34420)
Route - c20_pump
Source - (75780,31860)
Target - (64350,2400)
Route - c21_dw
Source - (64350,4700)
Target - (41290,34420)
Route - c22_dsamp
Source - (43320,87800)
Target - (2400,2400)
Route - c23_combine
Source - (41290,34420)
Target - (2400,2400)
Route - c24_mix
Source - (2400,2400)
Target - (40660,28560)
Route - c25_pump
Source - (40660,33420)
Target - (36630,2400)
Route - c26_denat
Source - (36630,4700)
Target - (45045,27560)
Route - c27_cyc1
Source - (45045,2400)
Target - (71615,89600)
Route - c28_analyte
Source - (71615,89600)
Target - (53835,38620)
Route - c29_done
Source - (53835,38620)
Target - (45090,29960)
Ans :
Route - c0_dw success (41990,36920)
Route - c1_pm success (38730,700)-(39430,1400)-(41639,944)-(41786,470)-(41821,234)-(53863,2400)-(53823,2835)-(52612,25451)-(53743,26385)-(53772,26399)-(53801,26414)-(55098,28900)-(54705,29914)-(54888,31895)-(58056,37945)-(62984,55119)-(63950,58320)
Route - c2_op success (36930,86100)
Route - c3_dw failure
Route - c4_ps success (700,3100)-(1400,3800)-(125,6199)-(70,6201)-(-881,1564)-(-885,166)-(-888,-832)-(-893,-2230)-(495,-2226)-(3803,0)-(13923,2183)-(13933,2400)-(13922,2622)-(13291,4034)-(13258,4068)-(13110,4209)-(37502,35541)-(40000,39647)-(40267,39794)-(40987,40003)-(41036,40009)-(49646,80799)-(49671,80866)-(50137,81632)-(50369,81855)-(50120,85400)
Route - c5_combine failure
Route - c6_mix success (50120,85400)-(46620,85760)-(46606,85751)-(44931,86017)-(41105,86866)-(39280,86482)-(38505,86190)-(38040,86954)-(38260,87800)
Route - c7_pump failure
Route - c8_revt failure
Route - c9_stpdn success (41645,119820)-(45775,117789)-(47589,117476)-(49344,119073)-(49790,121200)-(48462,138968)-(62509,161556)-(62260,161771)-(62086,161963)-(61826,162354)-(62629,165487)-(64962,165659)-(80177,165708)-(79991,91895)-(79962,87296)-(77407,30403)-(77409,29604)-(75684,29630)-(75620,29656)-(74875,29633)-(73447,31282)-(73401,31519)-(73525,32690)-(69365,36220)
Route - c10_denat failure
Route - c11_cyc1 failure
Route - c12_cyc2 failure
Route - c13_fin failure
Route - c14_dil success (45205,93660)-(46797,93043)-(47819,91639)-(49439,91278)-(50120,91257)-(50376,91270)-(55089,91740)-(63950,87800)
Route - c15_pump failure
Route - c16_dw failure
Route - c17_mix failure
Route - c18_dm success (44390,36920)-(43690,36220)-(41453,35480)-(41290,34420)
Route - c19_od success (700,700)
Route - c20_pump failure
Route - c21_dw failure
Route - c22_dsamp failure
Route - c23_combine failure
Route - c24_mix failure
Route - c25_pump failure
Route - c26_denat failure
Route - c27_cyc1 failure
Route - c28_analyte failure
Route - c29_done success (53835,38620)-(52890,36421)-(52043,36220)-(51920,36217)-(51612,36236)-(51493,36255)-(51377,36279)-(48475,32612)-(45090,29960)-(44390,29260)
---------------Routing end.-----------------
PAR Return code:0
Reducing the Size of the device and adding device padding: 20000 um
Updated the device dimensions: (119280, 279640) microns
Rendering 29 components and 30 connections
I had the same issue while using the Neptune UI:
DEVICE qrtPCR
LAYER FLOW
# I/O PORT DECLARATION
PORT in1 portRadius=500;
PORT in2 portRadius=500;
PORT out1 portRadius=500;
# CONNECTING NODES
NODE node0;
NODE node1;
NODE node2;
NODE node3;
# Section 1: Mixing - 95mm long, 180 um wide (3 bends)
V MIXER zone1 numberOfBends=3 bendSpacing=250 bendLength=15440 channelWidth=180;
# Section 2: Reverse Transcription - 372 mm long, 260 um wide, heated at 52 C (4 bends)
V MIXER zone2 numberOfBends=5 bendSpacing=250 bendLength=36807 channelWidth=260;
# Section 3: Activation - 354 mm long, 260 um wide, 98 C (5 bends)
V MIXER zone3 numberOfBends=5 bendSpacing=250 bendLength=36807 channelWidth=260;
# Section 4: Thermal Cycling - 1131 mm long, 260 um wide, passes 40 times through heated areas at 97 C, 62 C
H MIXER zone4 numberOfBends=40 bendSpacing=250 bendLength=27882 channelWidth=260;
# Connect the sections according to the device schematic, i.e. how it should be drawn
CHANNEL c1 from in1 2 to node0 4 channelWidth=180;
CHANNEL c2 from in2 4 to node0 2 channelWidth=180;
CHANNEL c3 from node0 3 to zone1 1 channelWidth=260;
CHANNEL c4 from zone1 2 to zone2 1 channelWidth=260;
CHANNEL c5 from zone2 2 to zone3 1 channelWidth=260;
CHANNEL c6 from zone3 2 to node1 2 channelWidth=260;
CHANNEL c7 from node1 3 to zone4 1 channelWidth=260;
CHANNEL c8 from zone4 2 to node2 3 channelWidth=260;
CHANNEL c9 from node2 4 to node3 2 channelWidth=260;
CHANNEL c10 from node3 1 to out1 3 channelWidth=260;
END LAYER
When trying to specify terminals on the PORT and NODES, we had compile issues. We could specify only terminal 1 on PORTS and NODES, but we could specify both terminal 1 and 2 on other components, such as MIXER.
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:
And here is the output: