Multiplexer

tshuck

Joined Oct 18, 2012
3,534
Thanks:

You mean by the 3 inputs from the driver the 3 selectors?
why 3 bits for the output?
S2 S1 S0 C
0 0 0 ?
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 0
Okay, so it looks like you're calling the power level selected by the driver as S, where S is 3 bits. You are calling the mode as C, right?

Okay, the maximum number to be represented on the output is 7/2 rounded up = 4. The lowest value is 0 (0/7 rounded down). This gives us 5 distinct output levels (0,1,2,3,4) which is represented by a minimum of 3 bits (000,001,010,011,100).

The number of required bits can be computed as log(number of possible values)/log(2) rounded up...in this case log(5)/log (2) rounded up = 3.
 

Thread Starter

garcon

Joined Jan 3, 2014
33
Okay, so it looks like you're calling the power level selected by the driver as S, where S is 3 bits. You are calling the mode as C, right?
Yes, mode as C.
S2 S1 S0 S C
----------------
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 0 0 1

S2,S1,S0= selectors of input from (0 to 7)
S : sum
C carry,
???
 

tshuck

Joined Oct 18, 2012
3,534
No, we are just specifying what we are calling what.....S is your commanded input (0-7), each bit is S0, S1, and S2(MSB). You named the mode C, at this point, it has nothing to do with any hardware implementation.

What you need is to fill that table with every possible combination of inputs (2^4, or 16 rows).
 

Thread Starter

garcon

Joined Jan 3, 2014
33
S2 S1 S0 S
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
how is this?
 

tshuck

Joined Oct 18, 2012
3,534
You are on the right track, but seem to be having trouble with names...

Let's see if filling out this following table helps:
Mode(C) |command(S) |outputs
0 |000
0 |001
0 |010
0 |011
0 |100
0 |101
0 |110
0 |111
1 |000
1 |001
1 |010
1 |011
1 |100
1 |101
1 |110
1 |111
 

Thread Starter

garcon

Joined Jan 3, 2014
33
it seems getting clearer now.

The first row Mode (C) is to choose either run or training, we have 1 bit for this (i.e. 1 or 0)

We listed 16 rows because we have 8 inputs for the training and 8 inputs for the run.
and we also have the 3 commands to choose among the 8 inputs.
Now the last column,i.e. output? is this 0 to 7/2 rounded up or rounded down result or anything else? what it could be?
I really appreciate your help.
thank you
 

tshuck

Joined Oct 18, 2012
3,534
it seems getting clearer now.
Good, I'm glad

The first row Mode (C) is to choose either run or training, we have 1 bit for this (i.e. 1 or 0)
Yup, spot on.
We listed 16 rows because we have 8 inputs for the training and 8 inputs for the run.
and we also have the 3 commands to choose among the 8 inputs.
Total, we have 4 input signals, requiring each possible state (value) to be covered - essentially the same thing, but for a more general reasoning...
Now the last column,i.e. output? is this 0 to 7/2 rounded up or rounded down result or anything else? what it could be?
This is the interesting part. You have an input that specifies what mode the inputs are for (column C). So, pick what running mode C=1 represents and go from there.

I really appreciate your help.
thank you
Again, you are welcome. It takes time to learn the insight a to what to do. Your professor makes it look easy, but it is sometimes hard to convey the logic behind it to a large group of people and even harder to learn it that way.

Also, what I was saying before is that S0, S1, and S2 are bits belonging to a vector/group, S. With S being a wayto refer to all of the bits S0, S1, and S2 at one time...so saying S = 3 = 011 is S2 =0, S1=1, and S0=1.
 

Thread Starter

garcon

Joined Jan 3, 2014
33
yes, it took me time to catch something. But fortunately there are always people who have the passion to help, this is really great!!
Now to last point:
This is the interesting part. You have an input that specifies what mode the inputs are for (column C). So, pick what running mode C=1 represents and go from there.
Ok, I decided C=1 to be Run mode.
so do I need to add them and if any carry to worry about that as well?
for example,

C S2 S1 S0 Output
1 1 1 0 ??
Tks
 

tshuck

Joined Oct 18, 2012
3,534
Ok, I decided C=1 to be Run mode.
so do I need to add them and if any carry to worry about that as well?
for example,

C S2 S1 S0 Output
1 1 1 0 ??
Tks
Given this example, you said C=1 means run mode. So in run mode, given the commanded input (S) = 110, what should be the output?

There is no carry bit here. C is the label you gave to the mode selection bit.
 

tshuck

Joined Oct 18, 2012
3,534
I am not sure of the output....

110=0 and carry =1
or 110=7?
or anything else that I missed?
Okay you are still confused, it seems. There is no carry. There is no hardware at this point. No implementation. The term carry is only applicable at this step if there is an input, or output, named carry. There is none. What you are referring to as carry is, again, the name(just C, nothing else - not Carry, not Carrie, but C) you gave to the mode selection bit.

So, if your input power command is 110(6) and your mode is 1 (run mode) to get the output your would be...?

From post # 10,
The system outputs the input value divided by 2. In run mode, the outputs are rounded
up , and training mode these outputs are rounded down . For example , if the
pilot requested a power of 5 in run mode, the system will enable power
of 3 (5/2 = 2.5) , but in training mode will allow the system 2.
So mode is run and input level is 6, what is your output?
 

WBahn

Joined Mar 31, 2012
30,072
You seem to be stuck on the notion that there is addition involved here and thus that there is a "sum" and a "carry" bit. It may well be that the problem lends itself to a solution that involves using an adder in a slightly creative way. But for now forget about particular hardware. You have a black box that has four inputs (three inputs form the binary value 0-7 and one input dictates which mode you are in) and three outputs that form the binary value 0-4. Don't get hung up on what you call them. You can call the input that specifies the mode as C for Control, M for Mode, or F for Fred. It doesn't matter -- it's just a name that we can use to help make sure that we are in agreement what signal we happen to be talking about.

You can fill in the table one row at a time. For instance, if the mode is Run and the input is 5, then you want the output to be 3 (011) while if the mode is Training and the input is 5, then you want the output to be 2 (010). Do this for all combinations.

ASIDE: In the end, you can implement the logic using three full-adders and my guess is that your instructor worked a comparable example in class which is why you are hung up on Sum and Carry signals, but you are getting ahead of yourself.
 

Thread Starter

garcon

Joined Jan 3, 2014
33
I definately agree and you are right, the example given in class forced me to stuck on the sum, carry words.

now it is clear, than you.
the outout is a single value , 0, 1, 2, 3, 4 for the run mode with 0, 1, 2, 3 repeated.
and for training mode out pout is 0, 1, 2, 3, with repeated values.
all the output can be represented as a 3 bits like for 0=000, for 1=001, for 4=100
thank you.
 

Thread Starter

garcon

Joined Jan 3, 2014
33
Hi,
Is this correct? Here is my truth table.

Mode s2s1s0 outputs
0 000 0=000
0 001 0=000
0 010 1=001
0 011 1=001
0 100 2=010
0 101 2=010
0 110 3=011
0 111 3=011
1 000 0=000
1 001 1=001
1 010 1=001
1 011 2=010
1 100 2=010
1 101 3=011
1 110 3=011
1 111 4=100

Thanks a lot
 

WBahn

Joined Mar 31, 2012
30,072
Yes, that looks correct.

What you do next depends on what methods you have been taught (or what method you have been told to use).

Are you familiar with Karnaugh maps?

In any event, you have three logic design problems -- one for each bit of the output -- that are functions of four input variables. You can either tackle each design problem individually, or you can see if there are any clever tricks that will let you tackle them all at once. In this case there are. Here is a hint -- how do you divide a binary value by two (integer division) without using any logic at all, just wires? With this in mind, what do you need to do with the Mode input in order to modify (with some logic) the input value so that you can divide it by two using the above method and get the correct value? Here is where an adder comes into play.
 
Top