# Electronics 1 input = multiple outputs on a GAL16V8

Discussion in 'Modding' started by kidron, 16 Feb 2005.

1. ### kidronWhat's a Dremel?

Joined:
26 Jul 2003
Posts:
85
0
hi guys!
im just starting to design I.C. using the GAL16V8 chip
i'm using ispEXPERT 7.0 to design the I.C.

in a protoboard, i want to use an 8 switch DIP Switch, a 7 Segment Display, and the GAL16V8.
what i want to be able to do is to turn ON one of the switches from the DIP and display that number in the 7 Segment Display.. so.. i need a way to input a voltage to the chip and get out multiple outputs depending on the number of the Switch that is turned on..

..and sorry for my english.

can someone help me here?

2. ### HazerIn time,you too will be relixalated

Joined:
14 Apr 2003
Posts:
957
2
I have not been able to get my hands on ispDesign. Ive just started getting into GALs and Im only using WinCUPL at the moment.

To solve your problem, an equation map would look like this:

Your dip switches would be ins on pins 2-9:

pin 2 = IN1
pin 3 = IN2
pin 4 = IN3
pin 5 = IN4
pin 6 = IN5
pin 7 = IN6
pin 8 = IN7
pin 9 = IN8

Your outputs would be declared the same way. Theres 7 segments so:

pin 12 = OUT1
pin 13 = OUT2
pin 14 = OUT3
pin 15 = OUT4
pin 16 = OUT5
pin 17 = OUT6
pin 18 = OUT7

Now, you would physically wire your pins like so:

OUT1 --> top segment
OUT2 --> upper left segment
OUT3 --> upper right segment
OUT4 --> middle segment
OUT5 --> lower left segment
OUT6 --> lower right segment
OUT7 --> bottom segment

So now you need to assign equations for each segment. Think about what numbers use each segment and go from there:

The top segment only lights up when you use the numbers 2, 3, 5, 6, 7, 8, and 0 (all dipswitches off). The equation would then be:

Please note that '#' = boolean OR, '&' = boolean AND, and '!' = boolean NOT.

OUT1 = IN2 # IN3 # IN5 # IN6 # IN7 # IN8 # (!IN1 & !IN2 & !IN3 & !IN4 & !IN5 & !IN6 & !IN7 & !IN8);

For OUT2, same thing except numbers 5, 6, 8, and 0:

OUT2 = IN5 # IN6 # IN8 # (!IN1 & !IN2 & !IN3 & !IN4 & !IN5 & !IN6 & !IN7 & !IN8);

etc etc for the rest of them. The only problems you will have is that you can only OR (#) 7 terms with the GAL16V8.

Also, this design does not take into account for having more than one dipswitch on at one time. In order to do that, you will need to make a state machine instead.