From c90ca048ccd0c55d808f22e8a40c8ede9e5ba3aa Mon Sep 17 00:00:00 2001 From: Fritz Webering Date: Tue, 7 Feb 2023 00:39:48 +0000 Subject: [PATCH] Add documentation for subcircuit pin modifiers --- .../img/subcircuits/subcircuit-pins1.png | Bin 0 -> 7998 bytes .../img/subcircuits/subcircuit-pins2.png | Bin 0 -> 5644 bytes war/subcircuits.html | 48 ++++++++++++++---- 3 files changed, 38 insertions(+), 10 deletions(-) create mode 100644 src/com/lushprojects/circuitjs1/public/img/subcircuits/subcircuit-pins1.png create mode 100644 src/com/lushprojects/circuitjs1/public/img/subcircuits/subcircuit-pins2.png diff --git a/src/com/lushprojects/circuitjs1/public/img/subcircuits/subcircuit-pins1.png b/src/com/lushprojects/circuitjs1/public/img/subcircuits/subcircuit-pins1.png new file mode 100644 index 0000000000000000000000000000000000000000..9122c3d77b326b954a11f4a413809aa301e8a101 GIT binary patch literal 7998 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 #right > .dose > .dosesingle, #content > #center > .dose > .dosesingle {display:none !important;}

Subcircuits

+{display:none !important;} + + +

Subcircuits

+

You can use subcircuits to implement custom "black box" devices. -

-Create and test your device, and then use labeled nodes (under "Outputs and Labels") to mark and label all the inputs/outputs. Here is an example circuit (a bridge rectifier). -

+

+Create and test your device, and then use labeled nodes (under "Outputs and Labels") to mark and label all the inputs/outputs. Here is an example circuit (a bridge rectifier). +

Then, select File->Create Subcircuit, then rearrange the pins the way you want them, enter a model name, and click OK. This will load the subcircuit model. Be sure to save this circuit (the subcircuit implementation), because it can't be edited later otherwise. -

+

Now you can create a circuit using the subcircuit model. Click with the right mouse and select the "Active Building Blocks" menu, and the "Add Subcircuit Instance" item. Then click and drag to create an instance. Edit the instance to select which model you want (by default it will use the one you just created). -

+

Here is an example using the rectifier. When you save/load this circuit, it will also save/load the subcircuit model so you can use it in other circuits. -

+

You can also use subcircuits to rearrange pins on the built-in chips. Here is an example with the 555. And here is that subcircuit model being used in a circuit. -

+

If you select part of a circuit before using File->Create Subcircuit, then only the selected elements will be considered part of the subcircuit. -

+

If you want to use labeled nodes in the subcircuit definition but don't want them to be one of the inputs/outputs, then check the "Internal Node" checkbox in those labeled nodes' edit menus. - +

+ +

Pins

+

+ The arrangement and direction of the labeled nodes in your circuit will determine the initial arrangement of the pins when creating the symbol symbol. + During symbol creation, you can change the initial pin layout by dragging the pins with the mouse. +

+

+ The name of the labeled nodes can affect the look of the pin in the following ways: +

+

+ + + +

+
    +
  • Naming a node "CLK" will add a "clock marker" to the symbol at that pin and hide the text.
  • +
  • Prefixing the name with "CLK:" (as in "CLK:C1") will draw a "clock marker" on that pin in the symbol.
  • +
  • Prefixing the name with "INV:" (as in "INV:EN") will draw an "inverter circle" on that pin in the symbol, denoting logical inversion.
  • +
  • Prefixing the name with "/" (as in "/EN") will draw a horizontal line above the text in the symbol, also denoting logical negation.
  • +
  • For all prefixes, the prefix itself will not be shown in the symbol, only the text after the prefix.
  • +
  • All prefixes are purely cosmetic and do not affect the actual signal.
  • +
+ +