wiring.html 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <html>
  2. <head>
  3. <title>Wiring Tool</title>
  4. </head>
  5. <body bgcolor="FFFFFF">
  6. <h1><img align="center" src="../../../../en/icons/wiring.gif" width="32" height="32">
  7. <em>Wiring Tool</em></h1>
  8. <p><table>
  9. <tr><td><strong>Library:</strong></td>
  10. <td><a href="index.html">Base</a></td></tr>
  11. <tr><td><strong>Introduced:</strong></td>
  12. <td>2.0 Beta 1</td></tr>
  13. </table></p>
  14. <h2>Behavior</h2>
  15. <p>The wiring tool is the tool for creating wire segments that carry
  16. values from one endpoint to another. The bit width of these values can
  17. be anything; exactly which bit width is automatically inferred from the
  18. components to which the wires are ultimately attached. If it is not
  19. attached to any components, the wire will be drawn gray to indicate that
  20. its bit width is unknown; if the components at the locations that the
  21. wire helps to connect disagree on the bit width, then the wire will be
  22. drawn orange to indicate the conflict, and the wire will in fact refuse
  23. to carry any values at all until the user resolves the conflict.</p>
  24. <p>A single drag of the mouse can create multiple wire segments. The
  25. precise process is a little confusing in its description; but it works
  26. quite intuitively in practice: If you request a particular wire segment
  27. using the Wiring Tool, that segment will be split apart wherever it hits
  28. a pin for an existing component, or wherever it hits the endpoint of an
  29. existing wire segment. Also, if an endpoint of any of the new wire
  30. segments hit somewhere in the middle of an existing wire, then that wire
  31. will be split into multiple segments itself.</p>
  32. <p>For some components that draw short stubs to which wires can connect
  33. (such as an <a href="../gates/basic.html">OR gate</a> or a <a
  34. href="../gates/controlled.html">controlled buffer</a>), Logisim will
  35. silently correct attempts to create wires that slightly overshoot the
  36. stub's end.</p>
  37. <p>You can also shorten an existing wire segment using the Wiring Tool,
  38. using a drag that starts or ends at a terminus of the segment, and that
  39. overlaps the existing segment.</p>
  40. <p>All wires in Logisim are either horizontal or vertical.</p>
  41. <p>Wires are also non-directional; that is, they carry values from
  42. either endpoint to the other. Indeed, a wire can carry values
  43. in both directions simultaneously; the center wire in the below example
  44. is doing this.</p>
  45. <center><img src="../../../../en/img-guide/bundles-splitter-2way.png" width="191" height="44"></center>
  46. <h2>Attributes</h2>
  47. <p>The wiring tool does not itself have attributes, but the wires that
  48. it creates do.</p>
  49. <dl>
  50. <dt>Direction</dt>
  51. <dd>Indicates whether the wire is horizontal or vertical.
  52. The value of this attribute cannot be changed.</dd>
  53. <dt>Length</dt>
  54. <dd>Indicates how many pixels long the wire is.
  55. The value of this attribute cannot be changed.</dd>
  56. </dl>
  57. <h2>Poke Tool Behavior</h2>
  58. <p>When you click an existing wire segment using the Poke Tool, Logisim
  59. displays the current value traveling through that wire.
  60. The behavior is particularly useful for multi-bit wires, whose black
  61. color provide no visual feedback about what value the wire is
  62. carrying.</p>
  63. <p>For multi-bit values, you can configure exactly how the value
  64. is displayed (in binary, decimal, or hexadecimal, for example) using
  65. the <a href="../../guide/prefs/layout.html">Layout
  66. pane</a> of the Logisim Preferences dialog box.
  67. <p><a href="../index.html">Back to <em>Library Reference</em></a></p>
  68. </body>
  69. </html>