How to Use PALASM

● 소개

Advanced Micro Devices, Inc.의 PLD(Programmable Logic Device) design software

● Install

Operating system : dos, window 95/98 ver 1.5(freeware)

프리웨어이므로 사용자의 제한이없다.. 부담없이 쓸수있도록~!!

다른 PLD프로그램인 abel의 경우는 상용이다.. (돈많으면 써라~)

1. PALASM 1.5를 다운로딩 한다. 하이텔 디지털 동호회나 동아리 DATA CD에 있다

2. 3.5인치 디스켓을 3장 준비한후 paldisk1~3.zip 파일의 압축을 풀어 각각 디스켓에 저장

한다.

이방법이 귀찮다면 windows\command 나 dos의 명령어 중에 subst라는 명령어를 써서

c드라이브에 Pal_sou디렉토리를 만든후 subst로 잡아준다.. 예를 들겠다..

일단 c드라이브에 pal_sou디렉토리를 만든후 압축을 모두 풀어 저장한다.

c:\>subst a: c:\pal_sou  ( subst [driver1] [driver2경로]

c:\>a:

a:\>install

인스톨이 끝나면 c:\>subst a:/d를 쳐서 가상드라이브를 해제한다..

우리는 보통 이 방법을 많이 쓰므로 디스켓을 이용한 인스톨 방법은 생략한다..

● 실행

palasm.exe를 실행하면 다음 화면이 뜬다..

FILE목록의 메뉴 설명

Begin New design : 새 디자인 작성

Retrieve existing design : 기존의 디자인 불러오기

Merge design files : 디자인 파일 합치기

Change directory : 현재 디렉토리 변경

Delete specified files : Compile시 생성되는 파일들 중 필요없는 것을 지우는 옵션

Go to system : dos prompt

Quit : 나감

새로운 디자인을 만들려면 □file -> begin new design'메뉴를 선택한다

input format : text로 잡는다(기본 text)

new file name : 여기에 원하는 파일이름을 확장자 없이 적는다.

현재 작업중인 디렉토리가 c:\palasm\examples이므로 이 디렉토리에 파일이름.pds 파일이

생성된다.

F10을 눌러 확인하면 아래 화면이 뜬다.

Title : 디자인제목을 간단히 적는다. 특성이 잘 나타나게 적는게 좋다..

Pattern : 어디에 사용되는지 간단히 적는다.

Revision : 버전을 적어준다.. 안써두 된다..

Author : 자신의 이름을 적는다

Company : 회사나 소속된 곳을 적는다.

CHIP는 자동선택이 된다..

Device는 설정을 해 주어야 하는데, 설정하기 전에 무슨 종류의 PAL을 쓸 것인지 그 종류를 쓰는 chip종류를 잘 구분해야 한다.  16R8에서는 입출력이 Registered Mode에서 이루어지므로 지정연산자는 ( := )를 쓰고, 16V8에서는 Combinatorial(시간개념이 없는 조합논리회로 설계시)Latched, Registered(플리플롭을 사용하는 논리회로 설계시) 모두 사용이 가능하다.  따라서 그 지정연산자는 각각 (=), (*=), (:=)이 된다.

사용하는 Device의 종류에 따라서 입력과, 출력으로 사용할 수 있는 핀에 제약이 있으므로 매뉴얼을 참조하도록 한다.  여기서 모든 핀을 다 입력할 수도 있지만, 나중에 다시 편집할 수 있으므로 일단은 다음과 같이 9개만 입력을 해 보자.

Storage에서 F2를 누르면 COMBINATORIAL, REGISTERED, LATCHED등의 선택 목록이 나오는데 모두 COMBINATORIAL로 선택을 한다.

핀을 다 입력하고 Storage란을 설정하였으면 F10을 누른다. 그러면 다음과 같은 화면이

나타늘 것이다.  이 화면에서는 에디터에서 이미 Title에서 PIN정의까지 위의 프로그램에 의하여 자동으로 코딩되어 있는 것을 보여준다.

● 프로그램 코딩

;-------------------------------------------------Declaration Segment-------

TITLE      test of sisyphus

PATTERN

REVISION

AUTHOR    wonchoul Ra

COMPANY  sisyphus

DATE      00/03/31

CHIP  _rara  PLACE16V8

;-------------------------------------------------PIN Declarations----------

PIN  2       X                                                  COMBINATORIAL;

PIN  3       Y                                                  COMBINATORIAL;

PIN  4       Z                                                  COMBINATORIAL;

PIN  5       C                                                  COMBINATORIAL;

PIN  6       S                                                  COMBINATORIAL;

PIN  7       E                                                  COMBINATORIAL;

PIN  8       N                                                  COMBINATORIAL;

PIN  12      DX                                                COMBINATORIAL;

PIN  13      DY                                                COMBINATORIAL;

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

EQUATIONS

;-----------------------------------------------Simulation Segment----------

SIMULATION

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

아직 PIN Declarations이 완성되지 않았고, Boolean Equation Segment는 아무것도 없을 것이다.  SIMULATION파트는 꼭 필요한 것은 아니고, 식이 맞는지 확인하기 위해 테스트

해보기 위한 부분이다.

자 지금부터 PALASM이 무엇을 하는 프로그램인지 알기 위해 간단한 테스트를 해보도록 하자.

간단한 2-4decoder 프로그램을 해보자.

;-------------------------------------------------Declaration Segment-------

TITLE      2-4decoder

PATTERN

REVISION

AUTHOR    wonchoul Ra

COMPANY  sisyphus

DATE      00/03/31

CHIP  _rara  PLACE16V8

;-------------------------------------------------PIN Declarations----------

PIN  1       X                                                  COMBINATORIAL;

PIN  2       Y                                                  COMBINATORIAL;

PIN  16      A                                                  COMBINATORIAL;

PIN  17      B                                                  COMBINATORIAL;

PIN  18      C                                                  COMBINATORIAL;

PIN  19      D                                                  COMBINATORIAL;

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

EQUATIONS

A = /X * /Y;

B = /X *  Y;

C =  X * /Y;

D =  X *  Y;

;-----------------------------------------------Simulation Segment----------

SIMULATION

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

모든 입력이 끝나면 F10을 누른다..  처음의 화면으로 되돌아 가는 것을 볼수 있을 것이다.

모든 입력을 에러없이 했다고 생각한다면 RUN 메뉴에 가서 컴파일과 시뮬레이션을 실행시켜 보자, 컴파일은 pal,gal칩에 직접 들어갈 jedc 파일을 생성하는 것이고, 시큘레이션은 이 파일을 바탕으로 예상되는 결과를 LOW, HIGH로 분류해 두는 것이다.

위와 같이 메뉴가 나오면 F10을 눌러 계속 진행한다.

계속 진행한다.

에러없이 컴파일이 되었다면 위와 같은 화면이 나타늘 것이다. 그리고 시뮬레이션도 코딩을

했다면 아래와같이 시뮬레이션도 실행시켜 보자

실행후 다음과 같은 화면이 나올 것이다.

뜬 파형이 자신이 원하는 동작을 한다면 프로그램을 종료하고 생성된 JEDC파일을 롬라

이터등을 이용하어 PAL에 라이팅 하여 사용한다.

● SIMULATION

간단히 시뮬레이션 부분만 설명해 보자..

우리가 많이 사용하는 7-SEGMENT 드라이버인 74LS47을 PAL로 프로그래밍 하고 시뮬레이션을 하여 간단히 출력하여 보자.

;-------------------------------------------------Declaration Segment-------

TITLE      7-seg_driver

PATTERN

REVISION

AUTHOR    wonchoul Ra

COMPANY  sisyphus

DATE      00/03/31

CHIP  _rara  PLACE16V8

;-------------------------------------------------PIN Declarations----------

PIN  2       A                                                  COMBINATORIAL;

PIN  3       B                                                  COMBINATORIAL;

PIN  4       C                                                  COMBINATORIAL;

PIN  5       D                                                  COMBINATORIAL;

PIN  10      GND                                               COMBINATORIAL;

PIN  13      oa                                                 COMBINATORIAL;

PIN  14      ob                                                 COMBINATORIAL;

PIN  15      oc                                                 COMBINATORIAL;

PIN  16      od                                                 COMBINATORIAL;

PIN  17      oe                                                 COMBINATORIAL;

PIN  18      of                                                 COMBINATORIAL;

PIN  19      og                                                 COMBINATORIAL;

PIN  20      VCC                                               COMBINATORIAL;

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

EQUATIONS

oa = A + C + B * D + /B * /D;

ob = A + /B + C * D + /C * /D;

oc = A + B + /C + D;

od = A + /B * C + /B * /D + C * /D + B * /C *D;

oe = /B * /D + C * /D;

of = A + B * /C + B * /D + /B * C;

og = A + B * /C + B * /D + /B * C;

;-----------------------------------------------Simulation Segment----------

SIMULATION

TRACE_ON A B C D oa ob oc od oe of og

SETF  /A /B /C /D    CHECK oa ob oc od oe of /og

SETF  /A /B /C  D    CHECK /oa ob oc /od /oe /of /og

SETF  /A /B  C /D    CHECK oa ob /oc od oe /of og

SETF  /A /B  C  D    CHECK oa ob oc od /oe /of og

SETF  /A  B /C /D    CHECK /oa ob oc /od /oe of og

SETF  /A  B /C  D    CHECK oa /ob oc od /oe of og

SETF  /A  B  C /D    CHECK oa /ob oc od oe of og

SETF   A /B /C /D    CHECK oa ob oc od oe of  og

SETF   A /B /C  D    CHECK oa ob oc od /oe of og

TRACE_OFF

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

다른것들은 쉽게 이해할 수 있을 것이고, 시뮬레이션 부분만 설명을 하면, trace_on 다음에는 모든 입력신호화 출력 신호를 공백으로 구분해서 써준다.  다음에 SETF와 CHECK명령이 한 쌍으로 여러개가 있는데, 예를 들어 SETF A /B /C D 는 A=1, B=0, C=0, D=1로 입력을 주라는 뜻이다. 다음에 CHECK oa ob oc od oe of /og는 og=0이고, 나머지 출력은 모두 1이 출력되는지 확인하라는 뜻이다.  SETF뒤에는 입력신호를 쓰고, CHECK뒤에는 출력신호를 쓴다. 맨 마지막에는 TRACE_OFF라고 써준다.

에디터에서 저장을 하고 PALASM에서 □Run ->Compilation'을 선택한다.  모든 옵션을 □y'로 선택을 하고, F10을 누르면 PALASM은 equation을 분석해서 device에 프로그램해 넣을 수 있는 형태로 바꾼다. 마지막에 %%pal assembler%% ERROR count:0 WARNING count:0이 나오는 것을 확인한다.  만일 error가 있거나 warning이 생기면 메시지를 보고 파일을 적당히 수정해 보자.

다음에 □Run->Simulation'을 선택하고, Use auxiliary simulation file: N으로 두고, F10을 누른다. 마찬가지로 경고나 에러가 없음을 확인한다.

view 아래에 있는 메뉴들은 컴파일 결과 생성된 파일들을 보여줄 것이다. 예를들어 □View->Waveform display...->History'를 선택하면 시뮬레이션 결과를 WAVEFORM형태로 보여준다.

● PALASM PROGRAMMING TECHNIC