Creating bundles

Every input and output on every component in the circuit has a bit width associated with it. Often the bit width is 1, and there is no way of changing that, but many of Logisim's built-in components include attributes allowing you to customize the bit widths of their inputs and outputs.

The below screen shot illustrates a simple circuit for finding the bitwise AND of two three-bit inputs. Notice how the three-bit output is the bitwise AND of the two inputs. All components have been customized to deal with three-bit data via its Data Bits attribute; the screen shot shows the AND gate attributes, including the Data Bits attribute of 3.

All components in Logisim define a bit width for each of input and output. In contrast, a wire's bit width is undefined: Instead, the wire's width adapts to the components to which it is attached. If a wire connects two components demanding different bit widths, Logisim will complain of "Incompatible widths" and indicate the offending locations in orange. In the below, the output pin's Data Bits attribute has been changed to 1, and so Logisim complains that the wire cannot connect a three-bit value to a one-bit value.

Wires that connect incompatible locations (drawn in orange) do not carry values.

For single-bit wires, you can see at a glance what value the wire carries because Logisim colors the wire light or dark green depending the value. It does not display values for multi-bit wires: They are simply black. You can, though, probe a wire by clicking it using the poke tool ().

This probing feature is helpful for debugging circuits using wire bundles.

Next: Splitters.