1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Electronics 1 input = multiple outputs on a GAL16V8

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

  1. kidron

    kidron What's a Dremel?

    26 Jul 2003
    Likes Received:
    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. Hazer

    Hazer In time,you too will be relixalated

    14 Apr 2003
    Likes Received:
    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.

Share This Page