Community

Ask A Question


Notifications
Subscribe You’re not receiving notifications from this thread.

How do I take multiple input bits to use n to 2^n decoders, n>=2?

General • Asked 4 months ago by Baibhav Chakraborty

Baibhav Chakraborty Commented on Aug 05, 2022:

I have been in a dilemma for 5 mins. I have been looking at the forum for answer. However I couldn't find anything suitable. I need help.

Jeff Berkowitz Commented on Aug 06, 2022:

I have the same question. I have 2 control lines A and B. I want to decode them 2:4, but I also need A and B at other points in the circuit. I found that I can make a 2:4 decoder and make its inputs 2 bits wide. But now I have to make an input "A and B" that is two bits wide. I can no longer get access to the A signal or the B signal for use as a logic gate input (or whatever).

I found there is a splitter control in MISC. But I cannot get it to work. It never shows any branches, no matter what values I put in for the 2 arguments that are supposed to specify the number of signals in and the number of signal out. I wonder what I'm missing. Thanks.

Jeff Berkowitz Commented on Aug 07, 2022:

The answer is: to make a Splitter work, you need to separate numbers with SPACES. I had to go and dig into their code to figure it out; it is not documented *anywhere*, it is NOT obvious, and the only error checking is complaint you get *later* saying the bit widths don't match.

The code: https://github.com/CircuitVerse/CircuitVerse/blob/master/simulator/src/modules/Splitter.js#L41 - note the .split(' ') in the middle of the line.

So if you have a 4-bit bus, for example, and you want to split it out to 4 single lines, place a Splitter. You'll get a dialog box for the input width. Enter '4'. Then you'll get another dialog for the output width. This is the point: enter "1 1 1 1" (four ones separated by spaces). Now you'll get a Splitter with branches.