JOIN
Wire jumper element that creates signal aliases by merging multiple signals.
Model
Note: JOIN does not perform logic evaluation—it electrically connects signals into a single net.
Description
The JOIN primitive is a wire jumper that electrically connects two or more signals together, creating signal aliases. When signals are joined, SIMIC merges them into a single representative signal and creates aliases for the other signal names.
Unlike LOAD elements which only add loading, JOIN actually merges the signals themselves, combining their electrical attributes and ensuring all references to the joined signals point to the same physical net.
Key Characteristics
- Merges multiple signals into one representative signal
- Creates signal aliases for all non-representative signals
- Combines electrical attributes (loading, decay, spike filter, dominance)
- Zero resistance connection (like a perfect wire)
- Can connect 2 to 32,767 signals
Signal Precedence Rules
When multiple signals are joined, SIMIC determines which signal becomes the representative based on precedence:
- Power Signals:
ZEROorONE(highest priority) - Primary Signals: Circuit inputs and busses
- Other Signals: Internal signals (lowest priority)
The signal with the highest precedence becomes the representative, and all other signals become aliases pointing to it.
Connection Restrictions
SIMIC enforces the following rules when joining signals to prevent circuit errors:
| Prohibited Connection | Reason |
|---|---|
ZERO to ONE |
Logic power rail short circuit |
ZERO or ONE to primary input/bus |
Cannot tie input to power rail |
| Two different primary signals | Cannot short circuit inputs or busses |
Violating these restrictions will result in a fatal error during circuit compilation.
Attribute Merging
When signals are joined, SIMIC merges their electrical attributes into the representative signal:
Loading
All loading values are summed (added together). The representative signal carries the total capacitive load of all joined signals.
merged_load = signal1_load + signal2_load + ... + signaln_load
Decay
If both signals have decay attributes, the minimum decay value is chosen (faster decay wins). If decay types don't match, an error is reported.
Spike Filter
If both signals have spike filter attributes, the minimum filter value is chosen (stricter filtering wins).
Dominance
If both signals have dominance attributes, the thresholds must exactly match, otherwise an error is reported.
Equivalent Type Statement
Type=JOIN i=I[1:1-32767]
Usage Syntax
The JOIN primitive takes a list of signals to connect as inputs:
PART=<part_name> TYPE=join I=<signal1>,<signal2>[,<signal3>,...]
Where:
<part_name>is a unique name for the JOIN instance<signal1>, <signal2>, ...are the signals to be connected- At least 2 signals must be specified
- Up to 32,767 signals can be joined
Examples
Example 1: Simple Wire Jumper
Connect two internal signals:
PART=j1 TYPE=join I=node_a,node_b
After compilation, node_a and node_b refer to the same physical signal.
Example 2: Power Supply Connection
Connect a signal to the power rail:
Type=plug O=vdd
Part=j1 TYPE=join I=ONE,vdd
This connects the signal vdd to the global ONE constant, making vdd an alias for the power rail.
Example 3: Multiple Signal Merge
Join several signals together:
PART=j2 TYPE=join I=sig_a,sig_b,sig_c,sig_d
All four signals are merged into one representative signal.
Example 4: Complete Circuit with Jumper
Type=jumper i=a o=c
c and vdd,b ochange=1
vdd plug
j1 join a,b
Type=plug O=vdd
j1 join ONE,vdd
This creates a circuit where signal a is joined to b, and vdd is connected to the power rail.
Notes
- JOIN creates true electrical connections—all joined signals become the same net
- Non-representative signals become aliases pointing to the representative signal
- The representative signal is chosen based on precedence rules (power > primary > other)
- All electrical attributes (loading, decay, filters) are properly merged
- JOIN elements are removed during circuit compilation after merging signals
- Unlike LOAD, JOIN affects the circuit topology, not just electrical parameters
- Signals that are only connected to LOAD or JOIN elements without real drivers will generate warnings
- The total number of signals in the circuit decreases after JOIN merging