Jak zaimplementować dekoder na GAL-u w projektach z PALASM?

Dekoder na GAL-u





Poprzedni Następny
Wiadomość
spis treści
From: Pawel Lepczynski <plepczyn_at_nospam_piast.t19.ds.pwr.wroc.pl>
Subject: Dekoder na GAL-u
Date: Wed, 07 May 1997 23:02:40 -0700


This is a multi-part message in MIME format.

--------------5DD46E27646
Content-Type: text/plain; charset=iso-8859-2
Content-Transfer-Encoding: 7bit

Przepraszam, nie pamietam kto potrzebowal cos takiego.

Odkopalem swoja stara prace w tym stylu, ale niestety w
PALASM-ie. W ABLU nic nie mam. Plik jest raczej dobrze
skomentowany, wiec chyba nie bedzie problemow. W razie
czego to ja nic nie wiem - to bylo juz tak dawno...

Bye!
--------------------------------------------------------
Pawel Lepczynski
plepczyn_at_nospam_piast.t19.ds.pwr.wroc.pl
--------------------------------------------------------

--------------5DD46E27646
Content-Type: text/plain; charset=iso-8859-2; name="HEXCONV.PDS"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="HEXCONV.PDS"

;PALASM Design Description

;---------------------------------- Declaration Segment ------------
TITLE STEROWANIE WYSWIETLACZAMI
PATTERN
REVISION
AUTHOR PAWEL LEPCZYNSKI
COMPANY PRIVATE JOB
DATE 02/08/93

CHIP _hexconv PALCE22V10

;---------------------------------- PIN Declarations ---------------
PIN 1 CLK ;
PIN 2 I0 COMBINATORIAL ; WEJSCIE BITU 0
PIN 3 I1 COMBINATORIAL ; WEJSCIE BITU 1
PIN 4 I2 COMBINATORIAL ; WEJSCIE BITU 2
PIN 5 I3 COMBINATORIAL ; WEJSCIE BITU 3
PIN 6 I4 COMBINATORIAL ; WEJSCIE BITU 4
PIN 7 I5 COMBINATORIAL ; WEJSCIE BITU 5
PIN 8 I6 COMBINATORIAL ; WEJSCIE BITU 6
PIN 9 I7 COMBINATORIAL ; WEJSCIE BITU 7
PIN 12 GND ;
PIN 15 W2 ; STEROWANIE: WYSWIETLACZEM 1
PIN 16 W1 ; WYSWIETLACZEM 2
PIN 17 a ; SEGMENTEM A
PIN 18 f ; SEGMENTEM F
PIN 19 e ; SEGMENTEM E
PIN 20 d ; SEGMENTEM D
PIN 21 c ; SEGMENTEM C
PIN 22 b ; SEGMENTEM B
PIN 23 g ; SEGMENTEM G
PIN 24 VCC ;

;----------------------------------- Boolean Equation Segment ------
EQUATIONS

; Uklad sluzy do zamiany osmiobitowego kodu binarnego na kod
;heksadecymalny, wyswietlany na dwoch siedmiosegmentowych wyswietlaczach LED.
;Sterowanie poszczegolnymi wyswietlaczami odbywa sie poprzez multipleksowa-
;nie z czestotliwoscia wyswietlania ok. 75 Hz przypadajaca na jeden z
;wyswietlaczy.
; Aby uproscic zapis rownan, zapisano je dla sytuacji kiedy dany segment
;wyswietlacza nie swieci. I tak np. segment "a" swieci dla wartosci, ktorych
;odpowiedniki heksadecymalne ma postac: 0,2,3,5,6,7,8,9,A,E,F; natomiast
;nie swieci dla wartoosci: 1,4,b,c,d. Jak latwo zauwazyc takie postepowanie
;ma swoje uzasadnienie.
; Ze wzgledu na konstrukcje zastosowanego ukladu PAL 22V10 zaistniala
;potrzeba, zamiany miejscami wyprowadzen "a" i "g", gdyz nie zdolano na
;tyle zminimalizowac funkcji logicznej dla segmentu "a", aby mozna bylo
;zaimplemntowac ja na ograniczonej, w stosunku do pozostalych wyjsc, liczbie
;bramek.


a := /W2 * /( /I3 * /I2 * /I1 * I0
+ /I3 * I2 * /I1 * /I0
+ I3 * /I2 * I1 * I0
+ I3 * I2 * /I1 )
+ /W1 * /( /I7 * /I6 * /I5 * I4
+ /I7 * I6 * /I5 * /I4
+ I7 * /I6 * I5 * I4
+ I7 * I6 * /I5 )

b := /W2 * /( /I3 * I2 * /I1 * I0
+ /I3 * I2 * I1 * /I0
+ I3 * I2 * /I1 * /I0
+ I3 * I2 * I1
+ I3 * I1 * I0 )
+ /W1 * /( /I7 * I6 * /I5 * I4
+ /I7 * I6 * I5 * /I4
+ I7 * I6 * /I5 * /I4
+ I7 * I6 * I5
+ I7 * I5 * I4 )

c := /W2 * /( /I3 * /I2 * I1 * /I0
+ I3 * I2 * /I1 * /I0
+ I3 * I2 * I1 )
+ /W1 * /( /I7 * /I6 * I5 * /I4
+ I7 * I6 * /I5 * /I4
+ I7 * I6 * I5)

d := /W2 * /( /I3 * /I2 * /I1 * I0
+ /I3 * I2 * /I1 * /I0
+ I2 * I1 * I0
+ I3 * /I2 * I1 * /I0)
+ /W1 * /( /I7 * /I6 * /I5 * I4
+ /I7 * I6 * /I5 * /I4
+ I6 * I5 * I4
+ I7 * /I6 * I5 * /I4)

e := /W2 * /( /I2 * /I1 * I0
+ /I3 * I1 * I0
+ /I3 * I2 * /I1 )
+ /W1 * /( /I6 * /I5 * I4
+ /I7 * I5 * I4
+ /I7 * I6 * /I5)

f := /W2 * /( /I3 * /I2 * I0
+ /I3 * /I2 * I1
+ /I3 * I1 * I0
+ I3 * I2 * /I1 )
+ /W1 * /( /I7 * /I6 * I4
+ /I7 * /I6 * I5
+ /I7 * I5 * I4
+ I7 * I6 * /I5 )

g := /W2 * /( /I3 * /I2 * /I1
+ /I3 * I2 * I1 * I0)
+ /W1 * /( /I7 * /I6 * /I5
+ /I7 * I6 * I5 * I4)

W1 := /W1 ;wyjscia sterujace wyswietlaczami
W2 := W1
;----------------------------------- Simulation Segment ------------
SIMULATION
TRACE_ON I0 I1 I2 I3 I4 I5 I6 I7 a b c d e f g W1 W2
SETF /I0 /I1 /I2 /I3 /I4 /I5 /I6 /I7

CLOCKF CLK ;Symulacja pozwala na sprawdzenie
CLOCKF CLK ;poprawnosci stanow logicznych na
CLOCKF CLK ;poszczegolnych wyjsciach przy
CLOCKF CLK ;zadanych poziomach wejsciowych.
CHECK a b c d e f /g

SETF /I0 I1 I2 I3 I4 /I5 /I6 /I7 ;Poniewaz dla pozostalych testow
CLOCKF CLK ;podawano takie stany wejsciowe
CLOCKF CLK ;aby na obu wyswietlaczach byly
;takie same wartosci (znacznie
;upraszcza to analize wynikow
;symulacji), to w tym przypadku
;nastepuje kontrola poprawnosci
;dzialania dla roznych
;wyswietlanych wartosci.

SETF /I0 I1 /I2 /I3 /I4 I5 /I6 /I7
CLOCKF CLK
CLOCKF CLK
CHECK a b /c d e /f g

SETF I0 I1 /I2 /I3 I4 I5 /I6 /I7
CLOCKF CLK
CLOCKF CLK
CHECK a b c d /e /f g

SETF /I0 /I1 I2 /I3 /I4 /I5 I6 /I7
CLOCKF CLK
CLOCKF CLK
CHECK /a b c /d /e f g

SETF I0 /I1 I2 /I3 I4 /I5 I6 /I7
CLOCKF CLK
CLOCKF CLK
CHECK a /b c d /e f g

SETF /I0 I1 I2 /I3 /I4 I5 I6 /I7
CLOCKF CLK
CLOCKF CLK
CHECK a /b c d e f g

SETF I0 I1 I2 /I3 I4 I5 I6 /I7
CLOCKF CLK
CLOCKF CLK
CHECK a b c /d /e /f /g

SETF /I0 /I1 /I2 I3 /I4 /I5 /I6 I7
CLOCKF CLK
CLOCKF CLK
CHECK a b c d e f g

SETF I0 /I1 /I2 I3 I4 /I5 /I6 I7
CLOCKF CLK
CLOCKF CLK
CHECK a b c d /e f g

SETF /I0 I1 /I2 I3 /I4 I5 /I6 I7
CLOCKF CLK
CLOCKF CLK
CHECK a b c /d e f g

SETF I0 I1 /I2 I3 I4 I5 /I6 I7
CLOCKF CLK
CLOCKF CLK
CHECK /a /b c d e f g

SETF /I0 /I1 I2 I3 /I4 /I5 I6 I7
CLOCKF CLK
CLOCKF CLK
CHECK /a /b /c d e /f g

SETF I0 /I1 I2 I3 I4 /I5 I6 I7
CLOCKF CLK
CLOCKF CLK
CHECK /a b c d e /f g

SETF /I0 I1 I2 I3 /I4 I5 I6 I7
CLOCKF CLK
CLOCKF CLK
CHECK a /b /c d e f g

SETF I0 I1 I2 I3 I4 I5 I6 I7
CLOCKF CLK
CLOCKF CLK
CHECK a /b /c /d e f g

TRACE_OFF


;-------------------------------------------------------------------

--------------5DD46E27646--