Java Circuit Simulation Workaround ▾

Due to recent changes by Oracle, java applets have become difficult to run in the browser. To mitigate the troubles, Oracle has provided the following websites to help users troubleshoot: http://java.com/en/download/help/enable_browser.xml and https://www.java.com/en/download/mac_download.jsp

Even after following the above instructions, loading applets may still show warning concerning “unsigned application” and “unknown publisher”. For Teahlab in particular, these warnings are due to the fact that we have opted not to pay a third party such as Verisign to sign our applets. Any warning that comes up when you try to run our applets should emphasize that our applets will always run with “limited access”, which is Oracle’s way of letting you know that teahlab doesn’t do anything on your computer except running the circuits you see: in other words, our applets are safe to run.

Sincerely,

The Teahlab Team

THE 3 TO 8 DECODER
by Isai Damier (Let's connect on twitter @isaidamier )

The interactive 3 to 8 Decoder digital logic circuit, with Boolean function

Introduction

Imagine you are a mall security guard. In your office is a very important and unique public announcement (PA) phone. The phone has three dialing buttons (A, B, C) and is connected to eight different speakers, as shown in Table 1. Consequently, you get to choose which section of the mall hears your announcement based on the set of buttons you press. For example, if you press A and B and start speaking into the phone (ABC = 110), the Food Court (D6) is the only place that can hear you. However, if you press A and C (ABC = 101) then the Lady’s Room (D5) is the only place that can hear you.

TRUTH TABLE
Input Output
A2 A1 A0 D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0 0 1 0
0 1 0 0 0 0 0 0 1 0 0
0 1 1 0 0 0 0 1 0 0 0
1 0 0 0 0 0 1 0 0 0 0
1 0 1 0 0 1 0 0 0 0 0
1 1 0 0 1 0 0 0 0 0 0
1 1 1 1 0 0 0 0 0 0 0

Such a public announcement phone (or PA system) is an example of a 3-to-8 decoder. Since the phone has three buttons each of which can either be in one of two possible states — pressed (=1) or not pressed (= 0) — then the phone can dial eight possible different numbers (23 = 2*2*2 = 8) as shown in Table 1.

A B C MALL AREA
0 0 0 Security lunch room (D0)
0 0 1 Men's Room (D1)
0 1 0 Footwear Stores (D2)
0 1 1 Jewelry Dealers (D3)
1 0 0 Appliance Stores (D4)
1 0 1 Lady's Room (D5)
1 1 0 Food Court (D6)
1 1 1 Bookstores (D7)

Table 1

Designing such a phone system is straightforward. We just need a switching circuit that energizes one of the eight output lines based on the combination of the input buttons.

Because each line in the truth table corresponds to a specific output, and because each line in the table is unique, then we have the eight unique switching expressions that we need:

D0 = A’B’C’
D1 = A’B’C
D2 = A’BC’
D3 = A’BC
D4 = AB’C’
D5 = AB’C
D6 = ABC’
D7 = ABC

There is always more than one way to implement a switching circuit. And in reality which way you choose will likely depend on what chips you have available. For our part we observe that each of the functions can be implemented using NOT gates and AND gates. Therefore, building for one output at a time, we will implement our circuit.

For D0

The interactive output D0 of the 3 to 8 Decoder digital logic circuit, with Boolean function
Circuit 1 — Play around with the circuit to see that it works.

Adding D1 to D0

The interactive output D0 & D1 of the 3 to 8 Decoder digital logic circuit, with Boolean function and truth table.
Circuit 2 — Play around with the circuit to see that it works.

We build for one output at a time to allow ourselves to catch and correct errors early. We recommend that you follow the same methodology in your design projects.

Adding D2 to Circuit 2

The interactive output D0, D1 & D2 of the 3 to 8 Decoder digital logic circuit, with Boolean function and truth table.
Circuit 3 — Play around with the circuit to see that it works.

Adding D3 to Circuit 3

The interactive output D0, D1, D2 & D3 of the 3 to 8 Decoder digital logic circuit, with Boolean function and truth table.
Circuit 4 — Play around with the circuit to see that it works.

Adding D4 to Circuit 4

The interactive output D0, D1, D2, D3 & D4 of the 3 to 8 Decoder digital logic circuit, with Boolean function and truth table.
Circuit 5 — Play around with the circuit to see that it works.

Adding D5 to Circuit 5

The interactive output D0, D1, D2, D3, D4 & D5 of the 3 to 8 Decoder digital logic circuit, with Boolean function and truth table.
Circuit 6 — Play around with the circuit to see that it works.

Adding D6 to Circuit 6

The interactive output D0, D1, D2, D3, D4, D5 & D6 of the 3 to 8 Decoder digital logic circuit, with Boolean function and truth table.
Circuit 7 — Play around with the circuit to see that it works.

Adding D7 to Circuit 7

The interactive output D0, D1, D2, D3, D4, D5, D6 & D7 of the 3 to 8 Decoder digital logic circuit, with Boolean function and truth table.
Circuit 8 — Play around with the circuit to see that it works.

There will be times when you may need to decode signals in your own designs. Although pre–packaged decoders, such as this 3–to–8 decoder, may be sufficient for your need; there will be cases when they will be too expensive for one reason or another. Therefore, it is important for you to realize that in most cases decoders are just AND gates; which means if you don’t have a decoder, you can use AND gates to accomplish your end. For an illustration, see the Johnson counter.