First of all, great software. It really satisfied all of my needs. You did a fantastic job Carl.
I have a small suggestion when it comes to sub circuits. When using a sub circuit in your main file, unless you have each input pin connected to some kind of device, the whole sub circuit doesn't function properly. Is there a reason why this has to be the case?
For example, when creating a binary to 7-segment decoder, I created a unit for carrying out a certain algorithmic function for converting binary to BCD using the double dapple method. I had to use the unit multiple times throughout the parent circuit, and at times I didn't need to use all of the inputs/outputs. If I neglected to use them, the whole unit would fail.
Is it possible this can be changed?
Appreciate the good work.
- Jayden Traynor
Thanks for the message. But I don't think I understand what you're saying. Below is a test I did to see if it works as I expected. First I built a simple subcircuit with three inputs and two outputs:
Then I built a circuit that uses this twice. As you can see, in each instance I have one of the inputs being unconnected.
Your message leads me to expect all outputs to be red. As it happens, only one is red - and it makes sense for it to be red, since it's the AND of an unknown value and 0, and the result of this would be unpredictable. What's different about your circuit?
Ok for some reason I can't see the images you posted. There is some error. But I will post some images of the circuit that I am having problems with.
This shows the circuit working. It is essentially converting an 8 bit binary value into BCD and then into 7 segment. As you can see by the arrow, I have used some wiring and connected all of the inputs to the sub circuits that aren't being used. By doing this the circuit functions normally.
Now this is what happens when I take those wires away (so that all of the inputs aren't being used for each of the sub circuits. The whole circuit glitches.
Here is another image of the first sub circuit (the northernmost sub circuit which has only one of its inputs occupied). Mind the random wiring at the inputs and outputs, I had to re-arrange the order lol.)
Maybe I am just making an error. Who knows. Thanks for the help anyway, glad to see that you still actively check these forums.
Also, is there a way to increase clock speed? When using the clock it seems that you cannot make the tick length any lower than 1. Is there a way to get around this by using different components? For example say 5-10 ticks per second.
Let's look at that last screenshot of the internals of the northernmost subcircuit. You can see that the second-from-top AND gate has inputs that are both floating (blue). What do you expect the AND gate to do in this situation? It has no way to interpret its two inputs - a floating input could be interpreted as 0 or 1 -, so it outputs "unpredictable" (red). Of course, this unpredictable output is sent into the topmost OR gate, which itself can't predict its own output. This is how Logisim is designed - and I believe most experts would attest that this design is a sound one.
My best guess is that you intend for the floating inputs (blue) to be interpreted as 0 (dark green). You have one of two options: First, you can select all of the input pins on the left of the circuit and edit their "Pull Behavior" attribute to be "Pull Down." Alternatively, you can add a Pull Resistor to each of the wires coming out of these inputs.
Oh, and as to clock speed, go to the Simulate menu and find its Tick Frequency submenu. It will let you choose the clock speed. Note that these speeds are just *maximum* speeds - the clock never ticks until the previous tick has had a chance to propagate completely through a circuit, so it could easily go slower than the maximum speed for a complex circuit (or a slow computer). Logisim will display the actual clock speed if you go to File > Preferences…, select the Window tab, and check "Show tick rate."